@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.
- package/README.md +24 -0
- package/bundles/infrab4a-connect.umd.js +1074 -0
- package/bundles/infrab4a-connect.umd.js.map +1 -0
- package/esm2015/infrab4a-connect.js +5 -0
- package/esm2015/lib/domain/general/index.js +3 -0
- package/esm2015/lib/domain/general/model/base-model-with-identifier-fields.js +2 -0
- package/esm2015/lib/domain/general/model/base.model.js +13 -0
- package/esm2015/lib/domain/general/model/identifier-fields.js +2 -0
- package/esm2015/lib/domain/general/model/index.js +5 -0
- package/esm2015/lib/domain/general/model/types/base-model-builder.type.js +2 -0
- package/esm2015/lib/domain/general/model/types/index.js +4 -0
- package/esm2015/lib/domain/general/model/types/non-function-properties.type.js +2 -0
- package/esm2015/lib/domain/general/model/types/non-function-property-name.type.js +2 -0
- package/esm2015/lib/domain/general/repository/create.repository.js +2 -0
- package/esm2015/lib/domain/general/repository/crud.repository.js +2 -0
- package/esm2015/lib/domain/general/repository/delete.repository.js +2 -0
- package/esm2015/lib/domain/general/repository/enums/index.js +2 -0
- package/esm2015/lib/domain/general/repository/enums/where.enum.js +11 -0
- package/esm2015/lib/domain/general/repository/find.repository.js +2 -0
- package/esm2015/lib/domain/general/repository/get.repository.js +2 -0
- package/esm2015/lib/domain/general/repository/index.js +10 -0
- package/esm2015/lib/domain/general/repository/read.repository.js +2 -0
- package/esm2015/lib/domain/general/repository/types/index.js +5 -0
- package/esm2015/lib/domain/general/repository/types/repository-find-filters.type.js +2 -0
- package/esm2015/lib/domain/general/repository/types/repository-find-result.type.js +2 -0
- package/esm2015/lib/domain/general/repository/types/repository-limit-options.type.js +2 -0
- package/esm2015/lib/domain/general/repository/types/repository-order-by-list.type.js +2 -0
- package/esm2015/lib/domain/general/repository/update.repository.js +2 -0
- package/esm2015/lib/domain/index.js +3 -0
- package/esm2015/lib/domain/users/errors/index.js +2 -0
- package/esm2015/lib/domain/users/errors/unauthorized.error.js +7 -0
- package/esm2015/lib/domain/users/index.js +6 -0
- package/esm2015/lib/domain/users/models/beauty-profile.js +12 -0
- package/esm2015/lib/domain/users/models/edition.js +7 -0
- package/esm2015/lib/domain/users/models/enums/area.enum.js +13 -0
- package/esm2015/lib/domain/users/models/enums/beard-sizes.enum.js +9 -0
- package/esm2015/lib/domain/users/models/enums/billing-status.enum.js +5 -0
- package/esm2015/lib/domain/users/models/enums/edition-status.enum.js +5 -0
- package/esm2015/lib/domain/users/models/enums/hair-types.enum.js +9 -0
- package/esm2015/lib/domain/users/models/enums/index.js +10 -0
- package/esm2015/lib/domain/users/models/enums/office-position.enum.js +8 -0
- package/esm2015/lib/domain/users/models/enums/status.enum.js +5 -0
- package/esm2015/lib/domain/users/models/enums/user-type.enum.js +10 -0
- package/esm2015/lib/domain/users/models/index.js +6 -0
- package/esm2015/lib/domain/users/models/subscription.js +7 -0
- package/esm2015/lib/domain/users/models/user.js +17 -0
- package/esm2015/lib/domain/users/repositories/beauty-profile.repository.js +2 -0
- package/esm2015/lib/domain/users/repositories/edition.repository.js +2 -0
- package/esm2015/lib/domain/users/repositories/index.js +5 -0
- package/esm2015/lib/domain/users/repositories/subscription.repository.js +2 -0
- package/esm2015/lib/domain/users/repositories/user.repository.js +2 -0
- package/esm2015/lib/domain/users/services/authentication.service.js +2 -0
- package/esm2015/lib/domain/users/services/index.js +2 -0
- package/esm2015/lib/domain/users/use-cases/authentication.js +40 -0
- package/esm2015/lib/domain/users/use-cases/index.js +3 -0
- package/esm2015/lib/domain/users/use-cases/signout.js +12 -0
- package/esm2015/lib/errors/index.js +4 -0
- package/esm2015/lib/errors/invalid-argument.error.js +7 -0
- package/esm2015/lib/errors/not-found.error.js +7 -0
- package/esm2015/lib/errors/required-argument.error.js +8 -0
- package/esm2015/lib/index.js +5 -0
- package/esm2015/lib/infra/firebase/auth/authentication-firebase-auth.service.js +27 -0
- package/esm2015/lib/infra/firebase/auth/index.js +2 -0
- package/esm2015/lib/infra/firebase/firestore/index.js +4 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/index.js +10 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-create-firestore.mixin.js +30 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-crud-firestore.mixin.js +10 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-delete-firestore.mixin.js +18 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-find-firestore.mixin.js +59 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-firestore.mixin.js +17 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-get-firestore.mixin.js +24 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-helpers.mixin.js +17 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-sub-collection.mixin.js +11 -0
- package/esm2015/lib/infra/firebase/firestore/mixins/with-update-firestore.mixin.js +19 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/index.js +2 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/users/index.js +5 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.js +14 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/users/subscription-firestore.repository.js +12 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.js +14 -0
- package/esm2015/lib/infra/firebase/firestore/repositories/users/user-firestore.repository.js +40 -0
- package/esm2015/lib/infra/firebase/firestore/types/firestore-sub.repository.type.js +2 -0
- package/esm2015/lib/infra/firebase/firestore/types/firestore.helpers.type.js +2 -0
- package/esm2015/lib/infra/firebase/firestore/types/firestore.repository.type.js +2 -0
- package/esm2015/lib/infra/firebase/firestore/types/index.js +4 -0
- package/esm2015/lib/infra/firebase/index.js +3 -0
- package/esm2015/lib/infra/index.js +2 -0
- package/esm2015/lib/utils/index.js +4 -0
- package/esm2015/lib/utils/mixins/base.mixin.js +6 -0
- package/esm2015/lib/utils/mixins/index.js +3 -0
- package/esm2015/lib/utils/mixins/mixin-ctor.type.js +2 -0
- package/esm2015/public-api.js +2 -0
- package/fesm2015/infrab4a-connect.js +501 -0
- package/fesm2015/infrab4a-connect.js.map +1 -0
- package/infrab4a-connect.d.ts +5 -0
- package/lib/domain/general/index.d.ts +2 -0
- package/lib/domain/general/model/base-model-with-identifier-fields.d.ts +3 -0
- package/lib/domain/general/model/base.model.d.ts +6 -0
- package/lib/domain/general/model/identifier-fields.d.ts +4 -0
- package/lib/domain/general/model/index.d.ts +4 -0
- package/lib/domain/general/model/types/base-model-builder.type.d.ts +5 -0
- package/lib/domain/general/model/types/index.d.ts +3 -0
- package/lib/domain/general/model/types/non-function-properties.type.d.ts +2 -0
- package/lib/domain/general/model/types/non-function-property-name.type.d.ts +3 -0
- package/lib/domain/general/repository/create.repository.d.ts +5 -0
- package/lib/domain/general/repository/crud.repository.d.ts +7 -0
- package/lib/domain/general/repository/delete.repository.d.ts +5 -0
- package/lib/domain/general/repository/enums/index.d.ts +1 -0
- package/lib/domain/general/repository/enums/where.enum.d.ts +9 -0
- package/lib/domain/general/repository/find.repository.d.ts +5 -0
- package/lib/domain/general/repository/get.repository.d.ts +5 -0
- package/lib/domain/general/repository/index.d.ts +9 -0
- package/lib/domain/general/repository/read.repository.d.ts +5 -0
- package/lib/domain/general/repository/types/index.d.ts +4 -0
- package/lib/domain/general/repository/types/repository-find-filters.type.d.ts +11 -0
- package/lib/domain/general/repository/types/repository-find-result.type.d.ts +4 -0
- package/lib/domain/general/repository/types/repository-limit-options.type.d.ts +4 -0
- package/lib/domain/general/repository/types/repository-order-by-list.type.d.ts +5 -0
- package/lib/domain/general/repository/update.repository.d.ts +4 -0
- package/lib/domain/index.d.ts +2 -0
- package/lib/domain/users/errors/index.d.ts +1 -0
- package/lib/domain/users/errors/unauthorized.error.d.ts +4 -0
- package/lib/domain/users/index.d.ts +5 -0
- package/lib/domain/users/models/beauty-profile.d.ts +12 -0
- package/lib/domain/users/models/edition.d.ts +15 -0
- package/lib/domain/users/models/enums/area.enum.d.ts +11 -0
- package/lib/domain/users/models/enums/beard-sizes.enum.d.ts +7 -0
- package/lib/domain/users/models/enums/billing-status.enum.d.ts +3 -0
- package/lib/domain/users/models/enums/edition-status.enum.d.ts +3 -0
- package/lib/domain/users/models/enums/hair-types.enum.d.ts +7 -0
- package/lib/domain/users/models/enums/index.d.ts +9 -0
- package/lib/domain/users/models/enums/office-position.enum.d.ts +6 -0
- package/lib/domain/users/models/enums/status.enum.d.ts +3 -0
- package/lib/domain/users/models/enums/user-type.enum.d.ts +8 -0
- package/lib/domain/users/models/index.d.ts +5 -0
- package/lib/domain/users/models/subscription.d.ts +15 -0
- package/lib/domain/users/models/user.d.ts +23 -0
- package/lib/domain/users/repositories/beauty-profile.repository.d.ts +4 -0
- package/lib/domain/users/repositories/edition.repository.d.ts +4 -0
- package/lib/domain/users/repositories/index.d.ts +4 -0
- package/lib/domain/users/repositories/subscription.repository.d.ts +4 -0
- package/lib/domain/users/repositories/user.repository.d.ts +4 -0
- package/lib/domain/users/services/authentication.service.d.ts +10 -0
- package/lib/domain/users/services/index.d.ts +1 -0
- package/lib/domain/users/use-cases/authentication.d.ts +21 -0
- package/lib/domain/users/use-cases/index.d.ts +2 -0
- package/lib/domain/users/use-cases/signout.d.ts +6 -0
- package/lib/errors/index.d.ts +3 -0
- package/lib/errors/invalid-argument.error.d.ts +4 -0
- package/lib/errors/not-found.error.d.ts +4 -0
- package/lib/errors/required-argument.error.d.ts +5 -0
- package/lib/index.d.ts +4 -0
- package/lib/infra/firebase/auth/authentication-firebase-auth.service.d.ts +9 -0
- package/lib/infra/firebase/auth/index.d.ts +1 -0
- package/lib/infra/firebase/firestore/index.d.ts +3 -0
- package/lib/infra/firebase/firestore/mixins/index.d.ts +9 -0
- package/lib/infra/firebase/firestore/mixins/with-create-firestore.mixin.d.ts +17 -0
- package/lib/infra/firebase/firestore/mixins/with-crud-firestore.mixin.d.ts +28 -0
- package/lib/infra/firebase/firestore/mixins/with-delete-firestore.mixin.d.ts +15 -0
- package/lib/infra/firebase/firestore/mixins/with-find-firestore.mixin.d.ts +20 -0
- package/lib/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +15 -0
- package/lib/infra/firebase/firestore/mixins/with-get-firestore.mixin.d.ts +15 -0
- package/lib/infra/firebase/firestore/mixins/with-helpers.mixin.d.ts +10 -0
- package/lib/infra/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +14 -0
- package/lib/infra/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +15 -0
- package/lib/infra/firebase/firestore/repositories/index.d.ts +1 -0
- package/lib/infra/firebase/firestore/repositories/users/index.d.ts +4 -0
- package/lib/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.d.ts +59 -0
- package/lib/infra/firebase/firestore/repositories/users/subscription-firestore.repository.d.ts +48 -0
- package/lib/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.d.ts +59 -0
- package/lib/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +51 -0
- package/lib/infra/firebase/firestore/types/firestore-sub.repository.type.d.ts +6 -0
- package/lib/infra/firebase/firestore/types/firestore.helpers.type.d.ts +8 -0
- package/lib/infra/firebase/firestore/types/firestore.repository.type.d.ts +8 -0
- package/lib/infra/firebase/firestore/types/index.d.ts +3 -0
- package/lib/infra/firebase/index.d.ts +2 -0
- package/lib/infra/index.d.ts +1 -0
- package/lib/utils/index.d.ts +3 -0
- package/lib/utils/mixins/base.mixin.d.ts +3 -0
- package/lib/utils/mixins/index.d.ts +2 -0
- package/lib/utils/mixins/mixin-ctor.type.d.ts +1 -0
- package/package.json +25 -0
- package/public-api.d.ts +1 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BaseModelWithIdentifier } from '../model/base-model-with-identifier-fields';
|
|
2
|
+
import { NonFunctionProperties } from '../model/types/non-function-properties.type';
|
|
3
|
+
export interface CreateRepository<Model extends BaseModelWithIdentifier<Model>> {
|
|
4
|
+
create(data: NonFunctionProperties<BaseModelWithIdentifier<Model>>): Promise<Model>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseModelWithIdentifier } from '../model/base-model-with-identifier-fields';
|
|
2
|
+
import { CreateRepository } from './create.repository';
|
|
3
|
+
import { DeleteRepository } from './delete.repository';
|
|
4
|
+
import { ReadRepository } from './read.repository';
|
|
5
|
+
import { UpdateRepository } from './update.repository';
|
|
6
|
+
export interface CrudRepository<Model extends BaseModelWithIdentifier<Model>> extends CreateRepository<Model>, DeleteRepository<Model>, ReadRepository<Model>, UpdateRepository<Model> {
|
|
7
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BaseModelWithIdentifier } from '../model/base-model-with-identifier-fields';
|
|
2
|
+
import { NonFunctionProperties } from '../model/types/non-function-properties.type';
|
|
3
|
+
export interface DeleteRepository<Model extends BaseModelWithIdentifier<Model>> {
|
|
4
|
+
delete(identifiers: NonFunctionProperties<BaseModelWithIdentifier<Model>>): Promise<void>;
|
|
5
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './where.enum';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BaseModelWithIdentifier } from '../model/base-model-with-identifier-fields';
|
|
2
|
+
import { RepositoryFindFielters, RepositoryFindResult, RepositoryLimitOptions, RepositoryOrderByList } from './types';
|
|
3
|
+
export interface FindRepository<Model extends BaseModelWithIdentifier<Model>> {
|
|
4
|
+
find(filters?: RepositoryFindFielters<Model>[], limits?: RepositoryLimitOptions<Model>, orderBy?: RepositoryOrderByList<Model>): Promise<RepositoryFindResult<Model>>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BaseModelWithIdentifier } from '../model/base-model-with-identifier-fields';
|
|
2
|
+
import { NonFunctionProperties } from '../model/types/non-function-properties.type';
|
|
3
|
+
export interface GetRepository<Model extends BaseModelWithIdentifier<Model>> {
|
|
4
|
+
get(identifiers: NonFunctionProperties<BaseModelWithIdentifier<Model>>): Promise<Model>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './enums';
|
|
2
|
+
export * from './types';
|
|
3
|
+
export * from './create.repository';
|
|
4
|
+
export * from './get.repository';
|
|
5
|
+
export * from './delete.repository';
|
|
6
|
+
export * from './update.repository';
|
|
7
|
+
export * from './find.repository';
|
|
8
|
+
export * from './read.repository';
|
|
9
|
+
export * from './crud.repository';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BaseModelWithIdentifier } from '../model/base-model-with-identifier-fields';
|
|
2
|
+
import { FindRepository } from './find.repository';
|
|
3
|
+
import { GetRepository } from './get.repository';
|
|
4
|
+
export interface ReadRepository<Model extends BaseModelWithIdentifier<Model>> extends FindRepository<Model>, GetRepository<Model> {
|
|
5
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { NonFunctionPropertyNames } from '../../model/types/non-function-property-name.type';
|
|
2
|
+
import { Where } from '../enums/where.enum';
|
|
3
|
+
declare type PropType<TObj, TProp extends keyof TObj> = TObj[TProp];
|
|
4
|
+
export declare type RepositoryFindFieltersOptions<Model, FieldName extends keyof Model> = {
|
|
5
|
+
operator: Where;
|
|
6
|
+
value: PropType<Model, FieldName>;
|
|
7
|
+
};
|
|
8
|
+
export declare type RepositoryFindFielters<Model> = {
|
|
9
|
+
[key in NonFunctionPropertyNames<Model>]?: RepositoryFindFieltersOptions<Model, key>;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { NonFunctionPropertyNames } from '../../model/types/non-function-property-name.type';
|
|
2
|
+
export declare type RepositoryOrderBy<Model> = {
|
|
3
|
+
[key in NonFunctionPropertyNames<Model>]?: 'asc' | 'desc';
|
|
4
|
+
};
|
|
5
|
+
export declare type RepositoryOrderByList<Model> = RepositoryOrderBy<Model>[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './unauthorized.error';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseModel } from '../../general/model/base.model';
|
|
2
|
+
import { IdentifierFields } from '../../general/model/identifier-fields';
|
|
3
|
+
import { NonFunctionPropertyNames } from '../../general/model/types/non-function-property-name.type';
|
|
4
|
+
import { BeardSizes, HairTypes } from './enums';
|
|
5
|
+
export declare class BeautyProfile extends BaseModel<BeautyProfile> implements IdentifierFields<BeautyProfile> {
|
|
6
|
+
id: string;
|
|
7
|
+
userId: string;
|
|
8
|
+
beardSize?: BeardSizes;
|
|
9
|
+
hairType?: HairTypes;
|
|
10
|
+
toPlain(): any;
|
|
11
|
+
identifierFields(): NonFunctionPropertyNames<BeautyProfile>[];
|
|
12
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseModel } from '../../general/model/base.model';
|
|
2
|
+
import { IdentifierFields } from '../../general/model/identifier-fields';
|
|
3
|
+
import { NonFunctionPropertyNames } from '../../general/model/types/non-function-property-name.type';
|
|
4
|
+
import { EditionStatus, BillingStatus } from './enums';
|
|
5
|
+
export declare class Edition extends BaseModel<Edition> implements IdentifierFields<Edition> {
|
|
6
|
+
id: string;
|
|
7
|
+
subscriptionId: string;
|
|
8
|
+
billingStatus: BillingStatus;
|
|
9
|
+
editionId: number;
|
|
10
|
+
editionStatus: EditionStatus;
|
|
11
|
+
installment: number;
|
|
12
|
+
paymentId: string;
|
|
13
|
+
draftId?: string;
|
|
14
|
+
identifierFields(): NonFunctionPropertyNames<Edition>[];
|
|
15
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './status.enum';
|
|
2
|
+
export * from './user-type.enum';
|
|
3
|
+
export * from './billing-status.enum';
|
|
4
|
+
export * from './edition-status.enum';
|
|
5
|
+
export * from './user-type.enum';
|
|
6
|
+
export * from './beard-sizes.enum';
|
|
7
|
+
export * from './hair-types.enum';
|
|
8
|
+
export * from './area.enum';
|
|
9
|
+
export * from './office-position.enum';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseModel } from '../../general/model/base.model';
|
|
2
|
+
import { IdentifierFields } from '../../general/model/identifier-fields';
|
|
3
|
+
import { NonFunctionPropertyNames } from '../../general/model/types/non-function-property-name.type';
|
|
4
|
+
import { Edition } from './edition';
|
|
5
|
+
import { Status } from './enums/status.enum';
|
|
6
|
+
import { User } from './user';
|
|
7
|
+
export declare class Subscription extends BaseModel<Subscription> implements IdentifierFields<Subscription> {
|
|
8
|
+
id: string;
|
|
9
|
+
nextPayment: Date;
|
|
10
|
+
recurrence: boolean;
|
|
11
|
+
status: Status;
|
|
12
|
+
editions: Edition[];
|
|
13
|
+
user: User;
|
|
14
|
+
identifierFields(): NonFunctionPropertyNames<Subscription>[];
|
|
15
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BaseModel } from '../../general/model/base.model';
|
|
2
|
+
import { IdentifierFields } from '../../general/model/identifier-fields';
|
|
3
|
+
import { NonFunctionProperties, NonFunctionPropertyNames } from '../../general/model/types';
|
|
4
|
+
import { Area, OfficePosition, UserType } from './enums';
|
|
5
|
+
import { BeautyProfile } from './beauty-profile';
|
|
6
|
+
export declare class User extends BaseModel<User> implements IdentifierFields<User> {
|
|
7
|
+
id: string;
|
|
8
|
+
cpf?: string;
|
|
9
|
+
email: string;
|
|
10
|
+
firstName: string;
|
|
11
|
+
lastName: string;
|
|
12
|
+
displayName?: string;
|
|
13
|
+
phone: string;
|
|
14
|
+
birthday?: Date;
|
|
15
|
+
acceptsNewsletter: boolean;
|
|
16
|
+
type?: UserType;
|
|
17
|
+
beautyProfile?: BeautyProfile;
|
|
18
|
+
area?: Area;
|
|
19
|
+
officePosition?: OfficePosition;
|
|
20
|
+
static toInstance<T>(this: new () => Partial<T>, data: NonFunctionProperties<T> & NonFunctionProperties<User>): T;
|
|
21
|
+
identifierFields(): NonFunctionPropertyNames<User>[];
|
|
22
|
+
toPlain(): any;
|
|
23
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { User } from '../models/user';
|
|
2
|
+
export declare type LoginAndPasswordParams = {
|
|
3
|
+
email: string;
|
|
4
|
+
password: string;
|
|
5
|
+
};
|
|
6
|
+
export interface AuthenticationService {
|
|
7
|
+
signInWithEmailAndPassword(data: LoginAndPasswordParams): Promise<Partial<User>>;
|
|
8
|
+
signInWithGoogle(): Promise<Partial<User>>;
|
|
9
|
+
signOut(): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './authentication.service';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { User } from '../models';
|
|
2
|
+
import { AuthenticationService } from '../services/authentication.service';
|
|
3
|
+
import { UserRepository } from '../repositories/user.repository';
|
|
4
|
+
export declare enum SignInMethods {
|
|
5
|
+
EMAIL_PASSWORD = "email_password",
|
|
6
|
+
GOOGLE = "google"
|
|
7
|
+
}
|
|
8
|
+
declare type SignInMethod = Lowercase<keyof typeof SignInMethods>;
|
|
9
|
+
declare type SignInParams = {
|
|
10
|
+
email?: string;
|
|
11
|
+
password?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare class Authentication {
|
|
14
|
+
private readonly authService;
|
|
15
|
+
private readonly userRepository;
|
|
16
|
+
constructor(authService: AuthenticationService, userRepository: UserRepository);
|
|
17
|
+
signIn({ email, password }: SignInParams, signInMethod: SignInMethod): Promise<User>;
|
|
18
|
+
private getServiceByMethod;
|
|
19
|
+
private createsUserByCredential;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import firebase from 'firebase/app';
|
|
2
|
+
import { AuthenticationService, LoginAndPasswordParams, User } from '../../../domain';
|
|
3
|
+
export declare class AuthenticationFirebaseAuthService implements AuthenticationService {
|
|
4
|
+
private readonly firebaseAuth;
|
|
5
|
+
constructor(firebaseAuth: firebase.auth.Auth);
|
|
6
|
+
signInWithEmailAndPassword(data: LoginAndPasswordParams): Promise<Partial<User>>;
|
|
7
|
+
signInWithGoogle(): Promise<Partial<User>>;
|
|
8
|
+
signOut(): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './authentication-firebase-auth.service';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './with-firestore.mixin';
|
|
2
|
+
export * from './with-helpers.mixin';
|
|
3
|
+
export * from './with-get-firestore.mixin';
|
|
4
|
+
export * from './with-find-firestore.mixin';
|
|
5
|
+
export * from './with-create-firestore.mixin';
|
|
6
|
+
export * from './with-update-firestore.mixin';
|
|
7
|
+
export * from './with-delete-firestore.mixin';
|
|
8
|
+
export * from './with-sub-collection.mixin';
|
|
9
|
+
export * from './with-crud-firestore.mixin';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DocumentReference } from '@firebase/firestore-types';
|
|
2
|
+
import { BaseModelWithIdentifier } from '../../../../domain';
|
|
3
|
+
import { FirestoreHelpers, FirestoreRepository } from '../types';
|
|
4
|
+
import { MixinCtor } from '../../../../utils';
|
|
5
|
+
export declare const withCreateFirestore: <TBase extends BaseModelWithIdentifier<TBase>, TMixinBase extends MixinCtor<{}>>(MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase) => {
|
|
6
|
+
new (...args: any[]): {
|
|
7
|
+
create(data: Partial<TBase>): Promise<TBase>;
|
|
8
|
+
save(data: TBase): Promise<DocumentReference<TBase>>;
|
|
9
|
+
buildCollectionPathForAdd(identifiers: Partial<TBase>): string;
|
|
10
|
+
readonly firestore?: import("@firebase/firestore-types").FirebaseFirestore;
|
|
11
|
+
collectionName: string;
|
|
12
|
+
model: import("../../../../domain").BaseModelBuilder<TBase>;
|
|
13
|
+
collection(path?: string): import("@firebase/firestore-types").CollectionReference<TBase>;
|
|
14
|
+
toArray<T extends BaseModelWithIdentifier<T>>(snapShot: import("@firebase/firestore-types").QuerySnapshot<T> | import("@firebase/firestore-types").QueryDocumentSnapshot<T>[]): T[];
|
|
15
|
+
isSubCollection<T_1 extends BaseModelWithIdentifier<T_1>>(repository: FirestoreRepository<T_1>): repository is import("../types").FirestoreSubRepository<T_1, BaseModelWithIdentifier<{}>>;
|
|
16
|
+
};
|
|
17
|
+
} & TMixinBase;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { BaseModelWithIdentifier } from '../../../../domain';
|
|
2
|
+
import { FirestoreHelpers, FirestoreRepository } from '../types';
|
|
3
|
+
import { MixinCtor } from '../../../../utils';
|
|
4
|
+
export declare const withCrudFirestore: <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
|
+
get(identifiers: import("../../../../domain").NonFunctionProperties<TBase>): Promise<TBase>;
|
|
15
|
+
buildCollectionPathForGet(identifiers: import("../../../../domain").NonFunctionProperties<TBase>): string;
|
|
16
|
+
find(filters?: import("../../../../domain").RepositoryFindFielters<TBase>[], limits?: import("../../../../domain").RepositoryLimitOptions<TBase>, orderBy?: import("../../../../domain").RepositoryOrderByList<TBase>): Promise<import("../../../../domain").RepositoryFindResult<TBase>>;
|
|
17
|
+
buildCollectionPathForFind(filters: import("../../../../domain").RepositoryFindFielters<TBase>[]): string;
|
|
18
|
+
makeFirestoreWhere: (queryReference: import("@firebase/firestore-types").CollectionReference<TBase> | import("@firebase/firestore-types").Query<TBase>, filter: import("../../../../domain").RepositoryFindFielters<TBase>) => import("@firebase/firestore-types").Query<TBase>;
|
|
19
|
+
buildWhereSentence: (queryReference: import("@firebase/firestore-types").CollectionReference<TBase> | import("@firebase/firestore-types").Query<TBase>, fieldName: import("../../../../domain").NonFunctionPropertyNames<TBase>, options: import("../../../../domain").RepositoryFindFieltersOptions<TBase, import("../../../../domain").NonFunctionPropertyNames<TBase>>) => import("@firebase/firestore-types").Query<TBase>;
|
|
20
|
+
defineLimits(query: import("@firebase/firestore-types").CollectionReference<TBase> | import("@firebase/firestore-types").Query<TBase>, filters: import("../../../../domain").RepositoryFindFielters<TBase>[], limits: import("../../../../domain").RepositoryLimitOptions<TBase>): import("@firebase/firestore-types").Query<TBase>;
|
|
21
|
+
calculateCount(data: TBase[], limits: import("../../../../domain").RepositoryLimitOptions<TBase>): number;
|
|
22
|
+
delete(identifiers: import("../../../../domain").NonFunctionProperties<TBase>): Promise<void>;
|
|
23
|
+
buildCollectionPathForRemove(identifiers: import("../../../../domain").NonFunctionProperties<TBase>): string;
|
|
24
|
+
create(data: Partial<TBase>): Promise<TBase>;
|
|
25
|
+
save(data: TBase): Promise<import("@firebase/firestore-types").DocumentReference<TBase>>;
|
|
26
|
+
buildCollectionPathForAdd(identifiers: Partial<TBase>): string;
|
|
27
|
+
};
|
|
28
|
+
} & TMixinBase;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseModelWithIdentifier, NonFunctionProperties } from '../../../../domain';
|
|
2
|
+
import { FirestoreHelpers, FirestoreRepository } from '../types';
|
|
3
|
+
import { MixinCtor } from '../../../../utils';
|
|
4
|
+
export declare const withDeleteFirestore: <TBase extends BaseModelWithIdentifier<TBase>, TMixinBase extends MixinCtor<{}>>(MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase) => {
|
|
5
|
+
new (...args: any[]): {
|
|
6
|
+
delete(identifiers: NonFunctionProperties<TBase>): Promise<void>;
|
|
7
|
+
buildCollectionPathForRemove(identifiers: NonFunctionProperties<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,20 @@
|
|
|
1
|
+
import { CollectionReference, Query } from '@firebase/firestore-types';
|
|
2
|
+
import { BaseModelWithIdentifier, NonFunctionPropertyNames, RepositoryFindFielters, RepositoryFindFieltersOptions, RepositoryFindResult, RepositoryLimitOptions, RepositoryOrderByList } from '../../../../domain';
|
|
3
|
+
import { FirestoreHelpers, FirestoreRepository } from '../types';
|
|
4
|
+
import { MixinCtor } from '../../../../utils';
|
|
5
|
+
export declare const withFindFirestore: <TBase extends BaseModelWithIdentifier<TBase>, TMixinBase extends MixinCtor<{}>>(MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase) => {
|
|
6
|
+
new (...args: any[]): {
|
|
7
|
+
find(filters?: RepositoryFindFielters<TBase>[], limits?: RepositoryLimitOptions<TBase>, orderBy?: RepositoryOrderByList<TBase>): Promise<RepositoryFindResult<TBase>>;
|
|
8
|
+
buildCollectionPathForFind(filters: RepositoryFindFielters<TBase>[]): string;
|
|
9
|
+
makeFirestoreWhere: (queryReference: CollectionReference<TBase> | Query<TBase>, filter: RepositoryFindFielters<TBase>) => Query<TBase>;
|
|
10
|
+
buildWhereSentence: (queryReference: CollectionReference<TBase> | Query<TBase>, fieldName: NonFunctionPropertyNames<TBase>, options: RepositoryFindFieltersOptions<TBase, NonFunctionPropertyNames<TBase>>) => Query<TBase>;
|
|
11
|
+
defineLimits(query: CollectionReference<TBase> | Query<TBase>, filters: RepositoryFindFielters<TBase>[], limits: RepositoryLimitOptions<TBase>): Query<TBase>;
|
|
12
|
+
calculateCount(data: TBase[], limits: RepositoryLimitOptions<TBase>): number;
|
|
13
|
+
readonly firestore?: import("@firebase/firestore-types").FirebaseFirestore;
|
|
14
|
+
collectionName: string;
|
|
15
|
+
model: import("../../../../domain").BaseModelBuilder<TBase>;
|
|
16
|
+
collection(path?: string): CollectionReference<TBase>;
|
|
17
|
+
toArray<T extends BaseModelWithIdentifier<T>>(snapShot: import("@firebase/firestore-types").QuerySnapshot<T> | import("@firebase/firestore-types").QueryDocumentSnapshot<T>[]): T[];
|
|
18
|
+
isSubCollection<T_1 extends BaseModelWithIdentifier<T_1>>(repository: FirestoreRepository<T_1>): repository is import("../types").FirestoreSubRepository<T_1, BaseModelWithIdentifier<{}>>;
|
|
19
|
+
};
|
|
20
|
+
} & TMixinBase;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CollectionReference, DocumentData, FirebaseFirestore, QueryDocumentSnapshot } from '@firebase/firestore-types';
|
|
2
|
+
import { BaseModelBuilder, BaseModelWithIdentifier } from '../../../../domain';
|
|
3
|
+
import { MixinCtor } from '../../../../utils';
|
|
4
|
+
export declare const withFirestore: <TBase extends BaseModelWithIdentifier<TBase>>(MixinBase: MixinCtor) => {
|
|
5
|
+
new (...args: Array<any>): {
|
|
6
|
+
readonly firestore?: FirebaseFirestore;
|
|
7
|
+
collectionName: string;
|
|
8
|
+
model: BaseModelBuilder<TBase>;
|
|
9
|
+
collection(path?: string): CollectionReference<TBase>;
|
|
10
|
+
buildModelInstance(): {
|
|
11
|
+
toFirestore: (data: TBase) => DocumentData;
|
|
12
|
+
fromFirestore: (snap: QueryDocumentSnapshot<TBase>) => TBase;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseModelWithIdentifier, NonFunctionProperties } from '../../../../domain';
|
|
2
|
+
import { FirestoreHelpers, FirestoreRepository } from '../types';
|
|
3
|
+
import { MixinCtor } from '../../../../utils';
|
|
4
|
+
export declare const withGetFirestore: <TBase extends BaseModelWithIdentifier<TBase>, TMixinBase extends MixinCtor<{}>>(MixinBase: MixinCtor<FirestoreRepository<TBase> & FirestoreHelpers> & TMixinBase) => {
|
|
5
|
+
new (...args: any[]): {
|
|
6
|
+
get(identifiers: NonFunctionProperties<TBase>): Promise<TBase>;
|
|
7
|
+
buildCollectionPathForGet(identifiers: NonFunctionProperties<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,10 @@
|
|
|
1
|
+
import { QuerySnapshot, QueryDocumentSnapshot } from '@firebase/firestore-types';
|
|
2
|
+
import { BaseModelWithIdentifier } from '../../../../domain';
|
|
3
|
+
import { FirestoreRepository, FirestoreSubRepository } from '../types';
|
|
4
|
+
import { MixinCtor } from '../../../../utils';
|
|
5
|
+
export declare const withHelpers: <Model extends BaseModelWithIdentifier<Model>, TMixinBase extends MixinCtor<{}>>(MixinBase: MixinCtor<{}> & TMixinBase) => {
|
|
6
|
+
new (...args: any[]): {
|
|
7
|
+
toArray<T extends BaseModelWithIdentifier<T>>(snapShot: QuerySnapshot<T> | QueryDocumentSnapshot<T>[]): T[];
|
|
8
|
+
isSubCollection<T_2 extends BaseModelWithIdentifier<T_2>>(repository: FirestoreRepository<T_2>): repository is FirestoreSubRepository<T_2, BaseModelWithIdentifier<{}>>;
|
|
9
|
+
};
|
|
10
|
+
} & TMixinBase;
|