@infrab4a/connect 4.0.0-beta.26 → 4.0.0-beta.27

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 (125) hide show
  1. package/domain/catalog/models/category-collection-children.d.ts +1 -2
  2. package/domain/catalog/models/category-filter.d.ts +1 -1
  3. package/domain/catalog/models/category.d.ts +1 -2
  4. package/domain/catalog/models/filter-option.d.ts +1 -2
  5. package/domain/catalog/models/filter.d.ts +1 -2
  6. package/domain/catalog/models/kit-product.d.ts +1 -1
  7. package/domain/catalog/models/product.d.ts +1 -2
  8. package/domain/catalog/models/variant.d.ts +1 -2
  9. package/domain/generic/model/base.model.d.ts +9 -5
  10. package/domain/generic/model/types/base-model-builder.type.d.ts +4 -2
  11. package/domain/generic/model/types/identifier-model.type.d.ts +6 -5
  12. package/domain/generic/model/types/model-base-structure.type.d.ts +9 -3
  13. package/domain/generic/model/types/non-function-property-name.type.d.ts +12 -3
  14. package/domain/generic/repository/get.repository.d.ts +2 -2
  15. package/domain/generic/repository/types/repository-find-filters.type.d.ts +3 -3
  16. package/domain/generic/repository/types/repository-order-by-list.type.d.ts +2 -2
  17. package/domain/generic/repository/types/repository-update-params.type.d.ts +2 -2
  18. package/domain/location/models/address.d.ts +4 -3
  19. package/domain/shopping/models/checkout.d.ts +5 -6
  20. package/domain/shopping/models/subscription/checkout.d.ts +3 -4
  21. package/domain/users/models/subscription/subscription.d.ts +3 -3
  22. package/domain/users/models/user-address.d.ts +1 -2
  23. package/domain/users/models/user.d.ts +2 -3
  24. package/esm2020/domain/catalog/models/category-collection-children.mjs +1 -4
  25. package/esm2020/domain/catalog/models/category-filter.mjs +1 -1
  26. package/esm2020/domain/catalog/models/category.mjs +1 -4
  27. package/esm2020/domain/catalog/models/filter-option.mjs +1 -4
  28. package/esm2020/domain/catalog/models/filter.mjs +1 -4
  29. package/esm2020/domain/catalog/models/kit-product.mjs +2 -2
  30. package/esm2020/domain/catalog/models/product.mjs +1 -4
  31. package/esm2020/domain/catalog/models/variant.mjs +1 -4
  32. package/esm2020/domain/generic/model/base.model.mjs +3 -2
  33. package/esm2020/domain/generic/model/types/base-model-builder.type.mjs +1 -1
  34. package/esm2020/domain/generic/model/types/identifier-model.type.mjs +1 -1
  35. package/esm2020/domain/generic/model/types/model-base-structure.type.mjs +1 -1
  36. package/esm2020/domain/generic/model/types/non-function-property-name.type.mjs +1 -1
  37. package/esm2020/domain/generic/repository/get.repository.mjs +1 -1
  38. package/esm2020/domain/generic/repository/types/repository-find-filters.type.mjs +1 -1
  39. package/esm2020/domain/generic/repository/types/repository-order-by-list.type.mjs +1 -1
  40. package/esm2020/domain/generic/repository/types/repository-update-params.type.mjs +1 -1
  41. package/esm2020/domain/location/models/address.mjs +2 -2
  42. package/esm2020/domain/shopping/models/checkout.mjs +6 -7
  43. package/esm2020/domain/shopping/models/order.mjs +1 -1
  44. package/esm2020/domain/shopping/models/subscription/checkout.mjs +6 -6
  45. package/esm2020/domain/users/models/subscription/subscription.mjs +6 -6
  46. package/esm2020/domain/users/models/user-address.mjs +1 -1
  47. package/esm2020/domain/users/models/user.mjs +3 -3
  48. package/esm2020/domain/users/use-cases/authentication.mjs +2 -2
  49. package/esm2020/infra/elasticsearch/adapters/axios.adapter.mjs +1 -1
  50. package/esm2020/infra/firebase/firestore/mixins/with-create-firestore.mixin.mjs +2 -2
  51. package/esm2020/infra/firebase/firestore/mixins/with-crud-firestore.mixin.mjs +1 -1
  52. package/esm2020/infra/firebase/firestore/mixins/with-delete-firestore.mixin.mjs +1 -1
  53. package/esm2020/infra/firebase/firestore/mixins/with-find-firestore.mixin.mjs +3 -3
  54. package/esm2020/infra/firebase/firestore/mixins/with-firestore.mixin.mjs +1 -1
  55. package/esm2020/infra/firebase/firestore/mixins/with-get-firestore.mixin.mjs +1 -1
  56. package/esm2020/infra/firebase/firestore/mixins/with-helpers.mixin.mjs +1 -1
  57. package/esm2020/infra/firebase/firestore/mixins/with-sub-collection.mixin.mjs +1 -1
  58. package/esm2020/infra/firebase/firestore/mixins/with-update-firestore.mixin.mjs +1 -1
  59. package/esm2020/infra/firebase/firestore/types/firestore-sub.repository.type.mjs +1 -1
  60. package/esm2020/infra/firebase/firestore/types/firestore.helpers.type.mjs +1 -1
  61. package/esm2020/infra/firebase/firestore/types/firestore.repository.type.mjs +1 -1
  62. package/esm2020/infra/hasura-graphql/mixins/helpers/attribute-option.helper.mjs +1 -1
  63. package/esm2020/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.mjs +5 -4
  64. package/esm2020/infra/hasura-graphql/mixins/helpers/filter-option.helper.mjs +1 -1
  65. package/esm2020/infra/hasura-graphql/mixins/helpers/graphql-field.helper.mjs +25 -20
  66. package/esm2020/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.mjs +5 -3
  67. package/esm2020/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.mjs +1 -1
  68. package/esm2020/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.mjs +5 -3
  69. package/esm2020/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.mjs +21 -4
  70. package/esm2020/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.mjs +5 -3
  71. package/esm2020/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.mjs +12 -5
  72. package/esm2020/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.mjs +7 -5
  73. package/esm2020/infra/hasura-graphql/types/graphql.repository.type.mjs +1 -1
  74. package/esm2020/infra/hasura-graphql/types/hasura-graphql-fields.type.mjs +1 -1
  75. package/esm2020/utils/decorators/debug.class.decorator.mjs +7 -0
  76. package/esm2020/utils/decorators/index.mjs +3 -0
  77. package/esm2020/utils/decorators/trace.method.decorator.mjs +81 -0
  78. package/esm2020/utils/helpers/class-name.helper.mjs +15 -0
  79. package/esm2020/utils/helpers/debug-decorator.helper.mjs +18 -0
  80. package/esm2020/utils/helpers/debug.helper.mjs +150 -0
  81. package/esm2020/utils/helpers/index.mjs +5 -0
  82. package/esm2020/utils/helpers/reflect.helper.mjs +165 -0
  83. package/esm2020/utils/index.mjs +4 -1
  84. package/esm2020/utils/log.utils.mjs +9 -0
  85. package/fesm2015/infrab4a-connect.mjs +530 -80
  86. package/fesm2015/infrab4a-connect.mjs.map +1 -1
  87. package/fesm2020/infrab4a-connect.mjs +534 -80
  88. package/fesm2020/infrab4a-connect.mjs.map +1 -1
  89. package/infra/elasticsearch/adapters/axios.adapter.d.ts +2 -2
  90. package/infra/firebase/firestore/mixins/with-create-firestore.mixin.d.ts +2 -2
  91. package/infra/firebase/firestore/mixins/with-crud-firestore.mixin.d.ts +1 -1
  92. package/infra/firebase/firestore/mixins/with-delete-firestore.mixin.d.ts +2 -2
  93. package/infra/firebase/firestore/mixins/with-find-firestore.mixin.d.ts +2 -2
  94. package/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +2 -2
  95. package/infra/firebase/firestore/mixins/with-get-firestore.mixin.d.ts +2 -2
  96. package/infra/firebase/firestore/mixins/with-helpers.mixin.d.ts +2 -2
  97. package/infra/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +2 -2
  98. package/infra/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +3 -3
  99. package/infra/firebase/firestore/types/firestore-sub.repository.type.d.ts +3 -3
  100. package/infra/firebase/firestore/types/firestore.helpers.type.d.ts +5 -5
  101. package/infra/firebase/firestore/types/firestore.repository.type.d.ts +1 -1
  102. package/infra/hasura-graphql/mixins/helpers/attribute-option.helper.d.ts +9 -3
  103. package/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.d.ts +5 -5
  104. package/infra/hasura-graphql/mixins/helpers/filter-option.helper.d.ts +4 -2
  105. package/infra/hasura-graphql/mixins/helpers/graphql-field.helper.d.ts +8 -5
  106. package/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.d.ts +2 -1
  107. package/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.d.ts +1 -1
  108. package/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.d.ts +1 -1
  109. package/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.d.ts +11 -9
  110. package/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.d.ts +7 -6
  111. package/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.d.ts +2 -2
  112. package/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.d.ts +2 -2
  113. package/infra/hasura-graphql/types/graphql.repository.type.d.ts +7 -5
  114. package/infra/hasura-graphql/types/hasura-graphql-fields.type.d.ts +7 -3
  115. package/package.json +2 -1
  116. package/utils/decorators/debug.class.decorator.d.ts +2 -0
  117. package/utils/decorators/index.d.ts +2 -0
  118. package/utils/decorators/trace.method.decorator.d.ts +14 -0
  119. package/utils/helpers/class-name.helper.d.ts +3 -0
  120. package/utils/helpers/debug-decorator.helper.d.ts +9 -0
  121. package/utils/helpers/debug.helper.d.ts +60 -0
  122. package/utils/helpers/index.d.ts +4 -0
  123. package/utils/helpers/reflect.helper.d.ts +50 -0
  124. package/utils/index.d.ts +3 -0
  125. package/utils/log.utils.d.ts +7 -0
@@ -3,8 +3,10 @@ import { plainToInstance, instanceToPlain, Expose, Type } from 'class-transforme
3
3
  import { __decorate, __metadata, __awaiter, __rest } from 'tslib';
4
4
  import { parseISO } from 'date-fns';
5
5
  export { add, addBusinessDays, addDays, addMonths, addYears, endOfDay, format, formatISO9075, parseISO, startOfDay, sub } from 'date-fns';
6
- import { get as get$1, isString, isNil, isNumber, isDate, set, isObject, isEmpty, chunk, isBoolean, isInteger, isNaN as isNaN$1, omit } from 'lodash';
6
+ import { isNil, isArray, first, last, flatten, compact, get as get$1, isString, isNumber, isDate, set, isObject, isEmpty, chunk, isBoolean, isInteger, isNaN as isNaN$1, omit } from 'lodash';
7
7
  export { chunk, isBoolean, isDate, isEmpty, isInteger, isNaN, isNil, isNumber, isObject, isString, now, omit, pick, set } from 'lodash';
8
+ import { Subject } from 'rxjs';
9
+ import { debug } from 'debug';
8
10
  import { CustomError } from 'ts-custom-error';
9
11
  import axios from 'axios';
10
12
  import { collection, getDoc, doc, where, orderBy, getDocs, query, startAfter, startAt, limit, addDoc, setDoc, deleteField, arrayUnion, arrayRemove, deleteDoc, Timestamp } from 'firebase/firestore';
@@ -14,7 +16,8 @@ import { mutation, query as query$1 } from 'gql-query-builder';
14
16
  class BaseModel {
15
17
  get identifier() {
16
18
  const fields = this.constructor.identifiersFields.filter((field) => field !== 'identifier');
17
- return fields.reduce((object, field) => (Object.assign(Object.assign({}, object), { [field]: this[field] })), {});
19
+ const data = this;
20
+ return fields.reduce((object, field) => (Object.assign(Object.assign({}, object), { [field]: data[field] })), {});
18
21
  }
19
22
  get identifiersFields() {
20
23
  return this.constructor.identifiersFields;
@@ -460,12 +463,438 @@ __decorate([
460
463
  __metadata("design:type", Payment)
461
464
  ], SubscriptionPayment.prototype, "payment", void 0);
462
465
 
463
- class Address extends BaseModel {
464
- static get identifiersFields() {
465
- return ['id'];
466
+ var DebugNamespaces;
467
+ (function (DebugNamespaces) {
468
+ DebugNamespaces["ROOT"] = "connect";
469
+ DebugNamespaces["TRACE"] = "trace";
470
+ DebugNamespaces["ERROR"] = "error";
471
+ })(DebugNamespaces || (DebugNamespaces = {}));
472
+ const Logger = debug(DebugNamespaces.ROOT);
473
+
474
+ class ReflectHelper {
475
+ static get items() {
476
+ return this._items;
477
+ }
478
+ static get keys() {
479
+ return Object.keys(ReflectHelper.items);
480
+ }
481
+ static has(key, target, property) {
482
+ return (!isNil(key) &&
483
+ !isNil(ReflectHelper.items[key]) &&
484
+ (isNil(target) ||
485
+ (!isNil(ReflectHelper.items[key][target]) &&
486
+ (isNil(property) || !isNil(ReflectHelper.items[key][target][String(property)])))));
487
+ }
488
+ static get({ key, target, property, own = true }) {
489
+ try {
490
+ if (own) {
491
+ return Reflect.getOwnMetadata(key, target, property) || null;
492
+ }
493
+ else {
494
+ return Reflect.getMetadata(key, target, property) || null;
495
+ }
496
+ }
497
+ catch (_err) {
498
+ return null;
499
+ }
500
+ }
501
+ static first({ key, target, property, own = true }) {
502
+ const values = ReflectHelper.get({ key, target, property, own });
503
+ return isArray(values) ? first(values) : values;
504
+ }
505
+ static last({ key, target, property, own = true }) {
506
+ const values = ReflectHelper.get({ key, target, property, own });
507
+ return isArray(values) ? last(values) : values;
508
+ }
509
+ static set({ key, target, property, value, propertyDescriptor }) {
510
+ Reflect.defineMetadata(key, value, target, property);
511
+ ReflectHelper.put({ key, target, property, value, propertyDescriptor });
512
+ }
513
+ static add({ key, target, property, value, propertyDescriptor }) {
514
+ let values = ReflectHelper.get({ key, target, property }) || new Array();
515
+ if (!Array.isArray(values))
516
+ values = [values];
517
+ values.push(value);
518
+ ReflectHelper.set({ key, target, property, value: values, propertyDescriptor });
519
+ }
520
+ static all({ key }) {
521
+ const items = ReflectHelper.items[key] || {};
522
+ return flatten(Object.keys(items).map((item) => flatten(this.allFrom(key, items[item]))));
523
+ }
524
+ static allFrom(key, target) {
525
+ return Object.keys(target)
526
+ .filter((property) => property !== 'object')
527
+ .map((property) => this.allValuesFrom(key, target, property));
528
+ }
529
+ static allValuesFrom(key, target, property) {
530
+ const values = target[property];
531
+ let value = values.value;
532
+ const propertyDescriptor = values.propertyDescriptor;
533
+ if (!isArray(value))
534
+ value = [value];
535
+ return flatten(value.map((val) => {
536
+ return {
537
+ key,
538
+ target: target.object,
539
+ property,
540
+ value: val,
541
+ propertyDescriptor,
542
+ };
543
+ }));
544
+ }
545
+ static delete({ key, target, property }) {
546
+ Reflect.deleteMetadata(key, target, property);
547
+ return ReflectHelper.remove(key, target, property);
548
+ }
549
+ static clear(key) {
550
+ if (!key) {
551
+ ReflectHelper.keys.forEach((storedKey) => {
552
+ ReflectHelper.clear(storedKey);
553
+ });
554
+ }
555
+ else {
556
+ if (ReflectHelper.keys.includes(key)) {
557
+ Object.values(ReflectHelper.items[key]).forEach((target) => {
558
+ if (ReflectHelper.has(key, target)) {
559
+ Object.values(ReflectHelper.items[key][target.toString()]).forEach((property) => {
560
+ ReflectHelper.delete({
561
+ key,
562
+ target: target.object,
563
+ property: String(property),
564
+ });
565
+ ReflectHelper.remove(key, target, String(property));
566
+ });
567
+ }
568
+ ReflectHelper.delete({ key, target: target.object });
569
+ ReflectHelper.remove(key, target);
570
+ });
571
+ }
572
+ }
573
+ }
574
+ static getType({ target, propertyKey }) {
575
+ return Reflect.getMetadata('design:type', target, propertyKey);
576
+ }
577
+ static getReturntype({ target, propertyKey }) {
578
+ return Reflect.getMetadata('design:returntype', target, propertyKey);
579
+ }
580
+ static getAllMethods(target) {
581
+ const props = [];
582
+ let obj = target;
583
+ do {
584
+ props.push(...Object.getOwnPropertyNames(obj));
585
+ } while ((obj = Object.getPrototypeOf(obj)));
586
+ return props.sort().filter((e, i, arr) => {
587
+ if ([
588
+ '__defineGetter__',
589
+ '__defineSetter__',
590
+ '__lookupGetter__',
591
+ '__lookupSetter__',
592
+ 'constructor',
593
+ 'hasOwnProperty',
594
+ 'isPrototypeOf',
595
+ 'propertyIsEnumerable',
596
+ 'toLocaleString',
597
+ 'toString',
598
+ 'valueOf',
599
+ ].includes(e))
600
+ return false;
601
+ if (e != arr[i + 1] && typeof target[e] === 'function')
602
+ return true;
603
+ });
604
+ }
605
+ static put({ key, target, property, value, propertyDescriptor }) {
606
+ const index = target.constructor.name;
607
+ ReflectHelper.items[key] = ReflectHelper.items[key] || {};
608
+ ReflectHelper.items[key][index] = ReflectHelper.items[key][index] || {};
609
+ ReflectHelper.items[key][index].object = target;
610
+ if (isNil(property)) {
611
+ ReflectHelper.items[key][index].value = {
612
+ value,
613
+ propertyDescriptor,
614
+ };
615
+ }
616
+ else {
617
+ ReflectHelper.items[key][index][String(property)] = ReflectHelper.items[key][index][String(property)] || {};
618
+ ReflectHelper.items[key][index][String(property)] = {
619
+ value,
620
+ propertyDescriptor,
621
+ };
622
+ }
623
+ }
624
+ static remove(key, target, property) {
625
+ if (ReflectHelper.has(key, target, property))
626
+ return delete ReflectHelper.items[key][target][String(property)];
627
+ else if (ReflectHelper.has(key, target))
628
+ return delete ReflectHelper.items[key][target];
629
+ else if (ReflectHelper.has(key))
630
+ return delete ReflectHelper.items[key];
631
+ else
632
+ return false;
633
+ }
634
+ }
635
+ ReflectHelper._items = {};
636
+
637
+ class DebugDecoratorHelper {
638
+ static set(target, options) {
639
+ ReflectHelper.add({
640
+ key: DebugDecoratorHelper.DebugNamingMetadataKey,
641
+ target,
642
+ value: options,
643
+ });
644
+ }
645
+ static get(target) {
646
+ return ReflectHelper.first({
647
+ key: DebugDecoratorHelper.DebugNamingMetadataKey,
648
+ target,
649
+ });
650
+ }
651
+ }
652
+ DebugDecoratorHelper.DebugNamingMetadataKey = 'model:naming:decorator';
653
+
654
+ class ClassNameHelper {
655
+ static get(clazz) {
656
+ if (!clazz)
657
+ return null;
658
+ const prototype = Object.getPrototypeOf(clazz);
659
+ const names = compact([
660
+ get$1(clazz, 'constructor.name'),
661
+ get$1(prototype, 'constructor.name'),
662
+ get$1(prototype, '__proto__.constructor.name'),
663
+ ]);
664
+ return names.find((name) => name !== 'class_1');
466
665
  }
467
666
  }
468
667
 
668
+ const isDebuggable = (object) => {
669
+ return 'debug' in object;
670
+ };
671
+ class DebugHelper {
672
+ constructor(...namespace) {
673
+ this.namespaces = new Set();
674
+ this.push(...namespace);
675
+ }
676
+ static namespacesFor(target) {
677
+ if (isNil(target))
678
+ return [];
679
+ const decorator = DebugDecoratorHelper.get(Object.getPrototypeOf(target));
680
+ const namespaces = get$1(decorator, 'namespaces', []);
681
+ const name = get$1(decorator, 'name', ClassNameHelper.get(target));
682
+ return [...namespaces, name];
683
+ }
684
+ static as(...namespaces) {
685
+ return new DebugHelper(...namespaces);
686
+ }
687
+ static for(target, ...namespaces) {
688
+ const targetNamespaces = this.namespacesFor(target);
689
+ return new DebugHelper(...targetNamespaces, ...namespaces);
690
+ }
691
+ static from(target, ...namespaces) {
692
+ if (this.isDebuggable(target)) {
693
+ const debug = target.debug;
694
+ if (namespaces)
695
+ debug.push(...namespaces);
696
+ return debug;
697
+ }
698
+ return DebugHelper.for(target, ...namespaces);
699
+ }
700
+ static clonedFrom(target, ...namespaces) {
701
+ if (this.isDebuggable(target)) {
702
+ namespaces.push(...target.debug.entries);
703
+ }
704
+ else if (!isNil(target)) {
705
+ namespaces.push(...this.namespacesFor(target));
706
+ }
707
+ return DebugHelper.for(target, ...namespaces);
708
+ }
709
+ static clone(target, ...namespaces) {
710
+ let original;
711
+ if (this.isDebuggable(target)) {
712
+ original = target.debug;
713
+ namespaces.push(...original.entries);
714
+ }
715
+ return {
716
+ original,
717
+ debug: DebugHelper.for(target, ...namespaces),
718
+ };
719
+ }
720
+ static replace(target, attrs) {
721
+ if (this.isDebuggable(target))
722
+ target.debug = attrs.with;
723
+ }
724
+ static mock(target, ...namespaces) {
725
+ const { original, debug } = DebugHelper.clone(target, ...namespaces);
726
+ DebugHelper.replace(target, { with: debug });
727
+ return { original, debug };
728
+ }
729
+ get entries() {
730
+ return Array.from(get$1(this, 'namespaces', []));
731
+ }
732
+ get namespace() {
733
+ return compact(flatten(this.entries)).join(':');
734
+ }
735
+ log(message, ...args) {
736
+ this.logger(JSON.stringify(message), ...args.map((element) => JSON.stringify(element)));
737
+ DebugHelper.logs$.next({ namespace: this.namespace, message, args });
738
+ return this;
739
+ }
740
+ trace(message, ...args) {
741
+ this.logger.extend(DebugNamespaces.TRACE)(message, ...args);
742
+ DebugHelper.traces$.next({ namespace: this.namespace, message, args });
743
+ return this;
744
+ }
745
+ error(error, ...args) {
746
+ this.logger.extend(DebugNamespaces.ERROR)(JSON.stringify(error), ...args.map((element) => JSON.stringify(element)));
747
+ DebugHelper.errors$.next({ namespace: this.namespace, error, args });
748
+ return this;
749
+ }
750
+ build() {
751
+ this.logger = Logger;
752
+ this.tracer = Logger;
753
+ this.err = Logger;
754
+ this.entries.forEach((namespace) => {
755
+ this.logger = this.logger.extend(namespace);
756
+ this.tracer = this.tracer.extend(namespace);
757
+ this.err = this.err.extend(namespace);
758
+ });
759
+ return this;
760
+ }
761
+ with(...namespace) {
762
+ return new DebugHelper(...this.entries, ...namespace);
763
+ }
764
+ push(...namespace) {
765
+ if (namespace) {
766
+ namespace.filter((item) => Boolean(item)).forEach((item) => this.namespaces.add(item));
767
+ }
768
+ return this.build();
769
+ }
770
+ unshift(...namespace) {
771
+ if (namespace) {
772
+ return this.reset(...namespace, ...this.entries);
773
+ }
774
+ return this;
775
+ }
776
+ reset(...namespace) {
777
+ this.namespaces = new Set(flatten(compact(namespace)));
778
+ return this.build();
779
+ }
780
+ startWith(...namespace) {
781
+ const current = this.namespaces;
782
+ this.namespaces = new Set(flatten([compact(namespace), ...current]));
783
+ return this.build();
784
+ }
785
+ shift() {
786
+ const list = this.entries;
787
+ list.shift();
788
+ return this.reset(...list);
789
+ }
790
+ pop() {
791
+ const list = this.entries;
792
+ list.pop();
793
+ return this.reset(...list);
794
+ }
795
+ clear() {
796
+ return this.reset();
797
+ }
798
+ remove(...namespace) {
799
+ if (namespace) {
800
+ namespace.filter((item) => Boolean(item)).forEach((item) => this.namespaces.delete(item));
801
+ }
802
+ return this.build();
803
+ }
804
+ puts(...args) {
805
+ return [`[${this.namespace}]`, ...args].join(' ');
806
+ }
807
+ }
808
+ DebugHelper.logs$ = new Subject();
809
+ DebugHelper.traces$ = new Subject();
810
+ DebugHelper.errors$ = new Subject();
811
+ DebugHelper.isDebuggable = isDebuggable;
812
+
813
+ function Debug(opts) {
814
+ return function (target) {
815
+ DebugDecoratorHelper.set(target.prototype, opts);
816
+ };
817
+ }
818
+
819
+ const ASYNC_IDENTIFIER = 'async';
820
+ function Log(options = {}) {
821
+ return Trace(Object.assign({ level: 'log' }, options));
822
+ }
823
+ function Trace(options = {}) {
824
+ return function (target, propertyKey, propertyDescriptor) {
825
+ const method = propertyDescriptor.value;
826
+ const isPromise = method.toString().includes(ASYNC_IDENTIFIER);
827
+ const args = {
828
+ options,
829
+ method,
830
+ target,
831
+ propertyKey,
832
+ propertyDescriptor,
833
+ };
834
+ propertyDescriptor.value = isPromise ? promiseTracer(args) : functionTracer(args);
835
+ return propertyDescriptor;
836
+ };
837
+ }
838
+ const traceCall = function ({ target, propertyKey, propertyDescriptor, args }) {
839
+ if (!target.debug)
840
+ target.debug = DebugHelper.for(target, propertyKey);
841
+ return target.debug.push(propertyKey).trace('called', { target, propertyKey, propertyDescriptor, args });
842
+ };
843
+ const promiseTracer = function ({ options, method, propertyKey, propertyDescriptor }) {
844
+ return function (...args) {
845
+ return new Promise((resolve, reject) => {
846
+ const debug = traceCall({ target: this, propertyDescriptor, propertyKey, args });
847
+ if (get$1(options, 'level', '') === 'log') {
848
+ debug.with('params').log(args);
849
+ }
850
+ return method
851
+ .apply(this, args)
852
+ .then((result) => {
853
+ if (options.callbackFn) {
854
+ options.callbackFn({ target: this, result, args, namespace: [propertyKey] });
855
+ }
856
+ if (get$1(options, 'level', '') === 'log') {
857
+ debug.with('returns').log(result === undefined ? 'void' : result);
858
+ }
859
+ return resolve(result);
860
+ })
861
+ .catch((error) => {
862
+ debug.error(error, ...args);
863
+ debug.with('stack').error(error.stack).pop();
864
+ return reject(error);
865
+ })
866
+ .finally(() => {
867
+ return debug.trace('finally', { args }).pop();
868
+ });
869
+ });
870
+ };
871
+ };
872
+ const functionTracer = function ({ options, target, method, propertyKey, propertyDescriptor, }) {
873
+ return function (...args) {
874
+ const debug = traceCall({ target: this || target, propertyDescriptor, propertyKey, args });
875
+ if (get$1(options, 'level', '') === 'log') {
876
+ debug.with('params').log(args);
877
+ }
878
+ let result;
879
+ try {
880
+ result = method.apply(this, args);
881
+ if (options.callbackFn)
882
+ options.callbackFn({ target: this, result, args, namespace: [propertyKey] });
883
+ if (get$1(options, 'level', '') === 'log') {
884
+ debug.with('returns').log(result === undefined ? 'void' : result);
885
+ }
886
+ return result;
887
+ }
888
+ catch (error) {
889
+ debug.error(error, ...args).pop();
890
+ throw error;
891
+ }
892
+ finally {
893
+ debug.trace('finally', { args }).pop();
894
+ }
895
+ };
896
+ };
897
+
469
898
  const get = (object, path, defaultValue) => get$1(object, path, defaultValue);
470
899
 
471
900
  function is(value) {
@@ -579,7 +1008,7 @@ class User extends BaseModel {
579
1008
  const instance = super.toInstance(data);
580
1009
  if (!isNil(data.firstName))
581
1010
  instance.displayName = `${data.firstName}${!isNil(data.lastName) ? ` ${data.lastName}` : ''}`;
582
- return instance;
1011
+ return;
583
1012
  }
584
1013
  toPlain() {
585
1014
  const plain = super.toPlain();
@@ -595,6 +1024,18 @@ __decorate([
595
1024
  __metadata("design:type", BeautyProfile)
596
1025
  ], User.prototype, "beautyProfile", void 0);
597
1026
 
1027
+ class Address extends BaseModel {
1028
+ static get identifiersFields() {
1029
+ return ['id'];
1030
+ }
1031
+ }
1032
+
1033
+ class UserAddress extends Address {
1034
+ static get identifiersFields() {
1035
+ return ['id', 'userId'];
1036
+ }
1037
+ }
1038
+
598
1039
  class Subscription extends BaseModel {
599
1040
  static get identifiersFields() {
600
1041
  return ['id'];
@@ -609,12 +1050,12 @@ __decorate([
609
1050
  __metadata("design:type", SubscriptionPlan)
610
1051
  ], Subscription.prototype, "subscriptionPlan", void 0);
611
1052
  __decorate([
612
- Type(() => Address),
613
- __metadata("design:type", Address)
1053
+ Type(() => UserAddress),
1054
+ __metadata("design:type", UserAddress)
614
1055
  ], Subscription.prototype, "shippingAddress", void 0);
615
1056
  __decorate([
616
- Type(() => Address),
617
- __metadata("design:type", Address)
1057
+ Type(() => UserAddress),
1058
+ __metadata("design:type", UserAddress)
618
1059
  ], Subscription.prototype, "billingAddress", void 0);
619
1060
  __decorate([
620
1061
  Type(() => Coupon),
@@ -629,12 +1070,6 @@ __decorate([
629
1070
  __metadata("design:type", Array)
630
1071
  ], Subscription.prototype, "payment", void 0);
631
1072
 
632
- class UserAddress extends Address {
633
- static get identifiersFields() {
634
- return ['id', 'userId'];
635
- }
636
- }
637
-
638
1073
  class UserPaymentMethod extends BaseModel {
639
1074
  static get identifiersFields() {
640
1075
  return ['id', 'userId'];
@@ -667,7 +1102,7 @@ class Authentication {
667
1102
  return __awaiter(this, void 0, void 0, function* () {
668
1103
  const method = this.getServiceByMethod(signInMethod);
669
1104
  const userAuth = yield this.authService[method]({ email, password });
670
- const user = this.userRepository.get(userAuth);
1105
+ const user = this.userRepository.get({ id: userAuth.id });
671
1106
  if (!isNil(user))
672
1107
  return user;
673
1108
  if (/^.+@b4a.com.br$/.test(userAuth.email))
@@ -755,18 +1190,12 @@ class RecoveryPassword {
755
1190
  }
756
1191
 
757
1192
  class Filter extends BaseModel {
758
- identifierFields() {
759
- return ['id'];
760
- }
761
1193
  static get identifiersFields() {
762
1194
  return ['id'];
763
1195
  }
764
1196
  }
765
1197
 
766
1198
  class Category extends BaseModel {
767
- identifierFields() {
768
- return ['id'];
769
- }
770
1199
  static get identifiersFields() {
771
1200
  return ['id'];
772
1201
  }
@@ -781,9 +1210,6 @@ __decorate([
781
1210
  ], Category.prototype, "filters", void 0);
782
1211
 
783
1212
  class CategoryCollectionChildren extends BaseModel {
784
- identifierFields() {
785
- return ['collectionId', 'categoryId'];
786
- }
787
1213
  static get identifiersFields() {
788
1214
  return ['collectionId', 'categoryId'];
789
1215
  }
@@ -819,9 +1245,6 @@ var Shops;
819
1245
  })(Shops || (Shops = {}));
820
1246
 
821
1247
  class FilterOption extends BaseModel {
822
- identifierFields() {
823
- return ['id'];
824
- }
825
1248
  static get identifiersFields() {
826
1249
  return ['id'];
827
1250
  }
@@ -846,9 +1269,6 @@ class Product extends BaseModel {
846
1269
  this.reviewsTotal = evaluation.count || this.reviewsTotal;
847
1270
  this.rate = evaluation.rating || this.rate;
848
1271
  }
849
- identifierFields() {
850
- return ['id'];
851
- }
852
1272
  static get identifiersFields() {
853
1273
  return ['id'];
854
1274
  }
@@ -864,7 +1284,7 @@ __decorate([
864
1284
 
865
1285
  class KitProduct extends BaseModel {
866
1286
  static get identifiersFields() {
867
- return ['productId', 'kitProducId'];
1287
+ return ['productId', 'kitProductId'];
868
1288
  }
869
1289
  }
870
1290
  __decorate([
@@ -877,9 +1297,6 @@ __decorate([
877
1297
  ], KitProduct.prototype, "product", void 0);
878
1298
 
879
1299
  class Variant extends BaseModel {
880
- identifierFields() {
881
- return ['id'];
882
- }
883
1300
  static get identifiersFields() {
884
1301
  return ['id', 'productId'];
885
1302
  }
@@ -930,12 +1347,12 @@ __decorate([
930
1347
  __metadata("design:type", User)
931
1348
  ], Checkout.prototype, "user", void 0);
932
1349
  __decorate([
933
- Type(() => Address),
934
- __metadata("design:type", Address)
1350
+ Type(() => UserAddress),
1351
+ __metadata("design:type", UserAddress)
935
1352
  ], Checkout.prototype, "shippingAddress", void 0);
936
1353
  __decorate([
937
- Type(() => Address),
938
- __metadata("design:type", Address)
1354
+ Type(() => UserAddress),
1355
+ __metadata("design:type", UserAddress)
939
1356
  ], Checkout.prototype, "billingAddress", void 0);
940
1357
  __decorate([
941
1358
  Type(() => ShippingMethod),
@@ -971,12 +1388,12 @@ class CheckoutSubscription extends BaseModel {
971
1388
  }
972
1389
  }
973
1390
  __decorate([
974
- Type(() => Address),
975
- __metadata("design:type", Address)
1391
+ Type(() => UserAddress),
1392
+ __metadata("design:type", UserAddress)
976
1393
  ], CheckoutSubscription.prototype, "shippingAddress", void 0);
977
1394
  __decorate([
978
- Type(() => Address),
979
- __metadata("design:type", Address)
1395
+ Type(() => UserAddress),
1396
+ __metadata("design:type", UserAddress)
980
1397
  ], CheckoutSubscription.prototype, "billingAddress", void 0);
981
1398
  __decorate([
982
1399
  Type(() => SubscriptionPlan),
@@ -1515,7 +1932,7 @@ const withFindFirestore = (MixinBase) => {
1515
1932
  const queries = [];
1516
1933
  if (limits === null || limits === void 0 ? void 0 : limits.offset) {
1517
1934
  if (this.model.isModel(limits.offset))
1518
- queries.push(startAfter(yield getDoc(doc(this.collection(this.buildCollectionPathForFind(filters)), limits.offset.identifier[(_a = limits.offset.identifiersFields) === null || _a === void 0 ? void 0 : _a.shift()]))));
1935
+ queries.push(startAfter(yield getDoc(doc(this.collection(this.buildCollectionPathForFind(filters)), (_a = Object.values(limits.offset.identifier).shift()) === null || _a === void 0 ? void 0 : _a.toString()))));
1519
1936
  else if (isNumber(limits.offset) || isString(limits.offset))
1520
1937
  queries.push(startAt(limits.offset));
1521
1938
  }
@@ -1551,7 +1968,7 @@ const withCreateFirestore = (MixinBase) => {
1551
1968
  save(data) {
1552
1969
  var _a, _b;
1553
1970
  return __awaiter(this, void 0, void 0, function* () {
1554
- const id = (_b = data.identifier[(_a = data.identifiersFields) === null || _a === void 0 ? void 0 : _a.shift()]) === null || _b === void 0 ? void 0 : _b.toString();
1971
+ const id = (_b = (_a = Object.values(data.identifier)) === null || _a === void 0 ? void 0 : _a.shift()) === null || _b === void 0 ? void 0 : _b.toString();
1555
1972
  const collectionPath = this.buildCollectionPathForAdd(data);
1556
1973
  const collection = this.collection(collectionPath);
1557
1974
  if (isEmpty(id))
@@ -2355,11 +2772,12 @@ BindFilterQueryHelper.MakeGraphQLWhere = (filter, fields) => Object.keys(filter)
2355
2772
  }, {});
2356
2773
  BindFilterQueryHelper.BuildWhereSentence = (field, options, fields) => {
2357
2774
  const fieldSentenceOptions = AttributeOptionHelper.FindByAttribute(field, fields);
2358
- if (!Array.isArray(options) &&
2775
+ const isNestedField = !Array.isArray(options) &&
2359
2776
  isObject(options) &&
2360
2777
  isNil(options === null || options === void 0 ? void 0 : options.operator) &&
2361
2778
  isNil(options === null || options === void 0 ? void 0 : options.value) &&
2362
- isNil(fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.to))
2779
+ isNil(fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.to);
2780
+ if (isNestedField)
2363
2781
  return Object.keys(options).reduce((variables, key) => {
2364
2782
  const fieldOptions = AttributeOptionHelper.FindByAttribute(key, (fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.fields) || fields);
2365
2783
  const columnName = fieldOptions.columnName;
@@ -2370,7 +2788,7 @@ BindFilterQueryHelper.BuildWhereSentence = (field, options, fields) => {
2370
2788
  return {
2371
2789
  [fieldSentenceOptions.fields[0]]: BindFilterQueryHelper.BuildOperatorSentence(options, fieldSentenceOptions),
2372
2790
  };
2373
- if (isObject(options) && !FilterOptionHelper.CheckIfIsFilterOption(options))
2791
+ if (!Array.isArray(options) && isObject(options) && !FilterOptionHelper.CheckIfIsFilterOption(options))
2374
2792
  options = Object.values(options)[0];
2375
2793
  return Array.isArray(options)
2376
2794
  ? options.reduce((whereSentence, option) => (Object.assign(Object.assign({}, whereSentence), BindFilterQueryHelper.BuildOperatorSentence(option, fieldSentenceOptions))), {})
@@ -2402,28 +2820,14 @@ GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields = (fields) => {
2402
2820
  if (field === 'affected_rows')
2403
2821
  return field;
2404
2822
  const fieldName = Object.keys(field).shift();
2405
- const fieldValue = field[fieldName];
2823
+ const fieldValue = is(field[fieldName]);
2406
2824
  if (Array.isArray(fieldValue))
2407
2825
  return { [fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue) };
2408
2826
  if (!AttributeOptionHelper.CheckIsColumnOption(fieldValue))
2409
- return null;
2410
- if (fieldValue.fields)
2411
- return !fieldValue.filters
2412
- ? {
2413
- [fieldValue.columnName || fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
2414
- }
2415
- : {
2416
- operation: fieldValue.columnName || fieldName,
2417
- fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
2418
- variables: {
2419
- [`${fieldValue.columnName}_where`]: {
2420
- name: 'where',
2421
- type: fieldValue.filters.filterType,
2422
- value: BindFilterQueryHelper.MakeGraphQLWhere(fieldValue.filters.filters, fieldValue.fields),
2423
- required: true,
2424
- },
2425
- },
2426
- };
2827
+ return;
2828
+ const isNestedField = !!fieldValue.fields;
2829
+ if (isNestedField)
2830
+ return GraphQLFieldHelper.ConvertNestedFieldsToGraphQLFields(fieldName, fieldValue);
2427
2831
  return fieldValue.columnName;
2428
2832
  }).filter((field) => !!field);
2429
2833
  };
@@ -2486,6 +2890,25 @@ GraphQLFieldHelper.ConvertFieldValueTo = (instance, fields, update = false) => {
2486
2890
  return Object.assign(Object.assign({}, result), { [columnName]: data[attributeName] });
2487
2891
  }, {});
2488
2892
  };
2893
+ GraphQLFieldHelper.ConvertNestedFieldsToGraphQLFields = (fieldName, fieldValue) => {
2894
+ const hasCustomFilters = !!fieldValue.filters;
2895
+ if (hasCustomFilters)
2896
+ return {
2897
+ operation: fieldValue.columnName || fieldName,
2898
+ fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
2899
+ variables: {
2900
+ [`${fieldValue.columnName}_where`]: {
2901
+ name: 'where',
2902
+ type: fieldValue.filters.filterType,
2903
+ value: BindFilterQueryHelper.MakeGraphQLWhere(fieldValue.filters.filters, fieldValue.fields),
2904
+ required: true,
2905
+ },
2906
+ },
2907
+ };
2908
+ return {
2909
+ [fieldValue.columnName || fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
2910
+ };
2911
+ };
2489
2912
 
2490
2913
  const withCreateHasuraGraphQL = (MixinBase) => {
2491
2914
  return class CreateHasuraGraphQLMixin extends MixinBase {
@@ -2497,6 +2920,7 @@ const withCreateHasuraGraphQL = (MixinBase) => {
2497
2920
  }
2498
2921
  create(data) {
2499
2922
  return __awaiter(this, void 0, void 0, function* () {
2923
+ this.logger = DebugHelper.from(this, 'create');
2500
2924
  const newData = yield this.save(this.model.toInstance(data));
2501
2925
  return this.model.toInstance(newData);
2502
2926
  });
@@ -2513,8 +2937,7 @@ const withCreateHasuraGraphQL = (MixinBase) => {
2513
2937
  {
2514
2938
  [columnOptions.columnName]: Object.keys(columnOptions.foreignKeyColumn).map((foreignKeyField) => {
2515
2939
  var _a;
2516
- return ((_a = AttributeOptionHelper.FindByAttribute(foreignKeyField, columnOptions === null || columnOptions === void 0 ? void 0 : columnOptions.fields)) === null || _a === void 0 ? void 0 : _a.columnName) ||
2517
- foreignKeyField;
2940
+ return ((_a = AttributeOptionHelper.FindByAttribute(foreignKeyField, columnOptions === null || columnOptions === void 0 ? void 0 : columnOptions.fields)) === null || _a === void 0 ? void 0 : _a.columnName) || foreignKeyField;
2518
2941
  }),
2519
2942
  },
2520
2943
  ]);
@@ -2539,9 +2962,11 @@ const withDeleteHasuraGraphQL = (MixinBase) => {
2539
2962
  }
2540
2963
  delete(identifiers) {
2541
2964
  return __awaiter(this, void 0, void 0, function* () {
2965
+ this.logger = DebugHelper.from(this, 'delete');
2542
2966
  const instance = this.model.toInstance(identifiers);
2543
2967
  yield this.mutation(this.deleteGraphQLOperation, this.model.identifiersFields.map((field) => AttributeOptionHelper.FindByAttribute(field, this.fields).columnName), this.model.identifiersFields.reduce((ids, identifier) => {
2544
- if (isNil(instance[identifier]))
2968
+ const identifierBinded = identifier;
2969
+ if (isNil(instance.identifier[identifierBinded]))
2545
2970
  return ids;
2546
2971
  const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields);
2547
2972
  const value = columnOption.to(identifiers[identifier], instance);
@@ -2566,6 +2991,7 @@ const withHasuraGraphQL = (MixinBase) => {
2566
2991
  this.authOptions = options.authOptions;
2567
2992
  this.model = options.model;
2568
2993
  this.fields = options.fields || this.model.identifiersFields;
2994
+ this.logger = DebugHelper.from(this);
2569
2995
  }
2570
2996
  get headers() {
2571
2997
  var _a, _b, _c, _d, _e, _f, _g;
@@ -2589,7 +3015,11 @@ const withHasuraGraphQL = (MixinBase) => {
2589
3015
  query(operation, fields, variables) {
2590
3016
  var _a, _b, _c, _d;
2591
3017
  return __awaiter(this, void 0, void 0, function* () {
2592
- const builded = this.buildHasuraQueryFields({ operation, fields, variables });
3018
+ const builded = this.buildHasuraQueryFields({
3019
+ operation,
3020
+ fields: fields,
3021
+ variables,
3022
+ });
2593
3023
  const interpected = (yield ((_b = (_a = this.interceptors) === null || _a === void 0 ? void 0 : _a.request) === null || _b === void 0 ? void 0 : _b.call(_a, builded))) || builded;
2594
3024
  const resultQuery = query$1(interpected);
2595
3025
  const result = yield this.fetch(resultQuery);
@@ -2598,6 +3028,7 @@ const withHasuraGraphQL = (MixinBase) => {
2598
3028
  }
2599
3029
  fetch(params) {
2600
3030
  return __awaiter(this, void 0, void 0, function* () {
3031
+ this.logger.with('params').log(params);
2601
3032
  const headers = this.headers;
2602
3033
  const { data: result } = yield axios({
2603
3034
  url: `${this.endpoint}`,
@@ -2607,6 +3038,7 @@ const withHasuraGraphQL = (MixinBase) => {
2607
3038
  });
2608
3039
  if (!isNil(result.errors))
2609
3040
  throw new Error(JSON.stringify(result.errors));
3041
+ this.logger.with('returns').log(result);
2610
3042
  return result.data;
2611
3043
  });
2612
3044
  }
@@ -2633,8 +3065,8 @@ const withHasuraGraphQL = (MixinBase) => {
2633
3065
  return value;
2634
3066
  return date;
2635
3067
  }
2636
- convertDataFromHasura(data) {
2637
- const plain = GraphQLFieldHelper.ConvertFieldValueFrom(data, this.fields);
3068
+ convertDataFromHasura(data, fields) {
3069
+ const plain = GraphQLFieldHelper.ConvertFieldValueFrom(data, fields || this.fields);
2638
3070
  return this.model.toInstance(plain);
2639
3071
  }
2640
3072
  convertDataToHasura(instance, update = false) {
@@ -2676,6 +3108,7 @@ const withUpdateHasuraGraphQL = (MixinBase) => {
2676
3108
  }
2677
3109
  update(data) {
2678
3110
  return __awaiter(this, void 0, void 0, function* () {
3111
+ this.logger = DebugHelper.from(this, 'update');
2679
3112
  const plainData = this.paramsToPlain(data);
2680
3113
  yield this.mutation(this.updateGraphQLOperation, this.model.identifiersFields.map((field) => AttributeOptionHelper.FindByAttribute(field, this.fields).columnName), {
2681
3114
  _set: {
@@ -2700,10 +3133,11 @@ const withUpdateHasuraGraphQL = (MixinBase) => {
2700
3133
  const instance = this.model.toInstance(data);
2701
3134
  return this.model.identifiersFields.reduce((ids, identifier) => {
2702
3135
  var _a;
2703
- if (isNil(instance[identifier]))
3136
+ const identifierBinded = identifier;
3137
+ if (isNil(instance.identifier[identifierBinded]))
2704
3138
  return ids;
2705
- const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields);
2706
- const value = ((_a = columnOption === null || columnOption === void 0 ? void 0 : columnOption.to) === null || _a === void 0 ? void 0 : _a.call(columnOption, data[identifier], instance)) || data[columnOption.attributeName];
3139
+ const columnOption = AttributeOptionHelper.FindByAttribute(identifierBinded, this.fields);
3140
+ const value = ((_a = columnOption === null || columnOption === void 0 ? void 0 : columnOption.to) === null || _a === void 0 ? void 0 : _a.call(columnOption, data[identifierBinded], instance)) || data[columnOption.attributeName];
2707
3141
  return Object.assign(Object.assign({}, ids), { [columnOption.columnName]: value });
2708
3142
  }, {});
2709
3143
  }
@@ -2719,10 +3153,12 @@ const withGetHasuraGraphQL = (MixinBase) => {
2719
3153
  }
2720
3154
  get(identifiers) {
2721
3155
  return __awaiter(this, void 0, void 0, function* () {
3156
+ this.logger = DebugHelper.from(this, 'get');
2722
3157
  const instance = this.model.toInstance(identifiers);
2723
3158
  const result = yield this.query(this.getGraphQLOperation, this.fields, this.model.identifiersFields.reduce((ids, identifier) => {
2724
3159
  var _a;
2725
- if (isNil(instance[identifier]))
3160
+ const identifierBinded = identifier;
3161
+ if (isNil(instance[identifierBinded]))
2726
3162
  return ids;
2727
3163
  const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields);
2728
3164
  const value = ((_a = columnOption === null || columnOption === void 0 ? void 0 : columnOption.to) === null || _a === void 0 ? void 0 : _a.call(columnOption, identifiers[identifier], instance)) ||
@@ -2744,12 +3180,26 @@ const withGetHasuraGraphQL = (MixinBase) => {
2744
3180
 
2745
3181
  const withFindHasuraGraphQL = (MixinBase) => {
2746
3182
  return class FindHasuraGraphQLMixin extends MixinBase {
3183
+ constructor() {
3184
+ super(...arguments);
3185
+ this.bindOrderByAttributes = (orderBy, fields) => Object.keys(orderBy).reduce((acc, current) => (Object.assign(Object.assign({}, acc), { [AttributeOptionHelper.FindByAttribute(current, fields)
3186
+ .columnName]: orderBy[current] })), {});
3187
+ }
2747
3188
  find(params) {
2748
3189
  var _a;
2749
3190
  return __awaiter(this, void 0, void 0, function* () {
3191
+ this.logger = DebugHelper.from(this, 'find');
2750
3192
  const { filters, limits, orderBy, options } = params || {};
2751
3193
  const enableCount = (_a = options === null || options === void 0 ? void 0 : options.enableCount) !== null && _a !== void 0 ? _a : true;
2752
- const variablesCount = Object.assign(Object.assign({}, (isNil(orderBy) ? {} : { order_by: { type: `${this.tableName}_order_by!`, list: true, value: orderBy } })), (isNil(filters)
3194
+ const variablesCount = Object.assign(Object.assign({}, (isNil(orderBy)
3195
+ ? {}
3196
+ : {
3197
+ order_by: {
3198
+ type: `${this.tableName}_order_by!`,
3199
+ list: true,
3200
+ value: this.bindOrderByAttributes(orderBy, this.fields),
3201
+ },
3202
+ })), (isNil(filters)
2753
3203
  ? {}
2754
3204
  : {
2755
3205
  where: {
@@ -4008,5 +4458,5 @@ class VariantHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
4008
4458
  * Generated bundle index. Do not edit.
4009
4459
  */
4010
4460
 
4011
- export { AccessoryImportances, Address, Area, Authentication, AuthenticationFirebaseAuthService, AxiosAdapter, Base, BaseModel, BeardProblems, BeardSizes, BeautyProductImportances, BeautyProfile, BeautyQuestionsHelper, BillingStatus, BodyProblems, BodyShapes, BodyTattoos, Buy2Win, Buy2WinFirestoreRepository, CampaignDashboard, CampaignDashboardFirestoreRepository, CampaignHashtag, CampaignHashtagFirestoreRepository, Category, CategoryCollectionChildren, CategoryCollectionChildrenHasuraGraphQLRepository, CategoryFilter, CategoryFilterHasuraGraphQLRepository, CategoryFirestoreRepository, CategoryHasuraGraphQL, CategoryHasuraGraphQLRepository, Checkout, CheckoutFirestoreRepository, CheckoutSubscription, CheckoutSubscriptionFirestoreRepository, CheckoutTypes, Coupon, CouponFirestoreRepository, CouponSubtypes, CouponTypes, DuplicatedResultsError, Edition, EditionStatus, Exclusivities, FaceSkinOilinesses, FaceSkinProblems, FaceSkinTones, FamilyIncomes, Filter, FilterHasuraGraphQLRepository, FilterOption, FilterOptionHasuraGraphQLRepository, FilterType, FragranceImportances, GenderDestination, HairColors, HairProblems, HairStrands, HairTypes, Home, HomeFirestoreRepository, InvalidArgumentError, KitProduct, KitProductHasuraGraphQL, Lead, LeadFirestoreRepository, LegacyOrderFirestoreRepository, LineItem, NotFoundError, OfficePosition, Order, OrderFirestoreRepository, OrderStatus, Payment, PaymentFirestoreRepository, PaymentType, Product, ProductFirestoreRepository, ProductHasuraGraphQL, ProductHasuraGraphQLRepository, ProductSpents, ProductVariantFirestoreRepository, ProductsIndex, QuestionsFilters, RecoveryPassword, Register, RegisterFirebaseAuthService, RequiredArgumentError, RoundProductPricesHelper, ShippingMethod, ShopMenu, ShopMenuFirestoreRepository, ShopSettings, ShopSettingsFirestoreRepository, Shops, SignInMethods, SignOut, Status, Subscription, SubscriptionEditionFirestoreRepository, SubscriptionFirestoreRepository, SubscriptionPayment, SubscriptionPaymentFirestoreRepository, SubscriptionPlan, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, UnauthorizedError, UpdateOptionActions, User, UserAddress, UserAddressFirestoreRepository, UserAlreadyRegisteredError, UserBeautyProfileFirestoreRepository, UserFirestoreRepository, UserPaymentMethod, UserPaymentMethodFirestoreRepository, UserType, Variant, VariantHasuraGraphQL, VariantHasuraGraphQLRepository, WeakPasswordError, Where, get, is, isUUID, parseDateTime, withCreateFirestore, withCreateHasuraGraphQL, withCrudFirestore, withCrudHasuraGraphQL, withDeleteFirestore, withDeleteHasuraGraphQL, withFindFirestore, withFindHasuraGraphQL, withFirestore, withGetFirestore, withGetHasuraGraphQL, withHasuraGraphQL, withHelpers, withSubCollection, withUpdateFirestore, withUpdateHasuraGraphQL };
4461
+ export { AccessoryImportances, Address, Area, Authentication, AuthenticationFirebaseAuthService, AxiosAdapter, Base, BaseModel, BeardProblems, BeardSizes, BeautyProductImportances, BeautyProfile, BeautyQuestionsHelper, BillingStatus, BodyProblems, BodyShapes, BodyTattoos, Buy2Win, Buy2WinFirestoreRepository, CampaignDashboard, CampaignDashboardFirestoreRepository, CampaignHashtag, CampaignHashtagFirestoreRepository, Category, CategoryCollectionChildren, CategoryCollectionChildrenHasuraGraphQLRepository, CategoryFilter, CategoryFilterHasuraGraphQLRepository, CategoryFirestoreRepository, CategoryHasuraGraphQL, CategoryHasuraGraphQLRepository, Checkout, CheckoutFirestoreRepository, CheckoutSubscription, CheckoutSubscriptionFirestoreRepository, CheckoutTypes, ClassNameHelper, Coupon, CouponFirestoreRepository, CouponSubtypes, CouponTypes, Debug, DebugDecoratorHelper, DebugHelper, DebugNamespaces, DuplicatedResultsError, Edition, EditionStatus, Exclusivities, FaceSkinOilinesses, FaceSkinProblems, FaceSkinTones, FamilyIncomes, Filter, FilterHasuraGraphQLRepository, FilterOption, FilterOptionHasuraGraphQLRepository, FilterType, FragranceImportances, GenderDestination, HairColors, HairProblems, HairStrands, HairTypes, Home, HomeFirestoreRepository, InvalidArgumentError, KitProduct, KitProductHasuraGraphQL, Lead, LeadFirestoreRepository, LegacyOrderFirestoreRepository, LineItem, Log, Logger, NotFoundError, OfficePosition, Order, OrderFirestoreRepository, OrderStatus, Payment, PaymentFirestoreRepository, PaymentType, Product, ProductFirestoreRepository, ProductHasuraGraphQL, ProductHasuraGraphQLRepository, ProductSpents, ProductVariantFirestoreRepository, ProductsIndex, QuestionsFilters, RecoveryPassword, ReflectHelper, Register, RegisterFirebaseAuthService, RequiredArgumentError, RoundProductPricesHelper, ShippingMethod, ShopMenu, ShopMenuFirestoreRepository, ShopSettings, ShopSettingsFirestoreRepository, Shops, SignInMethods, SignOut, Status, Subscription, SubscriptionEditionFirestoreRepository, SubscriptionFirestoreRepository, SubscriptionPayment, SubscriptionPaymentFirestoreRepository, SubscriptionPlan, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, Trace, UnauthorizedError, UpdateOptionActions, User, UserAddress, UserAddressFirestoreRepository, UserAlreadyRegisteredError, UserBeautyProfileFirestoreRepository, UserFirestoreRepository, UserPaymentMethod, UserPaymentMethodFirestoreRepository, UserType, Variant, VariantHasuraGraphQL, VariantHasuraGraphQLRepository, WeakPasswordError, Where, get, is, isDebuggable, isUUID, parseDateTime, withCreateFirestore, withCreateHasuraGraphQL, withCrudFirestore, withCrudHasuraGraphQL, withDeleteFirestore, withDeleteHasuraGraphQL, withFindFirestore, withFindHasuraGraphQL, withFirestore, withGetFirestore, withGetHasuraGraphQL, withHasuraGraphQL, withHelpers, withSubCollection, withUpdateFirestore, withUpdateHasuraGraphQL };
4012
4462
  //# sourceMappingURL=infrab4a-connect.mjs.map