@infrab4a/connect 4.25.0-beta.0 → 4.25.0-beta.10

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 (72) hide show
  1. package/index.cjs.js +1057 -677
  2. package/index.esm.js +1058 -677
  3. package/package.json +1 -1
  4. package/src/domain/catalog/repositories/category.repository.d.ts +15 -4
  5. package/src/domain/catalog/repositories/product.repository.d.ts +13 -5
  6. package/src/domain/general/cacheadapter.d.ts +11 -0
  7. package/src/domain/general/index.d.ts +1 -0
  8. package/src/domain/general/models/index.d.ts +0 -1
  9. package/src/domain/general/repositories/index.d.ts +0 -1
  10. package/src/domain/generic/repository/find.repository.d.ts +4 -2
  11. package/src/domain/generic/repository/get.repository.d.ts +4 -1
  12. package/src/domain/generic/repository/types/index.d.ts +3 -2
  13. package/src/domain/generic/repository/types/repository-cache-options.type.d.ts +9 -0
  14. package/src/infra/cache/index.d.ts +1 -0
  15. package/src/infra/cache/restcache.adapter.d.ts +15 -0
  16. package/src/infra/firebase/firestore/mixins/helpers/cache-key-generator.helper.d.ts +9 -0
  17. package/src/infra/firebase/firestore/mixins/helpers/index.d.ts +1 -0
  18. package/src/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +2 -1
  19. package/src/infra/firebase/firestore/mixins/with-helpers.mixin.d.ts +1 -1
  20. package/src/infra/firebase/firestore/repositories/general/index.d.ts +0 -1
  21. package/src/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.d.ts +1 -1
  22. package/src/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.d.ts +1 -1
  23. package/src/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.d.ts +1 -1
  24. package/src/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.d.ts +1 -1
  25. package/src/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.d.ts +1 -1
  26. package/src/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.d.ts +1 -1
  27. package/src/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.d.ts +1 -1
  28. package/src/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.d.ts +1 -1
  29. package/src/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.d.ts +1 -1
  30. package/src/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.d.ts +1 -1
  31. package/src/infra/firebase/firestore/repositories/shopping/order-blocked-firestore.repository.d.ts +1 -1
  32. package/src/infra/firebase/firestore/repositories/shopping/order-firestore.repository.d.ts +1 -1
  33. package/src/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.d.ts +1 -1
  34. package/src/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.d.ts +1 -1
  35. package/src/infra/firebase/firestore/repositories/users/lead-firestore.repository.d.ts +1 -1
  36. package/src/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.d.ts +1 -1
  37. package/src/infra/firebase/firestore/repositories/users/subscription-firestore.repository.d.ts +1 -1
  38. package/src/infra/firebase/firestore/repositories/users/subscription-materialization-firestore.repository.d.ts +1 -1
  39. package/src/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.d.ts +1 -1
  40. package/src/infra/firebase/firestore/repositories/users/subscription-summary-firestore.repository.d.ts +1 -1
  41. package/src/infra/firebase/firestore/repositories/users/user-address-firestore.repository.d.ts +1 -1
  42. package/src/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.d.ts +1 -1
  43. package/src/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +1 -1
  44. package/src/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.d.ts +1 -1
  45. package/src/infra/firebase/firestore/types/firestore.repository.type.d.ts +2 -1
  46. package/src/infra/hasura-graphql/mixins/helpers/cache-key-generator.helper.d.ts +6 -0
  47. package/src/infra/hasura-graphql/mixins/helpers/index.d.ts +2 -0
  48. package/src/infra/hasura-graphql/mixins/helpers/md5-generator.helper.d.ts +4 -0
  49. package/src/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.d.ts +22 -3
  50. package/src/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.d.ts +6 -2
  51. package/src/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.d.ts +2 -1
  52. package/src/infra/hasura-graphql/repositories/catalog/category-collection-children-hasura-graphql.repository.d.ts +1 -1
  53. package/src/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.d.ts +1 -1
  54. package/src/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.d.ts +19 -7
  55. package/src/infra/hasura-graphql/repositories/catalog/category-product-hasura-graphql.repository.d.ts +1 -1
  56. package/src/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.d.ts +1 -1
  57. package/src/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.d.ts +1 -1
  58. package/src/infra/hasura-graphql/repositories/catalog/product-errors-hasura-graphql.repository.d.ts +1 -1
  59. package/src/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.d.ts +20 -8
  60. package/src/infra/hasura-graphql/repositories/catalog/product-review-hasura-graphql.repository.d.ts +1 -1
  61. package/src/infra/hasura-graphql/repositories/catalog/product-stock-notification-hasura-graphql.repository.d.ts +1 -1
  62. package/src/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.d.ts +1 -1
  63. package/src/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.d.ts +1 -1
  64. package/src/infra/hasura-graphql/types/graphql.repository.type.d.ts +2 -1
  65. package/src/infra/index.d.ts +1 -0
  66. package/src/domain/general/enums/index.d.ts +0 -1
  67. package/src/domain/general/enums/queue-status.enum.d.ts +0 -6
  68. package/src/domain/general/models/product-queue.d.ts +0 -14
  69. package/src/domain/general/repositories/product-queue.repository.d.ts +0 -4
  70. package/src/domain/general/types/index.d.ts +0 -1
  71. package/src/domain/general/types/queue-status.type.d.ts +0 -2
  72. package/src/infra/firebase/firestore/repositories/general/product-queue.repository.d.ts +0 -7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infrab4a/connect",
3
- "version": "4.25.0-beta.0",
3
+ "version": "4.25.0-beta.10",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org"
6
6
  },
@@ -1,18 +1,29 @@
1
1
  import { CrudRepository } from '../../generic/repository/crud.repository';
2
+ import { RepositoryCacheOptions } from '../../generic/repository/types';
2
3
  import { Product } from '../models';
3
4
  import { Category } from '../models/category';
4
5
  import { Shops } from '../models/enums/shops.enum';
5
6
  export interface CategoryRepository<T extends Category = Category> extends CrudRepository<T> {
6
- getCategoryBySlug(slug: string, shop: Shops): Promise<Category>;
7
- getCategoryByShop(shop: string): Promise<Category[]>;
8
- getCategoriesForHome(categoryIds: string[], shop: Shops, limit?: number): Promise<{
7
+ getCategoryBySlug(slug: string, shop: Shops, optionsCache?: {
8
+ cache?: RepositoryCacheOptions;
9
+ }): Promise<Category>;
10
+ getCategoryByShop(shop: string, optionsCache?: {
11
+ cache?: RepositoryCacheOptions;
12
+ }): Promise<Category[]>;
13
+ getCategoriesForHome(categoryIds: string[], shop: Shops, limit?: number, optionsCache?: {
14
+ cache?: RepositoryCacheOptions;
15
+ }): Promise<{
9
16
  category: Category;
10
17
  products: Product[];
11
18
  }[]>;
12
19
  mountCategory(category: Category, shop: Shops, options?: {
13
20
  limit?: number;
14
21
  hasStock?: boolean;
22
+ }, optionsCache?: {
23
+ cache?: RepositoryCacheOptions;
15
24
  }): Promise<Product[]>;
16
- getChildren(parentId: number): Promise<Category[]>;
25
+ getChildren(parentId: number, optionsCache?: {
26
+ cache?: RepositoryCacheOptions;
27
+ }): Promise<Category[]>;
17
28
  isChild(id: number, parentId: number): Promise<boolean>;
18
29
  }
@@ -1,4 +1,4 @@
1
- import { FindRepositoryParams, RepositoryFindResult } from '../../generic';
1
+ import { FindRepositoryParams, RepositoryCacheOptions, RepositoryFindResult } from '../../generic';
2
2
  import { CrudRepository } from '../../generic/repository/crud.repository';
3
3
  import { Product, ProductGender, ProductReview, ProductVariantReport } from '../models';
4
4
  export type ReviewStatusParams = 'pending' | 'approved' | 'rejected';
@@ -20,10 +20,18 @@ export type PaginatedReviewFilters = {
20
20
  limit?: number;
21
21
  };
22
22
  export interface ProductRepository extends CrudRepository<Product> {
23
- getBySlug(slug: string): Promise<Product>;
24
- fetchReviews(status: ReviewStatusParams): Promise<ReviewWithProductData[]>;
25
- fetchProductReviews(filters: PaginatedReviewFilters): Promise<ReviewWithProductData[]>;
23
+ getBySlug(slug: string, options?: {
24
+ cache?: RepositoryCacheOptions;
25
+ }): Promise<Product>;
26
+ fetchReviews(status: ReviewStatusParams, options?: {
27
+ cache?: RepositoryCacheOptions;
28
+ }): Promise<ReviewWithProductData[]>;
29
+ fetchProductReviews(filters: PaginatedReviewFilters, options?: {
30
+ cache?: RepositoryCacheOptions;
31
+ }): Promise<ReviewWithProductData[]>;
26
32
  cleanShoppingCountFromIds(ids: string[]): Promise<any>;
27
- findCatalog(params: FindRepositoryParams<Product>, mainGender?: Extract<ProductGender, 'female' | 'male' | 'unisex'>): Promise<RepositoryFindResult<Product>>;
33
+ findCatalog(params: FindRepositoryParams<Product>, mainGender?: Extract<ProductGender, 'female' | 'male' | 'unisex'>, options?: {
34
+ cache?: RepositoryCacheOptions;
35
+ }): Promise<RepositoryFindResult<Product>>;
28
36
  productVariantFullReport(): Promise<ProductVariantReport[]>;
29
37
  }
@@ -0,0 +1,11 @@
1
+ export interface CacheOptions {
2
+ key: string;
3
+ data: any;
4
+ expirationInSeconds?: number;
5
+ }
6
+ export interface CacheAdapter {
7
+ set(options: CacheOptions): Promise<boolean>;
8
+ get<T = any>(key: string): Promise<T | null>;
9
+ remove(key: string): Promise<boolean>;
10
+ clear(): Promise<boolean>;
11
+ }
@@ -1,3 +1,4 @@
1
+ export * from './cacheadapter';
1
2
  export * from './models';
2
3
  export * from './repositories';
3
4
  export * from './search';
@@ -1,3 +1,2 @@
1
1
  export * from './log-document';
2
- export * from './product-queue';
3
2
  export * from './sequences';
@@ -1,3 +1,2 @@
1
1
  export * from './log.repository';
2
- export * from './product-queue.repository';
3
2
  export * from './sequences.repository';
@@ -1,5 +1,5 @@
1
1
  import { ModelBaseStructure, NonFunctionAndIdentifierPropertyNames, NonFunctionPropertyNames } from '../model/types';
2
- import { RepositoryFindFielters, RepositoryFindResult, RepositoryLimitOptions, RepositoryOrderBy } from './types';
2
+ import { RepositoryCacheOptions, RepositoryFindFielters, RepositoryFindResult, RepositoryLimitOptions, RepositoryOrderBy } from './types';
3
3
  export type FindRepositoryParams<Model extends ModelBaseStructure> = {
4
4
  filters?: RepositoryFindFielters<Model>;
5
5
  fields?: NonFunctionPropertyNames<Model>[];
@@ -13,5 +13,7 @@ export type FindRepositoryParams<Model extends ModelBaseStructure> = {
13
13
  };
14
14
  };
15
15
  export interface FindRepository<Model extends ModelBaseStructure, Params = FindRepositoryParams<Model>> {
16
- find(options?: Params): Promise<RepositoryFindResult<Model>>;
16
+ find(params?: Params, options?: {
17
+ cache?: RepositoryCacheOptions;
18
+ }): Promise<RepositoryFindResult<Model>>;
17
19
  }
@@ -1,5 +1,8 @@
1
1
  import { IdentifiersModel, ModelBaseStructure } from '../model/types';
2
+ import { RepositoryCacheOptions } from './types';
2
3
  export type GetRepositoryParams<Model extends ModelBaseStructure> = IdentifiersModel<Model>;
3
4
  export interface GetRepository<Model extends ModelBaseStructure, Params = GetRepositoryParams<Model>> {
4
- get(identifiers: Params): Promise<Model>;
5
+ get(identifiers: Params, options?: {
6
+ cache?: RepositoryCacheOptions;
7
+ }): Promise<Model>;
5
8
  }
@@ -1,6 +1,7 @@
1
+ export * from './repository-cache-options.type';
1
2
  export * from './repository-find-filters.type';
2
- export * from './repository-order-by-list.type';
3
- export * from './repository-limit-options.type';
4
3
  export * from './repository-find-result.type';
4
+ export * from './repository-limit-options.type';
5
+ export * from './repository-order-by-list.type';
5
6
  export * from './repository-update-params.type';
6
7
  export * from './where-options.type';
@@ -0,0 +1,9 @@
1
+ import { CacheAdapter } from '../../../general/cacheadapter';
2
+ export type RepositoryCacheOptions = {
3
+ enabled: boolean;
4
+ ttl?: number;
5
+ };
6
+ export type CacheConfig = {
7
+ cacheAdapter: CacheAdapter;
8
+ ttlDefault?: number;
9
+ };
@@ -0,0 +1 @@
1
+ export * from './restcache.adapter';
@@ -0,0 +1,15 @@
1
+ import { CacheAdapter, CacheOptions } from '../../domain/general/cacheadapter';
2
+ export interface RESTCacheConfig {
3
+ baseURL: string;
4
+ authToken?: string;
5
+ mobileApiKey?: string;
6
+ }
7
+ export declare class RestCacheAdapter implements CacheAdapter {
8
+ private client;
9
+ private readonly logger;
10
+ constructor(config: RESTCacheConfig);
11
+ set(options: CacheOptions): Promise<boolean>;
12
+ get<T = any>(key: string): Promise<T | null>;
13
+ remove(key: string): Promise<boolean>;
14
+ clear(): Promise<boolean>;
15
+ }
@@ -0,0 +1,9 @@
1
+ import { ModelBaseStructure } from '../../../../../domain';
2
+ export declare class FirestoreCacheKeyGeneratorHelper {
3
+ static generateGetCacheKey<Model extends ModelBaseStructure<Model>>(model: {
4
+ name: string;
5
+ }, identifiers: Record<string, any>): string;
6
+ static generateFindCacheKey<Model extends ModelBaseStructure<Model>>(model: {
7
+ name: string;
8
+ }, findParams: any): string;
9
+ }
@@ -0,0 +1 @@
1
+ export * from './cache-key-generator.helper';
@@ -1,4 +1,4 @@
1
- import { BaseModelBuilder, ModelBaseStructure, NonFunctionAndIdentifierPropertyNames } from '../../../../domain';
1
+ import { BaseModelBuilder, CacheConfig, ModelBaseStructure, NonFunctionAndIdentifierPropertyNames } from '../../../../domain';
2
2
  import { MergeConstructorParams, MixinCtor } from '../../../../utils';
3
3
  import { FirestoreFieldType } from '../enums';
4
4
  import { ConnectFirestore } from '../services';
@@ -9,5 +9,6 @@ export type FirestoreConstructorParams<Model extends ModelBaseStructure<Model>>
9
9
  model: BaseModelBuilder<Model>;
10
10
  fields?: Partial<Record<NonFunctionAndIdentifierPropertyNames<Model>, FirestoreFieldType>>;
11
11
  interceptors?: FirestoreInterceptors<Model>;
12
+ cache?: CacheConfig;
12
13
  };
13
14
  export declare const withFirestore: <TBase extends ModelBaseStructure<TBase, TBase["identifiersFields"][number]>, T extends MixinCtor<any, any[]> = MixinCtor<any, any[]>>(MixinBase: T) => MixinCtor<FirestoreRepository<TBase>, any[]>;
@@ -5,7 +5,7 @@ import { FirestoreRepository, FirestoreSubRepository } from '../types';
5
5
  export declare const withHelpers: <TMixinBase extends MixinCtor<any, any[]> = MixinCtor<any, any[]>>(MixinBase: MixinCtor<any, any[]> & TMixinBase) => {
6
6
  new (...args: any[]): {
7
7
  [x: string]: any;
8
- toArray<T extends ModelBaseStructure<T, T["identifiersFields"][number]>>(snapShot: QuerySnapshot<T, import("firebase/firestore").DocumentData> | QueryDocumentSnapshot<T, import("firebase/firestore").DocumentData>[]): T[];
8
+ toArray<T extends ModelBaseStructure<T, T["identifiersFields"][number]>>(snapShot: QuerySnapshot<T> | QueryDocumentSnapshot<T>[]): T[];
9
9
  isSubCollection<T_1 extends ModelBaseStructure<T_1, T_1["identifiersFields"][number]>, E extends ModelBaseStructure<E, E["identifiersFields"][number]>>(repository: FirestoreRepository<T_1> | FirestoreSubRepository<T_1, E>): repository is FirestoreSubRepository<T_1, E>;
10
10
  };
11
11
  } & TMixinBase;
@@ -1,3 +1,2 @@
1
1
  export * from './log-firestore.repository';
2
- export * from './product-queue.repository';
3
2
  export * from './sequences-firestore.repository';
@@ -3,7 +3,7 @@ import { FirestoreConstructorParams } from '../../mixins';
3
3
  import { ConnectDocumentData, ConnectDocumentSnapshot } from '../../types';
4
4
  declare const HomeFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../../types").FirestoreRepository<Home> & import("../../../../../domain").CrudRepository<Home, import("../../../../../domain").CrudParams<Home>> & import("../../types").FirestoreHelpers, [FirestoreConstructorParams<Home>, ...any[]]>;
5
5
  export declare class HomeFirestoreRepository extends HomeFirestoreRepository_base implements HomeRepository {
6
- constructor({ firestore, interceptors }: Pick<FirestoreConstructorParams<Home>, 'firestore' | 'interceptors'>);
6
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<Home>, 'firestore' | 'interceptors' | 'cache'>);
7
7
  buildModelInstance(): {
8
8
  toFirestore: (data: Home) => ConnectDocumentData<Home>;
9
9
  fromFirestore: (snap: ConnectDocumentSnapshot<Home>) => Home;
@@ -2,6 +2,6 @@ import { ShopMenu, ShopMenuRepository } from '../../../../../domain';
2
2
  import { FirestoreConstructorParams } from '../../mixins';
3
3
  declare const ShopMenuFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../..").FirestoreRepository<ShopMenu> & import("../../../../../domain").CrudRepository<ShopMenu, import("../../../../../domain").CrudParams<ShopMenu>> & import("../..").FirestoreHelpers, [FirestoreConstructorParams<ShopMenu>, ...any[]]>;
4
4
  export declare class ShopMenuFirestoreRepository extends ShopMenuFirestoreRepository_base implements ShopMenuRepository {
5
- constructor({ firestore, interceptors }: Pick<FirestoreConstructorParams<ShopMenu>, 'firestore' | 'interceptors'>);
5
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<ShopMenu>, 'firestore' | 'interceptors' | 'cache'>);
6
6
  }
7
7
  export {};
@@ -2,6 +2,6 @@ import { ShopSettings, ShopSettingsRepository } from '../../../../../domain';
2
2
  import { FirestoreConstructorParams } from '../../mixins';
3
3
  declare const ShopSettingsFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../..").FirestoreRepository<ShopSettings> & import("../../../../../domain").CrudRepository<ShopSettings, import("../../../../../domain").CrudParams<ShopSettings>> & import("../..").FirestoreHelpers, [FirestoreConstructorParams<ShopSettings>, ...any[]]>;
4
4
  export declare class ShopSettingsFirestoreRepository extends ShopSettingsFirestoreRepository_base implements ShopSettingsRepository {
5
- constructor({ firestore, interceptors, }: Pick<FirestoreConstructorParams<ShopSettings>, 'firestore' | 'interceptors'>);
5
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<ShopSettings>, 'firestore' | 'interceptors' | 'cache'>);
6
6
  }
7
7
  export {};
@@ -2,6 +2,6 @@ import { Buy2Win, Buy2WinRepository } from '../../../../../domain';
2
2
  import { FirestoreConstructorParams } from '../../mixins';
3
3
  declare const Buy2WinFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../..").FirestoreRepository<Buy2Win> & import("../../../../../domain").CrudRepository<Buy2Win, import("../../../../../domain").CrudParams<Buy2Win>> & import("../..").FirestoreHelpers, [FirestoreConstructorParams<Buy2Win>, ...any[]]>;
4
4
  export declare class Buy2WinFirestoreRepository extends Buy2WinFirestoreRepository_base implements Buy2WinRepository {
5
- constructor({ firestore, interceptors }: Pick<FirestoreConstructorParams<Buy2Win>, 'firestore' | 'interceptors'>);
5
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<Buy2Win>, 'firestore' | 'interceptors' | 'cache'>);
6
6
  }
7
7
  export {};
@@ -3,6 +3,6 @@ import { CampaignDashboardRepository } from '../../../../../domain/shopping/repo
3
3
  import { FirestoreConstructorParams } from '../../mixins';
4
4
  declare const CampaignDashboardFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../..").FirestoreRepository<CampaignDashboard> & import("../../../../..").CrudRepository<CampaignDashboard, import("../../../../..").CrudParams<CampaignDashboard>> & import("../..").FirestoreHelpers, [FirestoreConstructorParams<CampaignDashboard>, ...any[]]>;
5
5
  export declare class CampaignDashboardFirestoreRepository extends CampaignDashboardFirestoreRepository_base implements CampaignDashboardRepository {
6
- constructor({ firestore, interceptors, }: Pick<FirestoreConstructorParams<CampaignDashboard>, 'firestore' | 'interceptors'>);
6
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<CampaignDashboard>, 'firestore' | 'interceptors' | 'cache'>);
7
7
  }
8
8
  export {};
@@ -3,6 +3,6 @@ import { CampaignHashtagRepository } from '../../../../../domain/shopping/reposi
3
3
  import { FirestoreConstructorParams } from '../../mixins';
4
4
  declare const CampaignHashtagFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../..").FirestoreRepository<CampaignHashtag> & import("../../../../..").CrudRepository<CampaignHashtag, import("../../../../..").CrudParams<CampaignHashtag>> & import("../..").FirestoreHelpers, [FirestoreConstructorParams<CampaignHashtag>, ...any[]]>;
5
5
  export declare class CampaignHashtagFirestoreRepository extends CampaignHashtagFirestoreRepository_base implements CampaignHashtagRepository {
6
- constructor({ firestore, interceptors, }: Pick<FirestoreConstructorParams<CampaignHashtag>, 'firestore' | 'interceptors'>);
6
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<CampaignHashtag>, 'firestore' | 'interceptors' | 'cache'>);
7
7
  }
8
8
  export {};
@@ -2,6 +2,6 @@ import { Checkout, CheckoutRepository } from '../../../../../domain';
2
2
  import { FirestoreConstructorParams } from '../../mixins';
3
3
  declare const CheckoutFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../..").FirestoreRepository<Checkout> & import("../../../../../domain").CrudRepository<Checkout, import("../../../../../domain").CrudParams<Checkout>> & import("../..").FirestoreHelpers, [FirestoreConstructorParams<Checkout>, ...any[]]>;
4
4
  export declare class CheckoutFirestoreRepository extends CheckoutFirestoreRepository_base implements CheckoutRepository {
5
- constructor({ firestore, interceptors }: Pick<FirestoreConstructorParams<Checkout>, 'firestore' | 'interceptors'>);
5
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<Checkout>, 'firestore' | 'interceptors' | 'cache'>);
6
6
  }
7
7
  export {};
@@ -2,6 +2,6 @@ import { CheckoutSubscription, CheckoutSubscriptionRepository } from '../../../.
2
2
  import { FirestoreConstructorParams } from '../../mixins';
3
3
  declare const CheckoutSubscriptionFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../..").FirestoreRepository<CheckoutSubscription> & import("../../../../../domain").CrudRepository<CheckoutSubscription, import("../../../../../domain").CrudParams<CheckoutSubscription>> & import("../..").FirestoreHelpers, [FirestoreConstructorParams<CheckoutSubscription>, ...any[]]>;
4
4
  export declare class CheckoutSubscriptionFirestoreRepository extends CheckoutSubscriptionFirestoreRepository_base implements CheckoutSubscriptionRepository {
5
- constructor({ firestore, interceptors, }: Pick<FirestoreConstructorParams<CheckoutSubscription>, 'firestore' | 'interceptors'>);
5
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<CheckoutSubscription>, 'firestore' | 'interceptors' | 'cache'>);
6
6
  }
7
7
  export {};
@@ -3,7 +3,7 @@ import { FirestoreConstructorParams } from '../../mixins';
3
3
  import { ConnectDocumentData, ConnectDocumentSnapshot } from '../../types';
4
4
  declare const CouponFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../../types").FirestoreRepository<Coupon> & import("../../../../../domain").CrudRepository<Coupon, import("../../../../../domain").CrudParams<Coupon>> & import("../../types").FirestoreHelpers, [FirestoreConstructorParams<Coupon>, ...any[]]>;
5
5
  export declare class CouponFirestoreRepository extends CouponFirestoreRepository_base implements CouponRepository {
6
- constructor({ firestore, interceptors }: Pick<FirestoreConstructorParams<Coupon>, 'firestore' | 'interceptors'>);
6
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<Coupon>, 'firestore' | 'interceptors' | 'cache'>);
7
7
  buildModelInstance(): {
8
8
  toFirestore: (data: Coupon) => ConnectDocumentData<Coupon>;
9
9
  fromFirestore: (snap: ConnectDocumentSnapshot<Coupon>) => Coupon;
@@ -2,5 +2,5 @@ import { LegacyOrderRepository, Order } from '../../../../../domain';
2
2
  import { FirestoreConstructorParams } from '../../mixins';
3
3
  import { OrderFirestoreRepository } from './order-firestore.repository';
4
4
  export declare class LegacyOrderFirestoreRepository extends OrderFirestoreRepository implements LegacyOrderRepository {
5
- constructor({ firestore, interceptors }: Pick<FirestoreConstructorParams<Order>, 'firestore' | 'interceptors'>);
5
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<Order>, 'firestore' | 'interceptors' | 'cache'>);
6
6
  }
@@ -2,7 +2,7 @@ import { Checkout, OrderBlocked, OrderBlockedRepository, OrderBlockedType, Payme
2
2
  import { FirestoreConstructorParams } from '../../mixins';
3
3
  declare const OrderBlockedFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../..").FirestoreRepository<OrderBlocked> & import("../../../../../domain").CrudRepository<OrderBlocked, import("../../../../../domain").CrudParams<OrderBlocked>> & import("../..").FirestoreHelpers, [FirestoreConstructorParams<OrderBlocked>, ...any[]]>;
4
4
  export declare class OrderBlockedFirestoreRepository extends OrderBlockedFirestoreRepository_base implements OrderBlockedRepository {
5
- constructor({ firestore, interceptors, }: Pick<FirestoreConstructorParams<OrderBlocked>, 'firestore' | 'interceptors'>);
5
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<OrderBlocked>, 'firestore' | 'interceptors' | 'cache'>);
6
6
  createBlockedOrderOrPayment(checkout: Checkout, blockType: string, type: OrderBlockedType, limiteRange: string, card?: PaymentCardInfo): Promise<OrderBlocked>;
7
7
  private formatZip;
8
8
  }
@@ -3,7 +3,7 @@ import { FirestoreConstructorParams } from '../../mixins';
3
3
  import { ConnectDocumentData, ConnectDocumentSnapshot } from '../../types';
4
4
  declare const OrderFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../../types").FirestoreRepository<Order> & import("../../../../../domain").CrudRepository<Order, import("../../../../../domain").CrudParams<Order>> & import("../../types").FirestoreHelpers, [FirestoreConstructorParams<Order>, ...any[]]>;
5
5
  export declare class OrderFirestoreRepository extends OrderFirestoreRepository_base implements OrderRepository {
6
- constructor({ firestore, interceptors }: Pick<FirestoreConstructorParams<Order>, 'firestore' | 'interceptors'>);
6
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<Order>, 'firestore' | 'interceptors' | 'cache'>);
7
7
  buildModelInstance(): {
8
8
  toFirestore: (data: Order) => ConnectDocumentData<Order>;
9
9
  fromFirestore: (snap: ConnectDocumentSnapshot<Order>) => Order;
@@ -2,6 +2,6 @@ import { Payment, PaymentRepository } from '../../../../../domain';
2
2
  import { FirestoreConstructorParams } from '../../mixins';
3
3
  declare const PaymentFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../..").FirestoreRepository<Payment> & import("../../../../../domain").CrudRepository<Payment, import("../../../../../domain").CrudParams<Payment>> & import("../..").FirestoreHelpers, [FirestoreConstructorParams<Payment>, ...any[]]>;
4
4
  export declare class PaymentFirestoreRepository extends PaymentFirestoreRepository_base implements PaymentRepository {
5
- constructor({ firestore, interceptors }: Pick<FirestoreConstructorParams<Payment>, 'firestore' | 'interceptors'>);
5
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<Payment>, 'firestore' | 'interceptors' | 'cache'>);
6
6
  }
7
7
  export {};
@@ -2,6 +2,6 @@ import { SubscriptionPlan, SubscriptionPlanRepository } from '../../../../../dom
2
2
  import { FirestoreConstructorParams } from '../../mixins';
3
3
  declare const SubscriptionPlanFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../..").FirestoreRepository<SubscriptionPlan> & import("../../../../../domain").CrudRepository<SubscriptionPlan, import("../../../../../domain").CrudParams<SubscriptionPlan>> & import("../..").FirestoreHelpers, [FirestoreConstructorParams<SubscriptionPlan>, ...any[]]>;
4
4
  export declare class SubscriptionPlanFirestoreRepository extends SubscriptionPlanFirestoreRepository_base implements SubscriptionPlanRepository {
5
- constructor({ firestore, interceptors, }: Pick<FirestoreConstructorParams<SubscriptionPlan>, 'firestore' | 'interceptors'>);
5
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<SubscriptionPlan>, 'firestore' | 'interceptors' | 'cache'>);
6
6
  }
7
7
  export {};
@@ -2,6 +2,6 @@ import { Lead, LeadRepository } from '../../../../../domain';
2
2
  import { FirestoreConstructorParams } from '../../mixins';
3
3
  declare const LeadFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../..").FirestoreRepository<Lead> & import("../../../../../domain").CrudRepository<Lead, import("../../../../../domain").CrudParams<Lead>> & import("../..").FirestoreHelpers, [FirestoreConstructorParams<Lead>, ...any[]]>;
4
4
  export declare class LeadFirestoreRepository extends LeadFirestoreRepository_base implements LeadRepository {
5
- constructor({ firestore, interceptors }: Pick<FirestoreConstructorParams<Lead>, 'firestore' | 'interceptors'>);
5
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<Lead>, 'firestore' | 'interceptors' | 'cache'>);
6
6
  }
7
7
  export {};
@@ -7,6 +7,6 @@ declare const SubscriptionEditionFirestoreRepository_base: import("../../../../.
7
7
  }, [FirestoreConstructorParams<Edition> & import("../../mixins").FirestoreSubCollectionConstructorParams<Edition>, ...any[]]>;
8
8
  export declare class SubscriptionEditionFirestoreRepository extends SubscriptionEditionFirestoreRepository_base implements EditionRepository {
9
9
  readonly parentRepository: SubscriptionFirestoreRepository;
10
- constructor({ firestore, interceptors }: Pick<FirestoreConstructorParams<Edition>, 'firestore' | 'interceptors'>, parentRepository: SubscriptionFirestoreRepository);
10
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<Edition>, 'firestore' | 'interceptors' | 'cache'>, parentRepository: SubscriptionFirestoreRepository);
11
11
  }
12
12
  export {};
@@ -2,6 +2,6 @@ import { Subscription, SubscriptionRepository } from '../../../../../domain';
2
2
  import { FirestoreConstructorParams } from '../../mixins';
3
3
  declare const SubscriptionFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../..").FirestoreRepository<Subscription> & import("../../../../../domain").CrudRepository<Subscription, import("../../../../../domain").CrudParams<Subscription>> & import("../..").FirestoreHelpers, [FirestoreConstructorParams<Subscription>, ...any[]]>;
4
4
  export declare class SubscriptionFirestoreRepository extends SubscriptionFirestoreRepository_base implements SubscriptionRepository {
5
- constructor({ firestore, interceptors, }: Pick<FirestoreConstructorParams<Subscription>, 'firestore' | 'interceptors'>);
5
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<Subscription>, 'firestore' | 'interceptors' | 'cache'>);
6
6
  }
7
7
  export {};
@@ -2,6 +2,6 @@ import { SubscriptionMaterialization, SubscriptionMaterializationRepository } fr
2
2
  import { FirestoreConstructorParams } from '../../mixins';
3
3
  declare const SubscriptionMaterializationFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../..").FirestoreRepository<SubscriptionMaterialization> & import("../../../../../domain").CrudRepository<SubscriptionMaterialization, import("../../../../../domain").CrudParams<SubscriptionMaterialization>> & import("../..").FirestoreHelpers, [FirestoreConstructorParams<SubscriptionMaterialization>, ...any[]]>;
4
4
  export declare class SubscriptionMaterializationFirestoreRepository extends SubscriptionMaterializationFirestoreRepository_base implements SubscriptionMaterializationRepository {
5
- constructor({ firestore, interceptors }: Pick<FirestoreConstructorParams<SubscriptionMaterialization>, 'firestore' | 'interceptors'>);
5
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<SubscriptionMaterialization>, 'firestore' | 'interceptors' | 'cache'>);
6
6
  }
7
7
  export {};
@@ -7,6 +7,6 @@ declare const SubscriptionPaymentFirestoreRepository_base: import("../../../../.
7
7
  }, [FirestoreConstructorParams<SubscriptionPayment> & import("../../mixins").FirestoreSubCollectionConstructorParams<SubscriptionPayment>, ...any[]]>;
8
8
  export declare class SubscriptionPaymentFirestoreRepository extends SubscriptionPaymentFirestoreRepository_base implements SubscriptionPaymentRepository {
9
9
  readonly parentRepository: SubscriptionFirestoreRepository;
10
- constructor({ firestore, interceptors }: Pick<FirestoreConstructorParams<SubscriptionPayment>, 'firestore' | 'interceptors'>, parentRepository: SubscriptionFirestoreRepository);
10
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<SubscriptionPayment>, 'firestore' | 'interceptors' | 'cache'>, parentRepository: SubscriptionFirestoreRepository);
11
11
  }
12
12
  export {};
@@ -2,6 +2,6 @@ import { SubscriptionSummary, SubscriptionSummaryRepository } from '../../../../
2
2
  import { FirestoreConstructorParams } from '../../mixins';
3
3
  declare const SubscriptionSummaryFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../..").FirestoreRepository<SubscriptionSummary> & import("../../../../../domain").CrudRepository<SubscriptionSummary, import("../../../../../domain").CrudParams<SubscriptionSummary>> & import("../..").FirestoreHelpers, [FirestoreConstructorParams<SubscriptionSummary>, ...any[]]>;
4
4
  export declare class SubscriptionSummaryFirestoreRepository extends SubscriptionSummaryFirestoreRepository_base implements SubscriptionSummaryRepository {
5
- constructor({ firestore, interceptors, }: Pick<FirestoreConstructorParams<SubscriptionSummary>, 'firestore' | 'interceptors'>);
5
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<SubscriptionSummary>, 'firestore' | 'interceptors' | 'cache'>);
6
6
  }
7
7
  export {};
@@ -7,6 +7,6 @@ declare const UserAddressFirestoreRepository_base: import("../../../../../utils"
7
7
  }, [FirestoreConstructorParams<UserAddress> & import("../../mixins").FirestoreSubCollectionConstructorParams<UserAddress>, ...any[]]>;
8
8
  export declare class UserAddressFirestoreRepository extends UserAddressFirestoreRepository_base implements UserAddressRepository {
9
9
  readonly parentRepository: UserFirestoreRepository;
10
- constructor({ firestore, interceptors }: Pick<FirestoreConstructorParams<UserAddress>, 'firestore' | 'interceptors'>, parentRepository: UserFirestoreRepository);
10
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<UserAddress>, 'firestore' | 'interceptors' | 'cache'>, parentRepository: UserFirestoreRepository);
11
11
  }
12
12
  export {};
@@ -7,6 +7,6 @@ declare const UserBeautyProfileFirestoreRepository_base: import("../../../../../
7
7
  }, [FirestoreConstructorParams<BeautyProfile> & import("../../mixins").FirestoreSubCollectionConstructorParams<BeautyProfile>, ...any[]]>;
8
8
  export declare class UserBeautyProfileFirestoreRepository extends UserBeautyProfileFirestoreRepository_base implements BeautyProfileRepository {
9
9
  readonly parentRepository: UserFirestoreRepository;
10
- constructor({ firestore, interceptors }: Pick<FirestoreConstructorParams<BeautyProfile>, 'firestore' | 'interceptors'>, parentRepository: UserFirestoreRepository);
10
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<BeautyProfile>, 'firestore' | 'interceptors' | 'cache'>, parentRepository: UserFirestoreRepository);
11
11
  }
12
12
  export {};
@@ -3,7 +3,7 @@ import { FirestoreConstructorParams } from '../../mixins';
3
3
  import { ConnectDocumentData, ConnectDocumentSnapshot } from '../../types';
4
4
  declare const UserFirestoreRepository_base: import("../../../../../utils").MixinCtor<import("../../types").FirestoreRepository<User> & import("../../../../../domain").CrudRepository<User, import("../../../../../domain").CrudParams<User>> & import("../../types").FirestoreHelpers, [FirestoreConstructorParams<User>, ...any[]]>;
5
5
  export declare class UserFirestoreRepository extends UserFirestoreRepository_base implements UserRepository {
6
- constructor({ firestore, interceptors }: Pick<FirestoreConstructorParams<User>, 'firestore' | 'interceptors'>);
6
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<User>, 'firestore' | 'interceptors' | 'cache'>);
7
7
  get(identifiers: Partial<User>): Promise<User>;
8
8
  checkIfExistsByField(field: string, value: string): Promise<boolean>;
9
9
  buildModelInstance(): {
@@ -7,6 +7,6 @@ declare const UserPaymentMethodFirestoreRepository_base: import("../../../../../
7
7
  }, [FirestoreConstructorParams<UserPaymentMethod> & import("../../mixins").FirestoreSubCollectionConstructorParams<UserPaymentMethod>, ...any[]]>;
8
8
  export declare class UserPaymentMethodFirestoreRepository extends UserPaymentMethodFirestoreRepository_base implements UserPaymentMethodRepository {
9
9
  readonly parentRepository: UserFirestoreRepository;
10
- constructor({ firestore, interceptors }: Pick<FirestoreConstructorParams<UserPaymentMethod>, 'firestore' | 'interceptors'>, parentRepository: UserFirestoreRepository);
10
+ constructor({ firestore, interceptors, cache, }: Pick<FirestoreConstructorParams<UserPaymentMethod>, 'firestore' | 'interceptors' | 'cache'>, parentRepository: UserFirestoreRepository);
11
11
  }
12
12
  export {};
@@ -1,4 +1,4 @@
1
- import { BaseModelBuilder, ModelBaseStructure, NonFunctionAndIdentifierPropertyNames } from '../../../../domain';
1
+ import { BaseModelBuilder, CacheConfig, ModelBaseStructure, NonFunctionAndIdentifierPropertyNames } from '../../../../domain';
2
2
  import { DebugHelper } from '../../../../utils';
3
3
  import { FirestoreFieldType } from '../enums';
4
4
  import { ConnectCollectionReference } from '../services/connect-collection-reference';
@@ -17,4 +17,5 @@ export type FirestoreRepository<Model extends ModelBaseStructure<Model>> = {
17
17
  toFirestore: (data: Model) => ConnectDocumentData<Model>;
18
18
  fromFirestore: (snap: ConnectDocumentSnapshot<Model>) => Model;
19
19
  };
20
+ cache?: CacheConfig;
20
21
  };
@@ -0,0 +1,6 @@
1
+ import { BaseModelBuilder, ModelBaseStructure } from '../../../../domain';
2
+ export declare class CacheKeyGeneratorHelper {
3
+ static generateCacheKeyFromIdentifiers<MBase extends ModelBaseStructure<MBase>>(modelOrModelName: BaseModelBuilder<MBase> | {
4
+ name: string;
5
+ }, identifiers: Record<string, any>): string;
6
+ }
@@ -1,4 +1,6 @@
1
1
  export * from './attribute-option.helper';
2
2
  export * from './bind-filter-query.helper';
3
+ export * from './cache-key-generator.helper';
3
4
  export * from './filter-option.helper';
4
5
  export * from './graphql-field.helper';
6
+ export * from './md5-generator.helper';
@@ -0,0 +1,4 @@
1
+ export declare class MD5GeneratorHelper {
2
+ static generateMD5(data: any): string;
3
+ private static normalizeData;
4
+ }
@@ -1,10 +1,28 @@
1
- import { FindRepositoryParams, ModelBaseStructure, NonFunctionAndIdentifierPropertyNames, RepositoryFindResult, RepositoryOrderBy } from '../../../domain';
1
+ import { BaseModelBuilder, FindRepositoryParams, ModelBaseStructure, NonFunctionAndIdentifierPropertyNames, RepositoryCacheOptions, RepositoryFindResult, RepositoryOrderBy } from '../../../domain';
2
2
  import { DebugHelper, MixinCtor } from '../../../utils';
3
3
  import { GraphQLParams, GraphQLRepository, HasuraGraphQLFields } from '../types';
4
4
  export declare const withFindHasuraGraphQL: <MBase extends ModelBaseStructure<MBase, MBase["identifiersFields"][number]>, TMixinBase extends MixinCtor<GraphQLRepository<MBase>, any[]>>(MixinBase: MixinCtor<GraphQLRepository<MBase>, any[]> & TMixinBase) => {
5
5
  new (...args: any[]): {
6
6
  lastDistinct: Record<string, any>;
7
- find(params?: FindRepositoryParams<MBase>): Promise<RepositoryFindResult<MBase>>;
7
+ find(params?: FindRepositoryParams<MBase>, options?: {
8
+ cache?: RepositoryCacheOptions;
9
+ }): Promise<RepositoryFindResult<MBase>>;
10
+ bindResult(result: any, { enableCount, findOptions, tableFiltersNamed, }: {
11
+ enableCount: boolean;
12
+ findOptions: {
13
+ enableCount?: boolean;
14
+ minimal?: ({} | NonFunctionAndIdentifierPropertyNames<MBase>)[];
15
+ maximum?: ({} | NonFunctionAndIdentifierPropertyNames<MBase>)[];
16
+ distinct?: ({} | NonFunctionAndIdentifierPropertyNames<MBase>)[];
17
+ };
18
+ tableFiltersNamed: string;
19
+ }): {
20
+ distinct: any;
21
+ maximum?: import("../../../domain").NonFunctionAndIdentifierPropertiesWithNoPartial<MBase> extends infer T extends import("../../../domain").NonFunctionAndIdentifierPropertiesWithNoPartial<MBase> ? { [key in keyof T]: import("../../../domain").NonFunctionAndIdentifierPropertiesWithNoPartial<MBase>[key]; } : never;
22
+ minimal?: import("../../../domain").NonFunctionAndIdentifierPropertiesWithNoPartial<MBase> extends infer T extends import("../../../domain").NonFunctionAndIdentifierPropertiesWithNoPartial<MBase> ? { [key in keyof T]: import("../../../domain").NonFunctionAndIdentifierPropertiesWithNoPartial<MBase>[key]; } : never;
23
+ data: MBase[];
24
+ count: any;
25
+ };
8
26
  bindOrderByAttributes: (orderBy: RepositoryOrderBy<MBase>, fields: HasuraGraphQLFields<MBase>) => any[];
9
27
  bindAggretageAttributes: (aggregates: {
10
28
  minimal?: ({} | NonFunctionAndIdentifierPropertyNames<MBase>)[];
@@ -19,13 +37,14 @@ export declare const withFindHasuraGraphQL: <MBase extends ModelBaseStructure<MB
19
37
  bindDistinctAttributes: (distinct: ({} | NonFunctionAndIdentifierPropertyNames<MBase>)[], fields: HasuraGraphQLFields<MBase>) => {}[];
20
38
  bindAttributesToColumns: (attributes: ({} | NonFunctionAndIdentifierPropertyNames<MBase>)[], fields: HasuraGraphQLFields<MBase>) => {}[];
21
39
  tableName: string;
22
- model: import("../../../domain").BaseModelBuilder<MBase, any, MBase & {
40
+ model: BaseModelBuilder<MBase, any, MBase & {
23
41
  prototype: unknown;
24
42
  }>;
25
43
  fields: HasuraGraphQLFields<MBase>;
26
44
  endpoint: string;
27
45
  authOptions: import("../types").HasuraGraphQLAuthOptions;
28
46
  logger: DebugHelper;
47
+ cache?: import("../../../domain").CacheConfig;
29
48
  mutation: <ReturnFields = any>(operation: string | import("gql-query-builder/build/IQueryBuilderOptions").IOperation, fields?: string[] | HasuraGraphQLFields<MBase>, variables?: import("../types").VariableOptions) => Promise<ReturnFields>;
30
49
  query: <ReturnFields_1 = any>(operation: string | import("gql-query-builder/build/IQueryBuilderOptions").IOperation | GraphQLParams<MBase>[], fields?: string[] | HasuraGraphQLFields<MBase>, variables?: import("../types").VariableOptions) => Promise<ReturnFields_1>;
31
50
  getAttributeGraphQLTypeOf: <FieldValue>(value: FieldValue) => string;
@@ -1,4 +1,4 @@
1
- import { GetRepositoryParams, ModelBaseStructure } from '../../../domain';
1
+ import { GetRepositoryParams, ModelBaseStructure, RepositoryCacheOptions } from '../../../domain';
2
2
  import { DebugHelper, MixinCtor } from '../../../utils';
3
3
  import { GraphQLRepository } from '../types';
4
4
  export type GetConstructorParams = {
@@ -7,7 +7,10 @@ export type GetConstructorParams = {
7
7
  export declare const withGetHasuraGraphQL: <MBase extends ModelBaseStructure<MBase, MBase["identifiersFields"][number]>, TMixinBase extends MixinCtor<GraphQLRepository<MBase>, any[]>>(MixinBase: MixinCtor<GraphQLRepository<MBase>, any[]> & TMixinBase) => {
8
8
  new (...params: any[]): {
9
9
  getGraphQLOperation: string;
10
- get(identifiers: GetRepositoryParams<MBase>): Promise<MBase>;
10
+ generateCacheKey(identifiers: GetRepositoryParams<MBase>): string;
11
+ get(identifiers: GetRepositoryParams<MBase>, options?: {
12
+ cache?: RepositoryCacheOptions;
13
+ }): Promise<MBase>;
11
14
  tableName: string;
12
15
  model: import("../../../domain").BaseModelBuilder<MBase, any, MBase & {
13
16
  prototype: unknown;
@@ -16,6 +19,7 @@ export declare const withGetHasuraGraphQL: <MBase extends ModelBaseStructure<MBa
16
19
  endpoint: string;
17
20
  authOptions: import("../types").HasuraGraphQLAuthOptions;
18
21
  logger: DebugHelper;
22
+ cache?: import("../../../domain").CacheConfig;
19
23
  mutation: <ReturnFields = any>(operation: string | import("gql-query-builder/build/IQueryBuilderOptions").IOperation, fields?: string[] | import("../types").HasuraGraphQLFields<MBase>, variables?: import("../types").VariableOptions) => Promise<ReturnFields>;
20
24
  query: <ReturnFields_1 = any>(operation: string | import("gql-query-builder/build/IQueryBuilderOptions").IOperation | import("../types").GraphQLParams<MBase>[], fields?: string[] | import("../types").HasuraGraphQLFields<MBase>, variables?: import("../types").VariableOptions) => Promise<ReturnFields_1>;
21
25
  getAttributeGraphQLTypeOf: <FieldValue>(value: FieldValue) => string;