@infrab4a/connect 0.11.0 → 0.13.0-beta.0

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 (51) hide show
  1. package/bundles/infrab4a-connect.umd.js +157 -5
  2. package/bundles/infrab4a-connect.umd.js.map +1 -1
  3. package/esm2015/lib/domain/catalog/models/product.js +1 -1
  4. package/esm2015/lib/domain/catalog/models/types/product-review.type.js +1 -1
  5. package/esm2015/lib/domain/general/repository/enums/where.enum.js +2 -1
  6. package/esm2015/lib/domain/users/errors/index.js +3 -1
  7. package/esm2015/lib/domain/users/errors/user-already-registered.error.js +7 -0
  8. package/esm2015/lib/domain/users/errors/weak-password.error.js +7 -0
  9. package/esm2015/lib/domain/users/models/subscription/enums/edition-status.enum.js +2 -1
  10. package/esm2015/lib/domain/users/repositories/user.repository.js +1 -1
  11. package/esm2015/lib/domain/users/services/authentication.service.js +1 -1
  12. package/esm2015/lib/domain/users/services/index.js +3 -1
  13. package/esm2015/lib/domain/users/services/register.service.js +2 -0
  14. package/esm2015/lib/domain/users/services/types/basic-user-data.type.js +2 -0
  15. package/esm2015/lib/domain/users/services/types/index.js +2 -0
  16. package/esm2015/lib/domain/users/use-cases/index.js +2 -1
  17. package/esm2015/lib/domain/users/use-cases/register.js +29 -0
  18. package/esm2015/lib/infra/firebase/auth/authentication-firebase-auth.service.js +18 -4
  19. package/esm2015/lib/infra/firebase/auth/index.js +2 -1
  20. package/esm2015/lib/infra/firebase/auth/register-firebase-auth.service.js +26 -0
  21. package/esm2015/lib/infra/firebase/auth/types/firebase-user-with-id.type.js +2 -0
  22. package/esm2015/lib/infra/firebase/firestore/models/user-search.js +7 -0
  23. package/esm2015/lib/infra/firebase/firestore/repositories/users/index.js +2 -1
  24. package/esm2015/lib/infra/firebase/firestore/repositories/users/user-firestore.repository.js +11 -3
  25. package/esm2015/lib/infra/firebase/firestore/repositories/users/user-search-firestore.repository.js +12 -0
  26. package/fesm2015/infrab4a-connect.js +108 -5
  27. package/fesm2015/infrab4a-connect.js.map +1 -1
  28. package/lib/domain/catalog/models/product.d.ts +0 -1
  29. package/lib/domain/catalog/models/types/product-review.type.d.ts +1 -1
  30. package/lib/domain/general/repository/enums/where.enum.d.ts +1 -0
  31. package/lib/domain/users/errors/index.d.ts +2 -0
  32. package/lib/domain/users/errors/user-already-registered.error.d.ts +4 -0
  33. package/lib/domain/users/errors/weak-password.error.d.ts +4 -0
  34. package/lib/domain/users/models/subscription/enums/edition-status.enum.d.ts +2 -1
  35. package/lib/domain/users/repositories/user.repository.d.ts +2 -0
  36. package/lib/domain/users/services/authentication.service.d.ts +4 -5
  37. package/lib/domain/users/services/index.d.ts +2 -0
  38. package/lib/domain/users/services/register.service.d.ts +7 -0
  39. package/lib/domain/users/services/types/basic-user-data.type.d.ts +4 -0
  40. package/lib/domain/users/services/types/index.d.ts +1 -0
  41. package/lib/domain/users/use-cases/index.d.ts +1 -0
  42. package/lib/domain/users/use-cases/register.d.ts +13 -0
  43. package/lib/infra/firebase/auth/authentication-firebase-auth.service.d.ts +5 -4
  44. package/lib/infra/firebase/auth/index.d.ts +1 -0
  45. package/lib/infra/firebase/auth/register-firebase-auth.service.d.ts +8 -0
  46. package/lib/infra/firebase/auth/types/firebase-user-with-id.type.d.ts +3 -0
  47. package/lib/infra/firebase/firestore/models/user-search.d.ts +9 -0
  48. package/lib/infra/firebase/firestore/repositories/users/index.d.ts +1 -0
  49. package/lib/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +4 -1
  50. package/lib/infra/firebase/firestore/repositories/users/user-search-firestore.repository.d.ts +50 -0
  51. package/package.json +1 -1
@@ -28,7 +28,6 @@ export declare class Product extends BaseModel<Product> implements IdentifierFie
28
28
  categories?: string[];
29
29
  reviews?: ProductReview[];
30
30
  variant?: Variant;
31
- showOnTop?: boolean;
32
31
  identifierFields(): NonFunctionPropertyNames<Product>[];
33
32
  getInfoByShop(shop: Shops): ShopDescription & ShopPrice & Stock;
34
33
  }
@@ -6,7 +6,7 @@ export declare type ProductReview = {
6
6
  location: string;
7
7
  rate: number;
8
8
  review: string;
9
- status: string;
9
+ status: boolean;
10
10
  title: string;
11
11
  shop?: Shops;
12
12
  };
@@ -1,5 +1,6 @@
1
1
  export declare enum Where {
2
2
  EQUALS = "==",
3
+ NOTEQUALS = "!=",
3
4
  GT = ">",
4
5
  GTE = ">=",
5
6
  IN = "in",
@@ -1 +1,3 @@
1
1
  export * from './unauthorized.error';
2
+ export * from './user-already-registered.error';
3
+ export * from './weak-password.error';
@@ -0,0 +1,4 @@
1
+ export declare class UserAlreadyRegisteredError extends Error {
2
+ readonly message: any;
3
+ constructor(message: any);
4
+ }
@@ -0,0 +1,4 @@
1
+ export declare class WeakPasswordError extends Error {
2
+ readonly message: string;
3
+ constructor(message?: string);
4
+ }
@@ -1,3 +1,4 @@
1
1
  export declare enum EditionStatus {
2
- ALLOCATION_WAITING = "Aguardando aloca\u00E7\u00E3o"
2
+ ALLOCATION_WAITING = "Aguardando aloca\u00E7\u00E3o",
3
+ SHIPPED = "Enviado"
3
4
  }
@@ -1,4 +1,6 @@
1
1
  import { CrudRepository } from '../../general/repository/crud.repository';
2
+ import { NonFunctionPropertyNames } from '../../general';
2
3
  import { User } from '../models/user';
3
4
  export interface UserRepository extends CrudRepository<User> {
5
+ checkIfExistsByField(field: Extract<NonFunctionPropertyNames<User>, 'cpf' | 'email'>, value: string): Promise<boolean>;
4
6
  }
@@ -1,12 +1,11 @@
1
- import firebase from 'firebase';
2
- import { User } from '../models/user';
1
+ import { BasicUserData } from './types/basic-user-data.type';
3
2
  export declare type LoginAndPasswordParams = {
4
3
  email: string;
5
4
  password: string;
6
5
  };
7
6
  export interface AuthenticationService {
8
- signInWithEmailAndPassword(data: LoginAndPasswordParams): Promise<Partial<User>>;
9
- signInWithGoogle(): Promise<Partial<User>>;
7
+ signInWithEmailAndPassword(data: LoginAndPasswordParams): Promise<BasicUserData>;
8
+ signInWithGoogle(): Promise<BasicUserData>;
10
9
  signOut(): Promise<void>;
11
- signInAnonymously(): Promise<firebase.User>;
10
+ signInAnonymously(): Promise<Pick<BasicUserData, 'id' | 'isAnonymous'>>;
12
11
  }
@@ -1 +1,3 @@
1
1
  export * from './authentication.service';
2
+ export * from './register.service';
3
+ export * from './types';
@@ -0,0 +1,7 @@
1
+ import { BasicUserData } from './types/basic-user-data.type';
2
+ export declare type RegisterParams = Omit<BasicUserData, 'isAnonymous'> & {
3
+ password: string;
4
+ };
5
+ export interface RegisterService {
6
+ register(params: RegisterParams): Promise<BasicUserData>;
7
+ }
@@ -0,0 +1,4 @@
1
+ import { User } from '../../models/user';
2
+ export declare type BasicUserData = Partial<Pick<User, 'id' | 'cpf' | 'email' | 'firstName' | 'lastName' | 'displayName' | 'phone' | 'birthday'>> & {
3
+ isAnonymous: boolean;
4
+ };
@@ -0,0 +1 @@
1
+ export * from './basic-user-data.type';
@@ -1,2 +1,3 @@
1
1
  export * from './authentication';
2
+ export * from './register';
2
3
  export * from './signout';
@@ -0,0 +1,13 @@
1
+ import { User } from '../models';
2
+ import { RegisterService } from '../services/register.service';
3
+ import { UserRepository } from '../repositories/user.repository';
4
+ declare type RegisterParams = Partial<User> & {
5
+ password: string;
6
+ };
7
+ export declare class Register {
8
+ private readonly registerService;
9
+ private readonly userRepository;
10
+ constructor(registerService: RegisterService, userRepository: UserRepository);
11
+ register(params: RegisterParams): Promise<User>;
12
+ }
13
+ export {};
@@ -1,10 +1,11 @@
1
1
  import firebase from 'firebase/app';
2
- import { AuthenticationService, LoginAndPasswordParams, User } from '../../../domain';
2
+ import { AuthenticationService, BasicUserData, LoginAndPasswordParams } from '../../../domain';
3
+ import { FirebaseUserWithId } from './types/firebase-user-with-id.type';
3
4
  export declare class AuthenticationFirebaseAuthService implements AuthenticationService {
4
5
  private readonly firebaseAuth;
5
6
  constructor(firebaseAuth: firebase.auth.Auth);
6
- signInWithEmailAndPassword(data: LoginAndPasswordParams): Promise<Partial<User>>;
7
- signInWithGoogle(): Promise<Partial<User>>;
7
+ signInWithEmailAndPassword(data: LoginAndPasswordParams): Promise<BasicUserData>;
8
+ signInWithGoogle(): Promise<BasicUserData>;
8
9
  signOut(): Promise<void>;
9
- signInAnonymously(): Promise<firebase.User>;
10
+ signInAnonymously(): Promise<FirebaseUserWithId>;
10
11
  }
@@ -1 +1,2 @@
1
1
  export * from './authentication-firebase-auth.service';
2
+ export * from './register-firebase-auth.service';
@@ -0,0 +1,8 @@
1
+ import firebase from 'firebase/app';
2
+ import { RegisterParams, RegisterService } from '../../../domain';
3
+ import { FirebaseUserWithId } from './types/firebase-user-with-id.type';
4
+ export declare class RegisterFirebaseAuthService implements RegisterService {
5
+ private readonly firebaseAuth;
6
+ constructor(firebaseAuth: firebase.auth.Auth);
7
+ register(params: RegisterParams): Promise<FirebaseUserWithId>;
8
+ }
@@ -0,0 +1,3 @@
1
+ export declare type FirebaseUserWithId = firebase.User & {
2
+ id: string;
3
+ };
@@ -0,0 +1,9 @@
1
+ import { BaseModel, IdentifierFields, NonFunctionPropertyNames } from '../../../../domain/general';
2
+ export declare class UserSearch extends BaseModel<UserSearch> implements IdentifierFields<UserSearch> {
3
+ id: string;
4
+ cpf?: string;
5
+ email?: string;
6
+ createdAt: Date;
7
+ copiedAt: Date;
8
+ identifierFields(): NonFunctionPropertyNames<UserSearch>[];
9
+ }
@@ -6,3 +6,4 @@ export * from './user-address-firestore.repository';
6
6
  export * from './user-payment-method-firestore.repository';
7
7
  export * from './subscription-payment-firestore.repository';
8
8
  export * from './lead-firestore.repository';
9
+ export * from './user-search-firestore.repository';
@@ -1,5 +1,6 @@
1
1
  import { DocumentData, FirebaseFirestore, QueryDocumentSnapshot } from '@firebase/firestore-types';
2
2
  import { User, UserRepository } from '../../../../../domain';
3
+ import { UserSearchFirestoreRepository } from './user-search-firestore.repository';
3
4
  declare const UserFirestoreRepository_base: {
4
5
  new (...args: any[]): {
5
6
  update(data: import("../../../../../domain").RepositoryUpdateParams<User>): Promise<User>;
@@ -44,8 +45,10 @@ declare const UserFirestoreRepository_base: {
44
45
  };
45
46
  export declare class UserFirestoreRepository extends UserFirestoreRepository_base implements UserRepository {
46
47
  readonly firestore: FirebaseFirestore;
47
- constructor(firestore: FirebaseFirestore);
48
+ private readonly userSearchFirestoreRepository;
49
+ constructor(firestore: FirebaseFirestore, userSearchFirestoreRepository?: UserSearchFirestoreRepository);
48
50
  get(identifiers: Partial<User>): Promise<User>;
51
+ checkIfExistsByField(field: string, value: string): Promise<boolean>;
49
52
  buildModelInstance(): {
50
53
  toFirestore: (data: User) => DocumentData;
51
54
  fromFirestore: (snap: QueryDocumentSnapshot<User>) => User;
@@ -0,0 +1,50 @@
1
+ import { FirebaseFirestore } from '@firebase/firestore-types';
2
+ import { CrudRepository } from '../../../../../domain';
3
+ import { UserSearch } from '../../models/user-search';
4
+ declare const UserSearchFirestoreRepository_base: {
5
+ new (...args: any[]): {
6
+ update(data: import("../../../../../domain").RepositoryUpdateParams<UserSearch>): Promise<UserSearch>;
7
+ buildCollectionPathForUpdate(identifiers: import("../../../../../domain").RepositoryUpdateParams<UserSearch>): string;
8
+ paramsToPlain(params: import("../../../../../domain").RepositoryUpdateParams<UserSearch>): Partial<UserSearch>;
9
+ readonly firestore?: FirebaseFirestore;
10
+ collectionName: string;
11
+ model: import("../../../../../domain").BaseModelBuilder<UserSearch>;
12
+ collection(path?: string): import("@firebase/firestore-types").CollectionReference<UserSearch>;
13
+ toArray<T extends import("../../../../../domain").BaseModelWithIdentifier<T>>(snapShot: import("@firebase/firestore-types").QuerySnapshot<T> | import("@firebase/firestore-types").QueryDocumentSnapshot<T>[]): T[];
14
+ 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<{}>>;
15
+ get(identifiers: import("../../../../../domain").NonFunctionProperties<UserSearch>): Promise<UserSearch>;
16
+ buildCollectionPathForGet(identifiers: import("../../../../../domain").NonFunctionProperties<UserSearch>): string;
17
+ find(filters?: import("../../../../../domain").RepositoryFindFielters<UserSearch>[], limits?: import("../../../../../domain").RepositoryLimitOptions<UserSearch>, orderBy?: import("../../../../../domain").RepositoryOrderByList<UserSearch>): Promise<import("../../../../../domain").RepositoryFindResult<UserSearch>>;
18
+ buildCollectionPathForFind(filters: import("../../../../../domain").RepositoryFindFielters<UserSearch>[]): string;
19
+ makeFirestoreWhere: (queryReference: import("@firebase/firestore-types").CollectionReference<UserSearch> | import("@firebase/firestore-types").Query<UserSearch>, filter: import("../../../../../domain").RepositoryFindFielters<UserSearch>) => import("@firebase/firestore-types").Query<UserSearch>;
20
+ buildWhereSentence: (queryReference: import("@firebase/firestore-types").CollectionReference<UserSearch> | import("@firebase/firestore-types").Query<UserSearch>, fieldName: string, options: import("../../../../../domain").RepositoryFindFieltersOptions<UserSearch, import("../../../../../domain").NonFunctionPropertyNames<UserSearch>>) => import("@firebase/firestore-types").Query<UserSearch>;
21
+ defineLimits(query: import("@firebase/firestore-types").CollectionReference<UserSearch> | import("@firebase/firestore-types").Query<UserSearch>, filters: import("../../../../../domain").RepositoryFindFielters<UserSearch>[], limits: import("../../../../../domain").RepositoryLimitOptions<UserSearch>): Promise<import("@firebase/firestore-types").Query<UserSearch>>;
22
+ calculateCount(data: UserSearch[], limits: import("../../../../../domain").RepositoryLimitOptions<UserSearch>): number;
23
+ delete(identifiers: import("../../../../../domain").NonFunctionProperties<UserSearch>): Promise<void>;
24
+ buildCollectionPathForRemove(identifiers: import("../../../../../domain").NonFunctionProperties<UserSearch>): string;
25
+ create(data: Partial<UserSearch>): Promise<UserSearch>;
26
+ save(data: UserSearch): Promise<import("@firebase/firestore-types").DocumentReference<UserSearch>>;
27
+ buildCollectionPathForAdd(identifiers: Partial<UserSearch>): string;
28
+ };
29
+ } & {
30
+ new (...args: any[]): {
31
+ 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[];
32
+ 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<{}>>;
33
+ };
34
+ } & {
35
+ new (...args: any[]): {
36
+ readonly firestore?: FirebaseFirestore;
37
+ collectionName: string;
38
+ model: import("../../../../../domain").BaseModelBuilder<UserSearch>;
39
+ collection(path?: string): import("@firebase/firestore-types").CollectionReference<UserSearch>;
40
+ buildModelInstance(): {
41
+ toFirestore: (data: UserSearch) => import("@firebase/firestore-types").DocumentData;
42
+ fromFirestore: (snap: import("@firebase/firestore-types").QueryDocumentSnapshot<UserSearch>) => UserSearch;
43
+ };
44
+ };
45
+ };
46
+ export declare class UserSearchFirestoreRepository extends UserSearchFirestoreRepository_base implements CrudRepository<UserSearch> {
47
+ readonly firestore: FirebaseFirestore;
48
+ constructor(firestore: FirebaseFirestore);
49
+ }
50
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infrab4a/connect",
3
- "version": "0.11.0",
3
+ "version": "0.13.0-beta.0",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org"
6
6
  },