@infrab4a/connect 0.0.1

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 (182) hide show
  1. package/README.md +24 -0
  2. package/bundles/infrab4a-connect.umd.js +1074 -0
  3. package/bundles/infrab4a-connect.umd.js.map +1 -0
  4. package/esm2015/infrab4a-connect.js +5 -0
  5. package/esm2015/lib/domain/general/index.js +3 -0
  6. package/esm2015/lib/domain/general/model/base-model-with-identifier-fields.js +2 -0
  7. package/esm2015/lib/domain/general/model/base.model.js +13 -0
  8. package/esm2015/lib/domain/general/model/identifier-fields.js +2 -0
  9. package/esm2015/lib/domain/general/model/index.js +5 -0
  10. package/esm2015/lib/domain/general/model/types/base-model-builder.type.js +2 -0
  11. package/esm2015/lib/domain/general/model/types/index.js +4 -0
  12. package/esm2015/lib/domain/general/model/types/non-function-properties.type.js +2 -0
  13. package/esm2015/lib/domain/general/model/types/non-function-property-name.type.js +2 -0
  14. package/esm2015/lib/domain/general/repository/create.repository.js +2 -0
  15. package/esm2015/lib/domain/general/repository/crud.repository.js +2 -0
  16. package/esm2015/lib/domain/general/repository/delete.repository.js +2 -0
  17. package/esm2015/lib/domain/general/repository/enums/index.js +2 -0
  18. package/esm2015/lib/domain/general/repository/enums/where.enum.js +11 -0
  19. package/esm2015/lib/domain/general/repository/find.repository.js +2 -0
  20. package/esm2015/lib/domain/general/repository/get.repository.js +2 -0
  21. package/esm2015/lib/domain/general/repository/index.js +10 -0
  22. package/esm2015/lib/domain/general/repository/read.repository.js +2 -0
  23. package/esm2015/lib/domain/general/repository/types/index.js +5 -0
  24. package/esm2015/lib/domain/general/repository/types/repository-find-filters.type.js +2 -0
  25. package/esm2015/lib/domain/general/repository/types/repository-find-result.type.js +2 -0
  26. package/esm2015/lib/domain/general/repository/types/repository-limit-options.type.js +2 -0
  27. package/esm2015/lib/domain/general/repository/types/repository-order-by-list.type.js +2 -0
  28. package/esm2015/lib/domain/general/repository/update.repository.js +2 -0
  29. package/esm2015/lib/domain/index.js +3 -0
  30. package/esm2015/lib/domain/users/errors/index.js +2 -0
  31. package/esm2015/lib/domain/users/errors/unauthorized.error.js +7 -0
  32. package/esm2015/lib/domain/users/index.js +6 -0
  33. package/esm2015/lib/domain/users/models/beauty-profile.js +12 -0
  34. package/esm2015/lib/domain/users/models/edition.js +7 -0
  35. package/esm2015/lib/domain/users/models/enums/area.enum.js +13 -0
  36. package/esm2015/lib/domain/users/models/enums/beard-sizes.enum.js +9 -0
  37. package/esm2015/lib/domain/users/models/enums/billing-status.enum.js +5 -0
  38. package/esm2015/lib/domain/users/models/enums/edition-status.enum.js +5 -0
  39. package/esm2015/lib/domain/users/models/enums/hair-types.enum.js +9 -0
  40. package/esm2015/lib/domain/users/models/enums/index.js +10 -0
  41. package/esm2015/lib/domain/users/models/enums/office-position.enum.js +8 -0
  42. package/esm2015/lib/domain/users/models/enums/status.enum.js +5 -0
  43. package/esm2015/lib/domain/users/models/enums/user-type.enum.js +10 -0
  44. package/esm2015/lib/domain/users/models/index.js +6 -0
  45. package/esm2015/lib/domain/users/models/subscription.js +7 -0
  46. package/esm2015/lib/domain/users/models/user.js +17 -0
  47. package/esm2015/lib/domain/users/repositories/beauty-profile.repository.js +2 -0
  48. package/esm2015/lib/domain/users/repositories/edition.repository.js +2 -0
  49. package/esm2015/lib/domain/users/repositories/index.js +5 -0
  50. package/esm2015/lib/domain/users/repositories/subscription.repository.js +2 -0
  51. package/esm2015/lib/domain/users/repositories/user.repository.js +2 -0
  52. package/esm2015/lib/domain/users/services/authentication.service.js +2 -0
  53. package/esm2015/lib/domain/users/services/index.js +2 -0
  54. package/esm2015/lib/domain/users/use-cases/authentication.js +40 -0
  55. package/esm2015/lib/domain/users/use-cases/index.js +3 -0
  56. package/esm2015/lib/domain/users/use-cases/signout.js +12 -0
  57. package/esm2015/lib/errors/index.js +4 -0
  58. package/esm2015/lib/errors/invalid-argument.error.js +7 -0
  59. package/esm2015/lib/errors/not-found.error.js +7 -0
  60. package/esm2015/lib/errors/required-argument.error.js +8 -0
  61. package/esm2015/lib/index.js +5 -0
  62. package/esm2015/lib/infra/firebase/auth/authentication-firebase-auth.service.js +27 -0
  63. package/esm2015/lib/infra/firebase/auth/index.js +2 -0
  64. package/esm2015/lib/infra/firebase/firestore/index.js +4 -0
  65. package/esm2015/lib/infra/firebase/firestore/mixins/index.js +10 -0
  66. package/esm2015/lib/infra/firebase/firestore/mixins/with-create-firestore.mixin.js +30 -0
  67. package/esm2015/lib/infra/firebase/firestore/mixins/with-crud-firestore.mixin.js +10 -0
  68. package/esm2015/lib/infra/firebase/firestore/mixins/with-delete-firestore.mixin.js +18 -0
  69. package/esm2015/lib/infra/firebase/firestore/mixins/with-find-firestore.mixin.js +59 -0
  70. package/esm2015/lib/infra/firebase/firestore/mixins/with-firestore.mixin.js +17 -0
  71. package/esm2015/lib/infra/firebase/firestore/mixins/with-get-firestore.mixin.js +24 -0
  72. package/esm2015/lib/infra/firebase/firestore/mixins/with-helpers.mixin.js +17 -0
  73. package/esm2015/lib/infra/firebase/firestore/mixins/with-sub-collection.mixin.js +11 -0
  74. package/esm2015/lib/infra/firebase/firestore/mixins/with-update-firestore.mixin.js +19 -0
  75. package/esm2015/lib/infra/firebase/firestore/repositories/index.js +2 -0
  76. package/esm2015/lib/infra/firebase/firestore/repositories/users/index.js +5 -0
  77. package/esm2015/lib/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.js +14 -0
  78. package/esm2015/lib/infra/firebase/firestore/repositories/users/subscription-firestore.repository.js +12 -0
  79. package/esm2015/lib/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.js +14 -0
  80. package/esm2015/lib/infra/firebase/firestore/repositories/users/user-firestore.repository.js +40 -0
  81. package/esm2015/lib/infra/firebase/firestore/types/firestore-sub.repository.type.js +2 -0
  82. package/esm2015/lib/infra/firebase/firestore/types/firestore.helpers.type.js +2 -0
  83. package/esm2015/lib/infra/firebase/firestore/types/firestore.repository.type.js +2 -0
  84. package/esm2015/lib/infra/firebase/firestore/types/index.js +4 -0
  85. package/esm2015/lib/infra/firebase/index.js +3 -0
  86. package/esm2015/lib/infra/index.js +2 -0
  87. package/esm2015/lib/utils/index.js +4 -0
  88. package/esm2015/lib/utils/mixins/base.mixin.js +6 -0
  89. package/esm2015/lib/utils/mixins/index.js +3 -0
  90. package/esm2015/lib/utils/mixins/mixin-ctor.type.js +2 -0
  91. package/esm2015/public-api.js +2 -0
  92. package/fesm2015/infrab4a-connect.js +501 -0
  93. package/fesm2015/infrab4a-connect.js.map +1 -0
  94. package/infrab4a-connect.d.ts +5 -0
  95. package/lib/domain/general/index.d.ts +2 -0
  96. package/lib/domain/general/model/base-model-with-identifier-fields.d.ts +3 -0
  97. package/lib/domain/general/model/base.model.d.ts +6 -0
  98. package/lib/domain/general/model/identifier-fields.d.ts +4 -0
  99. package/lib/domain/general/model/index.d.ts +4 -0
  100. package/lib/domain/general/model/types/base-model-builder.type.d.ts +5 -0
  101. package/lib/domain/general/model/types/index.d.ts +3 -0
  102. package/lib/domain/general/model/types/non-function-properties.type.d.ts +2 -0
  103. package/lib/domain/general/model/types/non-function-property-name.type.d.ts +3 -0
  104. package/lib/domain/general/repository/create.repository.d.ts +5 -0
  105. package/lib/domain/general/repository/crud.repository.d.ts +7 -0
  106. package/lib/domain/general/repository/delete.repository.d.ts +5 -0
  107. package/lib/domain/general/repository/enums/index.d.ts +1 -0
  108. package/lib/domain/general/repository/enums/where.enum.d.ts +9 -0
  109. package/lib/domain/general/repository/find.repository.d.ts +5 -0
  110. package/lib/domain/general/repository/get.repository.d.ts +5 -0
  111. package/lib/domain/general/repository/index.d.ts +9 -0
  112. package/lib/domain/general/repository/read.repository.d.ts +5 -0
  113. package/lib/domain/general/repository/types/index.d.ts +4 -0
  114. package/lib/domain/general/repository/types/repository-find-filters.type.d.ts +11 -0
  115. package/lib/domain/general/repository/types/repository-find-result.type.d.ts +4 -0
  116. package/lib/domain/general/repository/types/repository-limit-options.type.d.ts +4 -0
  117. package/lib/domain/general/repository/types/repository-order-by-list.type.d.ts +5 -0
  118. package/lib/domain/general/repository/update.repository.d.ts +4 -0
  119. package/lib/domain/index.d.ts +2 -0
  120. package/lib/domain/users/errors/index.d.ts +1 -0
  121. package/lib/domain/users/errors/unauthorized.error.d.ts +4 -0
  122. package/lib/domain/users/index.d.ts +5 -0
  123. package/lib/domain/users/models/beauty-profile.d.ts +12 -0
  124. package/lib/domain/users/models/edition.d.ts +15 -0
  125. package/lib/domain/users/models/enums/area.enum.d.ts +11 -0
  126. package/lib/domain/users/models/enums/beard-sizes.enum.d.ts +7 -0
  127. package/lib/domain/users/models/enums/billing-status.enum.d.ts +3 -0
  128. package/lib/domain/users/models/enums/edition-status.enum.d.ts +3 -0
  129. package/lib/domain/users/models/enums/hair-types.enum.d.ts +7 -0
  130. package/lib/domain/users/models/enums/index.d.ts +9 -0
  131. package/lib/domain/users/models/enums/office-position.enum.d.ts +6 -0
  132. package/lib/domain/users/models/enums/status.enum.d.ts +3 -0
  133. package/lib/domain/users/models/enums/user-type.enum.d.ts +8 -0
  134. package/lib/domain/users/models/index.d.ts +5 -0
  135. package/lib/domain/users/models/subscription.d.ts +15 -0
  136. package/lib/domain/users/models/user.d.ts +23 -0
  137. package/lib/domain/users/repositories/beauty-profile.repository.d.ts +4 -0
  138. package/lib/domain/users/repositories/edition.repository.d.ts +4 -0
  139. package/lib/domain/users/repositories/index.d.ts +4 -0
  140. package/lib/domain/users/repositories/subscription.repository.d.ts +4 -0
  141. package/lib/domain/users/repositories/user.repository.d.ts +4 -0
  142. package/lib/domain/users/services/authentication.service.d.ts +10 -0
  143. package/lib/domain/users/services/index.d.ts +1 -0
  144. package/lib/domain/users/use-cases/authentication.d.ts +21 -0
  145. package/lib/domain/users/use-cases/index.d.ts +2 -0
  146. package/lib/domain/users/use-cases/signout.d.ts +6 -0
  147. package/lib/errors/index.d.ts +3 -0
  148. package/lib/errors/invalid-argument.error.d.ts +4 -0
  149. package/lib/errors/not-found.error.d.ts +4 -0
  150. package/lib/errors/required-argument.error.d.ts +5 -0
  151. package/lib/index.d.ts +4 -0
  152. package/lib/infra/firebase/auth/authentication-firebase-auth.service.d.ts +9 -0
  153. package/lib/infra/firebase/auth/index.d.ts +1 -0
  154. package/lib/infra/firebase/firestore/index.d.ts +3 -0
  155. package/lib/infra/firebase/firestore/mixins/index.d.ts +9 -0
  156. package/lib/infra/firebase/firestore/mixins/with-create-firestore.mixin.d.ts +17 -0
  157. package/lib/infra/firebase/firestore/mixins/with-crud-firestore.mixin.d.ts +28 -0
  158. package/lib/infra/firebase/firestore/mixins/with-delete-firestore.mixin.d.ts +15 -0
  159. package/lib/infra/firebase/firestore/mixins/with-find-firestore.mixin.d.ts +20 -0
  160. package/lib/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +15 -0
  161. package/lib/infra/firebase/firestore/mixins/with-get-firestore.mixin.d.ts +15 -0
  162. package/lib/infra/firebase/firestore/mixins/with-helpers.mixin.d.ts +10 -0
  163. package/lib/infra/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +14 -0
  164. package/lib/infra/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +15 -0
  165. package/lib/infra/firebase/firestore/repositories/index.d.ts +1 -0
  166. package/lib/infra/firebase/firestore/repositories/users/index.d.ts +4 -0
  167. package/lib/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.d.ts +59 -0
  168. package/lib/infra/firebase/firestore/repositories/users/subscription-firestore.repository.d.ts +48 -0
  169. package/lib/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.d.ts +59 -0
  170. package/lib/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +51 -0
  171. package/lib/infra/firebase/firestore/types/firestore-sub.repository.type.d.ts +6 -0
  172. package/lib/infra/firebase/firestore/types/firestore.helpers.type.d.ts +8 -0
  173. package/lib/infra/firebase/firestore/types/firestore.repository.type.d.ts +8 -0
  174. package/lib/infra/firebase/firestore/types/index.d.ts +3 -0
  175. package/lib/infra/firebase/index.d.ts +2 -0
  176. package/lib/infra/index.d.ts +1 -0
  177. package/lib/utils/index.d.ts +3 -0
  178. package/lib/utils/mixins/base.mixin.d.ts +3 -0
  179. package/lib/utils/mixins/index.d.ts +2 -0
  180. package/lib/utils/mixins/mixin-ctor.type.d.ts +1 -0
  181. package/package.json +25 -0
  182. package/public-api.d.ts +1 -0
@@ -0,0 +1,14 @@
1
+ import { CollectionReference, FirebaseFirestore } from '@firebase/firestore-types';
2
+ import { BaseModelWithIdentifier, NonFunctionPropertyNames } from '../../../../domain';
3
+ import { FirestoreRepository } from '../types';
4
+ import { MixinCtor } from '../../../../utils';
5
+ export declare const withSubCollection: <TBase extends BaseModelWithIdentifier<TBase>, TBaseParent extends BaseModelWithIdentifier<TBaseParent>, TMixinBase extends MixinCtor<{}>>(MixinBase: MixinCtor<FirestoreRepository<TBase>> & TMixinBase, ParentModel: new () => TBaseParent) => {
6
+ new (...args: Array<any>): {
7
+ readonly parentRepository: FirestoreRepository<TBaseParent>;
8
+ parentIdField: NonFunctionPropertyNames<TBase>;
9
+ collection(path?: string): CollectionReference<TBase>;
10
+ readonly firestore?: FirebaseFirestore;
11
+ collectionName: string;
12
+ model: import("../../../../domain").BaseModelBuilder<TBase>;
13
+ };
14
+ } & TMixinBase;
@@ -0,0 +1,15 @@
1
+ import { BaseModelWithIdentifier } from '../../../../domain';
2
+ import { FirestoreHelpers, FirestoreRepository } from '../types';
3
+ import { MixinCtor } from '../../../../utils';
4
+ export declare const withUpdateFirestore: <TBase extends BaseModelWithIdentifier<TBase>, TMixinBase extends MixinCtor<{}>>(MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase) => {
5
+ new (...args: any[]): {
6
+ update(data: TBase): Promise<TBase>;
7
+ buildCollectionPathForUpdate(identifiers: TBase): string;
8
+ readonly firestore?: import("@firebase/firestore-types").FirebaseFirestore;
9
+ collectionName: string;
10
+ model: import("../../../../domain").BaseModelBuilder<TBase>;
11
+ collection(path?: string): import("@firebase/firestore-types").CollectionReference<TBase>;
12
+ toArray<T extends BaseModelWithIdentifier<T>>(snapShot: import("@firebase/firestore-types").QuerySnapshot<T> | import("@firebase/firestore-types").QueryDocumentSnapshot<T>[]): T[];
13
+ isSubCollection<T_1 extends BaseModelWithIdentifier<T_1>>(repository: FirestoreRepository<T_1>): repository is import("../types").FirestoreSubRepository<T_1, BaseModelWithIdentifier<{}>>;
14
+ };
15
+ } & TMixinBase;
@@ -0,0 +1 @@
1
+ export * from './users';
@@ -0,0 +1,4 @@
1
+ export * from './subscription-firestore.repository';
2
+ export * from './user-firestore.repository';
3
+ export * from './subscription-edition-firestore.repository';
4
+ export * from './user-beauty-profile-firestore.repository';
@@ -0,0 +1,59 @@
1
+ import { FirebaseFirestore } from '@firebase/firestore-types';
2
+ import { Edition, Subscription, EditionRepository } from '../../../../../domain';
3
+ import { SubscriptionFirestoreRepository } from './subscription-firestore.repository';
4
+ declare const SubscriptionEditionFirestoreRepository_base: {
5
+ new (...args: any[]): {
6
+ readonly parentRepository: import("@infrab4a/connect").FirestoreRepository<Subscription>;
7
+ parentIdField: import("../../../../../domain").NonFunctionPropertyNames<Edition>;
8
+ collection(path?: string): import("@firebase/firestore-types").CollectionReference<Edition>;
9
+ readonly firestore?: FirebaseFirestore;
10
+ collectionName: string;
11
+ model: import("../../../../../domain").BaseModelBuilder<Edition>;
12
+ };
13
+ } & {
14
+ new (...args: any[]): {
15
+ update(data: Edition): Promise<Edition>;
16
+ buildCollectionPathForUpdate(identifiers: Edition): string;
17
+ readonly firestore?: FirebaseFirestore;
18
+ collectionName: string;
19
+ model: import("../../../../../domain").BaseModelBuilder<Edition>;
20
+ collection(path?: string): import("@firebase/firestore-types").CollectionReference<Edition>;
21
+ toArray<T extends import("../../../../../domain").BaseModelWithIdentifier<T>>(snapShot: import("@firebase/firestore-types").QuerySnapshot<T> | import("@firebase/firestore-types").QueryDocumentSnapshot<T>[]): T[];
22
+ isSubCollection<T_1 extends import("../../../../../domain").BaseModelWithIdentifier<T_1>>(repository: import("@infrab4a/connect").FirestoreRepository<T_1>): repository is import("@infrab4a/connect").FirestoreSubRepository<T_1, import("../../../../../domain").BaseModelWithIdentifier<{}>>;
23
+ get(identifiers: import("../../../../../domain").NonFunctionProperties<Edition>): Promise<Edition>;
24
+ buildCollectionPathForGet(identifiers: import("../../../../../domain").NonFunctionProperties<Edition>): string;
25
+ find(filters?: import("../../../../../domain").RepositoryFindFielters<Edition>[], limits?: import("../../../../../domain").RepositoryLimitOptions<Edition>, orderBy?: import("../../../../../domain").RepositoryOrderByList<Edition>): Promise<import("../../../../../domain").RepositoryFindResult<Edition>>;
26
+ buildCollectionPathForFind(filters: import("../../../../../domain").RepositoryFindFielters<Edition>[]): string;
27
+ makeFirestoreWhere: (queryReference: import("@firebase/firestore-types").CollectionReference<Edition> | import("@firebase/firestore-types").Query<Edition>, filter: import("../../../../../domain").RepositoryFindFielters<Edition>) => import("@firebase/firestore-types").Query<Edition>;
28
+ buildWhereSentence: (queryReference: import("@firebase/firestore-types").CollectionReference<Edition> | import("@firebase/firestore-types").Query<Edition>, fieldName: import("../../../../../domain").NonFunctionPropertyNames<Edition>, options: import("../../../../../domain").RepositoryFindFieltersOptions<Edition, import("../../../../../domain").NonFunctionPropertyNames<Edition>>) => import("@firebase/firestore-types").Query<Edition>;
29
+ defineLimits(query: import("@firebase/firestore-types").CollectionReference<Edition> | import("@firebase/firestore-types").Query<Edition>, filters: import("../../../../../domain").RepositoryFindFielters<Edition>[], limits: import("../../../../../domain").RepositoryLimitOptions<Edition>): import("@firebase/firestore-types").Query<Edition>;
30
+ calculateCount(data: Edition[], limits: import("../../../../../domain").RepositoryLimitOptions<Edition>): number;
31
+ delete(identifiers: import("../../../../../domain").NonFunctionProperties<Edition>): Promise<void>;
32
+ buildCollectionPathForRemove(identifiers: import("../../../../../domain").NonFunctionProperties<Edition>): string;
33
+ create(data: Partial<Edition>): Promise<Edition>;
34
+ save(data: Edition): Promise<import("@firebase/firestore-types").DocumentReference<Edition>>;
35
+ buildCollectionPathForAdd(identifiers: Partial<Edition>): string;
36
+ };
37
+ } & {
38
+ new (...args: any[]): {
39
+ toArray<T_2 extends import("../../../../../domain").BaseModelWithIdentifier<T_2>>(snapShot: import("@firebase/firestore-types").QuerySnapshot<T_2> | import("@firebase/firestore-types").QueryDocumentSnapshot<T_2>[]): T_2[];
40
+ isSubCollection<T_3 extends import("../../../../../domain").BaseModelWithIdentifier<T_3>>(repository: import("@infrab4a/connect").FirestoreRepository<T_3>): repository is import("@infrab4a/connect").FirestoreSubRepository<T_3, import("../../../../../domain").BaseModelWithIdentifier<{}>>;
41
+ };
42
+ } & {
43
+ new (...args: any[]): {
44
+ readonly firestore?: FirebaseFirestore;
45
+ collectionName: string;
46
+ model: import("../../../../../domain").BaseModelBuilder<Edition>;
47
+ collection(path?: string): import("@firebase/firestore-types").CollectionReference<Edition>;
48
+ buildModelInstance(): {
49
+ toFirestore: (data: Edition) => import("@firebase/firestore-types").DocumentData;
50
+ fromFirestore: (snap: import("@firebase/firestore-types").QueryDocumentSnapshot<Edition>) => Edition;
51
+ };
52
+ };
53
+ };
54
+ export declare class SubscriptionEditionFirestoreRepository extends SubscriptionEditionFirestoreRepository_base implements EditionRepository {
55
+ readonly firestore: FirebaseFirestore;
56
+ readonly parentRepository: SubscriptionFirestoreRepository;
57
+ constructor(firestore: FirebaseFirestore, parentRepository: SubscriptionFirestoreRepository);
58
+ }
59
+ export {};
@@ -0,0 +1,48 @@
1
+ import { FirebaseFirestore } from '@firebase/firestore-types';
2
+ import { Subscription, SubscriptionRepository } from '../../../../../domain';
3
+ declare const SubscriptionFirestoreRepository_base: {
4
+ new (...args: any[]): {
5
+ update(data: Subscription): Promise<Subscription>;
6
+ buildCollectionPathForUpdate(identifiers: Subscription): string;
7
+ readonly firestore?: FirebaseFirestore;
8
+ collectionName: string;
9
+ model: import("../../../../../domain").BaseModelBuilder<Subscription>;
10
+ collection(path?: string): import("@firebase/firestore-types").CollectionReference<Subscription>;
11
+ toArray<T extends import("../../../../../domain").BaseModelWithIdentifier<T>>(snapShot: import("@firebase/firestore-types").QuerySnapshot<T> | import("@firebase/firestore-types").QueryDocumentSnapshot<T>[]): T[];
12
+ isSubCollection<T_1 extends import("../../../../../domain").BaseModelWithIdentifier<T_1>>(repository: import("@infrab4a/connect").FirestoreRepository<T_1>): repository is import("@infrab4a/connect").FirestoreSubRepository<T_1, import("../../../../../domain").BaseModelWithIdentifier<{}>>;
13
+ get(identifiers: import("../../../../../domain").NonFunctionProperties<Subscription>): Promise<Subscription>;
14
+ buildCollectionPathForGet(identifiers: import("../../../../../domain").NonFunctionProperties<Subscription>): string;
15
+ find(filters?: import("../../../../../domain").RepositoryFindFielters<Subscription>[], limits?: import("../../../../../domain").RepositoryLimitOptions<Subscription>, orderBy?: import("../../../../../domain").RepositoryOrderByList<Subscription>): Promise<import("../../../../../domain").RepositoryFindResult<Subscription>>;
16
+ buildCollectionPathForFind(filters: import("../../../../../domain").RepositoryFindFielters<Subscription>[]): string;
17
+ makeFirestoreWhere: (queryReference: import("@firebase/firestore-types").CollectionReference<Subscription> | import("@firebase/firestore-types").Query<Subscription>, filter: import("../../../../../domain").RepositoryFindFielters<Subscription>) => import("@firebase/firestore-types").Query<Subscription>;
18
+ buildWhereSentence: (queryReference: import("@firebase/firestore-types").CollectionReference<Subscription> | import("@firebase/firestore-types").Query<Subscription>, fieldName: import("../../../../../domain").NonFunctionPropertyNames<Subscription>, options: import("../../../../../domain").RepositoryFindFieltersOptions<Subscription, import("../../../../../domain").NonFunctionPropertyNames<Subscription>>) => import("@firebase/firestore-types").Query<Subscription>;
19
+ defineLimits(query: import("@firebase/firestore-types").CollectionReference<Subscription> | import("@firebase/firestore-types").Query<Subscription>, filters: import("../../../../../domain").RepositoryFindFielters<Subscription>[], limits: import("../../../../../domain").RepositoryLimitOptions<Subscription>): import("@firebase/firestore-types").Query<Subscription>;
20
+ calculateCount(data: Subscription[], limits: import("../../../../../domain").RepositoryLimitOptions<Subscription>): number;
21
+ delete(identifiers: import("../../../../../domain").NonFunctionProperties<Subscription>): Promise<void>;
22
+ buildCollectionPathForRemove(identifiers: import("../../../../../domain").NonFunctionProperties<Subscription>): string;
23
+ create(data: Partial<Subscription>): Promise<Subscription>;
24
+ save(data: Subscription): Promise<import("@firebase/firestore-types").DocumentReference<Subscription>>;
25
+ buildCollectionPathForAdd(identifiers: Partial<Subscription>): string;
26
+ };
27
+ } & {
28
+ new (...args: any[]): {
29
+ toArray<T_2 extends import("../../../../../domain").BaseModelWithIdentifier<T_2>>(snapShot: import("@firebase/firestore-types").QuerySnapshot<T_2> | import("@firebase/firestore-types").QueryDocumentSnapshot<T_2>[]): T_2[];
30
+ isSubCollection<T_3 extends import("../../../../../domain").BaseModelWithIdentifier<T_3>>(repository: import("@infrab4a/connect").FirestoreRepository<T_3>): repository is import("@infrab4a/connect").FirestoreSubRepository<T_3, import("../../../../../domain").BaseModelWithIdentifier<{}>>;
31
+ };
32
+ } & {
33
+ new (...args: any[]): {
34
+ readonly firestore?: FirebaseFirestore;
35
+ collectionName: string;
36
+ model: import("../../../../../domain").BaseModelBuilder<Subscription>;
37
+ collection(path?: string): import("@firebase/firestore-types").CollectionReference<Subscription>;
38
+ buildModelInstance(): {
39
+ toFirestore: (data: Subscription) => import("@firebase/firestore-types").DocumentData;
40
+ fromFirestore: (snap: import("@firebase/firestore-types").QueryDocumentSnapshot<Subscription>) => Subscription;
41
+ };
42
+ };
43
+ };
44
+ export declare class SubscriptionFirestoreRepository extends SubscriptionFirestoreRepository_base implements SubscriptionRepository {
45
+ readonly firestore: FirebaseFirestore;
46
+ constructor(firestore: FirebaseFirestore);
47
+ }
48
+ export {};
@@ -0,0 +1,59 @@
1
+ import { FirebaseFirestore } from '@firebase/firestore-types';
2
+ import { BeautyProfile, BeautyProfileRepository, User } from '../../../../../domain';
3
+ import { UserFirestoreRepository } from './user-firestore.repository';
4
+ declare const UserBeautyProfileFirestoreRepository_base: {
5
+ new (...args: any[]): {
6
+ readonly parentRepository: import("@infrab4a/connect").FirestoreRepository<User>;
7
+ parentIdField: import("../../../../../domain").NonFunctionPropertyNames<BeautyProfile>;
8
+ collection(path?: string): import("@firebase/firestore-types").CollectionReference<BeautyProfile>;
9
+ readonly firestore?: FirebaseFirestore;
10
+ collectionName: string;
11
+ model: import("../../../../../domain").BaseModelBuilder<BeautyProfile>;
12
+ };
13
+ } & {
14
+ new (...args: any[]): {
15
+ update(data: BeautyProfile): Promise<BeautyProfile>;
16
+ buildCollectionPathForUpdate(identifiers: BeautyProfile): string;
17
+ readonly firestore?: FirebaseFirestore;
18
+ collectionName: string;
19
+ model: import("../../../../../domain").BaseModelBuilder<BeautyProfile>;
20
+ collection(path?: string): import("@firebase/firestore-types").CollectionReference<BeautyProfile>;
21
+ toArray<T extends import("../../../../../domain").BaseModelWithIdentifier<T>>(snapShot: import("@firebase/firestore-types").QuerySnapshot<T> | import("@firebase/firestore-types").QueryDocumentSnapshot<T>[]): T[];
22
+ isSubCollection<T_1 extends import("../../../../../domain").BaseModelWithIdentifier<T_1>>(repository: import("@infrab4a/connect").FirestoreRepository<T_1>): repository is import("@infrab4a/connect").FirestoreSubRepository<T_1, import("../../../../../domain").BaseModelWithIdentifier<{}>>;
23
+ get(identifiers: import("../../../../../domain").NonFunctionProperties<BeautyProfile>): Promise<BeautyProfile>;
24
+ buildCollectionPathForGet(identifiers: import("../../../../../domain").NonFunctionProperties<BeautyProfile>): string;
25
+ find(filters?: import("../../../../../domain").RepositoryFindFielters<BeautyProfile>[], limits?: import("../../../../../domain").RepositoryLimitOptions<BeautyProfile>, orderBy?: import("../../../../../domain").RepositoryOrderByList<BeautyProfile>): Promise<import("../../../../../domain").RepositoryFindResult<BeautyProfile>>;
26
+ buildCollectionPathForFind(filters: import("../../../../../domain").RepositoryFindFielters<BeautyProfile>[]): string;
27
+ makeFirestoreWhere: (queryReference: import("@firebase/firestore-types").CollectionReference<BeautyProfile> | import("@firebase/firestore-types").Query<BeautyProfile>, filter: import("../../../../../domain").RepositoryFindFielters<BeautyProfile>) => import("@firebase/firestore-types").Query<BeautyProfile>;
28
+ buildWhereSentence: (queryReference: import("@firebase/firestore-types").CollectionReference<BeautyProfile> | import("@firebase/firestore-types").Query<BeautyProfile>, fieldName: import("../../../../../domain").NonFunctionPropertyNames<BeautyProfile>, options: import("../../../../../domain").RepositoryFindFieltersOptions<BeautyProfile, import("../../../../../domain").NonFunctionPropertyNames<BeautyProfile>>) => import("@firebase/firestore-types").Query<BeautyProfile>;
29
+ defineLimits(query: import("@firebase/firestore-types").CollectionReference<BeautyProfile> | import("@firebase/firestore-types").Query<BeautyProfile>, filters: import("../../../../../domain").RepositoryFindFielters<BeautyProfile>[], limits: import("../../../../../domain").RepositoryLimitOptions<BeautyProfile>): import("@firebase/firestore-types").Query<BeautyProfile>;
30
+ calculateCount(data: BeautyProfile[], limits: import("../../../../../domain").RepositoryLimitOptions<BeautyProfile>): number;
31
+ delete(identifiers: import("../../../../../domain").NonFunctionProperties<BeautyProfile>): Promise<void>;
32
+ buildCollectionPathForRemove(identifiers: import("../../../../../domain").NonFunctionProperties<BeautyProfile>): string;
33
+ create(data: Partial<BeautyProfile>): Promise<BeautyProfile>;
34
+ save(data: BeautyProfile): Promise<import("@firebase/firestore-types").DocumentReference<BeautyProfile>>;
35
+ buildCollectionPathForAdd(identifiers: Partial<BeautyProfile>): string;
36
+ };
37
+ } & {
38
+ new (...args: any[]): {
39
+ toArray<T_2 extends import("../../../../../domain").BaseModelWithIdentifier<T_2>>(snapShot: import("@firebase/firestore-types").QuerySnapshot<T_2> | import("@firebase/firestore-types").QueryDocumentSnapshot<T_2>[]): T_2[];
40
+ isSubCollection<T_3 extends import("../../../../../domain").BaseModelWithIdentifier<T_3>>(repository: import("@infrab4a/connect").FirestoreRepository<T_3>): repository is import("@infrab4a/connect").FirestoreSubRepository<T_3, import("../../../../../domain").BaseModelWithIdentifier<{}>>;
41
+ };
42
+ } & {
43
+ new (...args: any[]): {
44
+ readonly firestore?: FirebaseFirestore;
45
+ collectionName: string;
46
+ model: import("../../../../../domain").BaseModelBuilder<BeautyProfile>;
47
+ collection(path?: string): import("@firebase/firestore-types").CollectionReference<BeautyProfile>;
48
+ buildModelInstance(): {
49
+ toFirestore: (data: BeautyProfile) => import("@firebase/firestore-types").DocumentData;
50
+ fromFirestore: (snap: import("@firebase/firestore-types").QueryDocumentSnapshot<BeautyProfile>) => BeautyProfile;
51
+ };
52
+ };
53
+ };
54
+ export declare class UserBeautyProfileFirestoreRepository extends UserBeautyProfileFirestoreRepository_base implements BeautyProfileRepository {
55
+ readonly firestore: FirebaseFirestore;
56
+ readonly parentRepository: UserFirestoreRepository;
57
+ constructor(firestore: FirebaseFirestore, parentRepository: UserFirestoreRepository);
58
+ }
59
+ export {};
@@ -0,0 +1,51 @@
1
+ import { DocumentData, FirebaseFirestore, QueryDocumentSnapshot } from '@firebase/firestore-types';
2
+ import { User, UserRepository } from '../../../../../domain';
3
+ declare const UserFirestoreRepository_base: {
4
+ new (...args: any[]): {
5
+ update(data: User): Promise<User>;
6
+ buildCollectionPathForUpdate(identifiers: User): string;
7
+ readonly firestore?: FirebaseFirestore;
8
+ collectionName: string;
9
+ model: import("../../../../../domain").BaseModelBuilder<User>;
10
+ collection(path?: string): import("@firebase/firestore-types").CollectionReference<User>;
11
+ toArray<T extends import("../../../../../domain").BaseModelWithIdentifier<T>>(snapShot: import("@firebase/firestore-types").QuerySnapshot<T> | QueryDocumentSnapshot<T>[]): T[];
12
+ isSubCollection<T_1 extends import("../../../../../domain").BaseModelWithIdentifier<T_1>>(repository: import("@infrab4a/connect").FirestoreRepository<T_1>): repository is import("@infrab4a/connect").FirestoreSubRepository<T_1, import("../../../../../domain").BaseModelWithIdentifier<{}>>;
13
+ get(identifiers: import("../../../../../domain").NonFunctionProperties<User>): Promise<User>;
14
+ buildCollectionPathForGet(identifiers: import("../../../../../domain").NonFunctionProperties<User>): string;
15
+ find(filters?: import("../../../../../domain").RepositoryFindFielters<User>[], limits?: import("../../../../../domain").RepositoryLimitOptions<User>, orderBy?: import("../../../../../domain").RepositoryOrderByList<User>): Promise<import("../../../../../domain").RepositoryFindResult<User>>;
16
+ buildCollectionPathForFind(filters: import("../../../../../domain").RepositoryFindFielters<User>[]): string;
17
+ makeFirestoreWhere: (queryReference: import("@firebase/firestore-types").CollectionReference<User> | import("@firebase/firestore-types").Query<User>, filter: import("../../../../../domain").RepositoryFindFielters<User>) => import("@firebase/firestore-types").Query<User>;
18
+ buildWhereSentence: (queryReference: import("@firebase/firestore-types").CollectionReference<User> | import("@firebase/firestore-types").Query<User>, fieldName: import("../../../../../domain").NonFunctionPropertyNames<User>, options: import("../../../../../domain").RepositoryFindFieltersOptions<User, import("../../../../../domain").NonFunctionPropertyNames<User>>) => import("@firebase/firestore-types").Query<User>;
19
+ defineLimits(query: import("@firebase/firestore-types").CollectionReference<User> | import("@firebase/firestore-types").Query<User>, filters: import("../../../../../domain").RepositoryFindFielters<User>[], limits: import("../../../../../domain").RepositoryLimitOptions<User>): import("@firebase/firestore-types").Query<User>;
20
+ calculateCount(data: User[], limits: import("../../../../../domain").RepositoryLimitOptions<User>): number;
21
+ delete(identifiers: import("../../../../../domain").NonFunctionProperties<User>): Promise<void>;
22
+ buildCollectionPathForRemove(identifiers: import("../../../../../domain").NonFunctionProperties<User>): string;
23
+ create(data: Partial<User>): Promise<User>;
24
+ save(data: User): Promise<import("@firebase/firestore-types").DocumentReference<User>>;
25
+ buildCollectionPathForAdd(identifiers: Partial<User>): string;
26
+ };
27
+ } & {
28
+ new (...args: any[]): {
29
+ toArray<T_2 extends import("../../../../../domain").BaseModelWithIdentifier<T_2>>(snapShot: import("@firebase/firestore-types").QuerySnapshot<T_2> | QueryDocumentSnapshot<T_2>[]): T_2[];
30
+ isSubCollection<T_3 extends import("../../../../../domain").BaseModelWithIdentifier<T_3>>(repository: import("@infrab4a/connect").FirestoreRepository<T_3>): repository is import("@infrab4a/connect").FirestoreSubRepository<T_3, import("../../../../../domain").BaseModelWithIdentifier<{}>>;
31
+ };
32
+ } & {
33
+ new (...args: any[]): {
34
+ readonly firestore?: FirebaseFirestore;
35
+ collectionName: string;
36
+ model: import("../../../../../domain").BaseModelBuilder<User>;
37
+ collection(path?: string): import("@firebase/firestore-types").CollectionReference<User>;
38
+ buildModelInstance(): {
39
+ toFirestore: (data: User) => DocumentData;
40
+ fromFirestore: (snap: QueryDocumentSnapshot<User>) => User;
41
+ };
42
+ };
43
+ };
44
+ export declare class UserFirestoreRepository extends UserFirestoreRepository_base implements UserRepository {
45
+ readonly firestore: FirebaseFirestore;
46
+ constructor(firestore: FirebaseFirestore);
47
+ get(identifiers: Partial<User>): Promise<User>;
48
+ private getBeautyProfile;
49
+ private buildBeautyProfileModelInstance;
50
+ }
51
+ export {};
@@ -0,0 +1,6 @@
1
+ import { FirestoreRepository } from './firestore.repository.type';
2
+ import { BaseModelWithIdentifier, NonFunctionPropertyNames } from '../../../../domain';
3
+ export declare type FirestoreSubRepository<Model extends BaseModelWithIdentifier<Model>, ParentModel extends BaseModelWithIdentifier<ParentModel> = BaseModelWithIdentifier<{}>> = {
4
+ readonly parentRepository: FirestoreRepository<ParentModel>;
5
+ parentIdField: NonFunctionPropertyNames<Model>;
6
+ } & FirestoreRepository<Model>;
@@ -0,0 +1,8 @@
1
+ import { QuerySnapshot, QueryDocumentSnapshot } from '@firebase/firestore-types';
2
+ import { BaseModelWithIdentifier } from '../../../../domain';
3
+ import { FirestoreRepository } from './firestore.repository.type';
4
+ import { FirestoreSubRepository } from './firestore-sub.repository.type';
5
+ export interface FirestoreHelpers {
6
+ toArray<T extends BaseModelWithIdentifier<T>>(snapShot: QuerySnapshot<T> | Array<QueryDocumentSnapshot<T>>): Array<T>;
7
+ isSubCollection<T extends BaseModelWithIdentifier<T>>(repository: FirestoreRepository<T>): repository is FirestoreSubRepository<T>;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { CollectionReference, FirebaseFirestore } from '@firebase/firestore-types';
2
+ import { BaseModelBuilder, BaseModelWithIdentifier } from '../../../../domain';
3
+ export declare type FirestoreRepository<Model extends BaseModelWithIdentifier<Model>> = {
4
+ readonly firestore?: FirebaseFirestore;
5
+ collectionName: string;
6
+ model: BaseModelBuilder<Model>;
7
+ collection(path?: string): CollectionReference<Model>;
8
+ };
@@ -0,0 +1,3 @@
1
+ export * from './firestore.repository.type';
2
+ export * from './firestore.helpers.type';
3
+ export * from './firestore-sub.repository.type';
@@ -0,0 +1,2 @@
1
+ export * from './firestore';
2
+ export * from './auth';
@@ -0,0 +1 @@
1
+ export * from './firebase';
@@ -0,0 +1,3 @@
1
+ import { chunk, isEmpty, isNil, isNumber, isString } from 'lodash';
2
+ export { chunk, isEmpty, isNil, isNumber, isString };
3
+ export * from './mixins';
@@ -0,0 +1,3 @@
1
+ export declare class Base {
2
+ constructor(...args: Array<any>);
3
+ }
@@ -0,0 +1,2 @@
1
+ export * from './mixin-ctor.type';
2
+ export * from './base.mixin';
@@ -0,0 +1 @@
1
+ export declare type MixinCtor<T = {}> = new (...args: Array<any>) => T;
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@infrab4a/connect",
3
+ "version": "0.0.1",
4
+ "publishConfig": {
5
+ "registry": "https://registry.npmjs.org"
6
+ },
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/B4AGroup/connect"
10
+ },
11
+ "dependencies": {
12
+ "class-transformer": "^0.4.0",
13
+ "firebase": "^8.9.1",
14
+ "lodash": "^4.17.21",
15
+ "reflect-metadata": "^0.1.13",
16
+ "tslib": "^2.2.0"
17
+ },
18
+ "main": "bundles/infrab4a-connect.umd.js",
19
+ "module": "fesm2015/infrab4a-connect.js",
20
+ "es2015": "fesm2015/infrab4a-connect.js",
21
+ "esm2015": "esm2015/infrab4a-connect.js",
22
+ "fesm2015": "fesm2015/infrab4a-connect.js",
23
+ "typings": "infrab4a-connect.d.ts",
24
+ "sideEffects": false
25
+ }
@@ -0,0 +1 @@
1
+ export * from './lib';