@goatlab/fluent-firebase 0.6.1 → 0.6.2

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 (54) hide show
  1. package/dist/Firebase.d.ts +5 -0
  2. package/dist/Firebase.js +9 -0
  3. package/dist/FirebaseConnector.d.ts +42 -0
  4. package/dist/FirebaseConnector.js +395 -0
  5. package/dist/FirebaseInit.d.ts +8 -0
  6. package/dist/FirebaseInit.js +30 -0
  7. package/dist/firebaseConnector.http_spec.d.ts +1 -0
  8. package/dist/firebaseConnector.http_spec.js +37 -0
  9. package/dist/index.d.ts +3 -0
  10. package/dist/index.js +0 -1
  11. package/dist/test/advanced/advancedTestSuite.d.ts +1 -0
  12. package/dist/test/advanced/advancedTestSuite.js +114 -0
  13. package/dist/test/advanced/firebase.repository.d.ts +5 -0
  14. package/dist/test/advanced/firebase.repository.js +11 -0
  15. package/dist/test/advanced/typeOrm.entity.d.ts +16 -0
  16. package/dist/test/advanced/typeOrm.entity.js +57 -0
  17. package/dist/test/basic/basicTestSuite.d.ts +1 -0
  18. package/dist/test/basic/basicTestSuite.js +45 -0
  19. package/dist/test/basic/goat.dto.d.ts +8 -0
  20. package/dist/test/basic/goat.dto.js +18 -0
  21. package/dist/test/basic/goat.entity.d.ts +10 -0
  22. package/dist/test/basic/goat.entity.js +41 -0
  23. package/dist/test/flock.d.ts +4 -0
  24. package/dist/test/flock.js +25 -0
  25. package/dist/test/goat.repository.d.ts +6 -0
  26. package/dist/test/goat.repository.js +11 -0
  27. package/dist/test/relations/car/car.dto.d.ts +5 -0
  28. package/dist/test/relations/car/car.dto.js +12 -0
  29. package/dist/test/relations/car/car.entity.d.ts +7 -0
  30. package/dist/test/relations/car/car.entity.js +32 -0
  31. package/dist/test/relations/car/car.repositoryFirebase.d.ts +8 -0
  32. package/dist/test/relations/car/car.repositoryFirebase.js +13 -0
  33. package/dist/test/relations/relationsTestsSuite.d.ts +1 -0
  34. package/dist/test/relations/relationsTestsSuite.js +93 -0
  35. package/dist/test/relations/roles/role.dto.d.ts +5 -0
  36. package/dist/test/relations/roles/role.dto.js +12 -0
  37. package/dist/test/relations/roles/roles.entity.d.ts +6 -0
  38. package/dist/test/relations/roles/roles.entity.js +29 -0
  39. package/dist/test/relations/roles/roles.repositoryFirebase.d.ts +8 -0
  40. package/dist/test/relations/roles/roles.repositoryFirebase.js +14 -0
  41. package/dist/test/relations/roles/roles_user.dto.d.ts +5 -0
  42. package/dist/test/relations/roles/roles_user.dto.js +12 -0
  43. package/dist/test/relations/roles/roles_user.entity.d.ts +5 -0
  44. package/dist/test/relations/roles/roles_user.entity.js +23 -0
  45. package/dist/test/relations/roles/roles_users.repositoryFirebase.d.ts +6 -0
  46. package/dist/test/relations/roles/roles_users.repositoryFirebase.js +11 -0
  47. package/dist/test/relations/user/user.dto.d.ts +5 -0
  48. package/dist/test/relations/user/user.dto.js +12 -0
  49. package/dist/test/relations/user/user.entity.d.ts +14 -0
  50. package/dist/test/relations/user/user.entity.js +56 -0
  51. package/dist/test/relations/user/user.repositoryFirebase.d.ts +10 -0
  52. package/dist/test/relations/user/user.repositoryFirebase.js +16 -0
  53. package/dist/tsconfig.tsbuildinfo +1 -0
  54. package/package.json +5 -5
@@ -0,0 +1,16 @@
1
+ export declare class FurtherNested {
2
+ c: boolean;
3
+ d: number[];
4
+ }
5
+ export declare class Nested {
6
+ a: number[];
7
+ c: number;
8
+ b?: FurtherNested;
9
+ }
10
+ export declare class TypeORMDataModel {
11
+ id: string;
12
+ created?: string;
13
+ nestedTest?: Nested;
14
+ order?: number;
15
+ test: boolean;
16
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TypeORMDataModel = exports.Nested = exports.FurtherNested = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fluent_1 = require("@goatlab/fluent");
6
+ class FurtherNested {
7
+ }
8
+ tslib_1.__decorate([
9
+ fluent_1.Decorators.property({ required: true }),
10
+ tslib_1.__metadata("design:type", Boolean)
11
+ ], FurtherNested.prototype, "c", void 0);
12
+ tslib_1.__decorate([
13
+ fluent_1.Decorators.array({ required: true }),
14
+ tslib_1.__metadata("design:type", Array)
15
+ ], FurtherNested.prototype, "d", void 0);
16
+ exports.FurtherNested = FurtherNested;
17
+ class Nested {
18
+ }
19
+ tslib_1.__decorate([
20
+ fluent_1.Decorators.array({ required: true }),
21
+ tslib_1.__metadata("design:type", Array)
22
+ ], Nested.prototype, "a", void 0);
23
+ tslib_1.__decorate([
24
+ fluent_1.Decorators.property({ required: true }),
25
+ tslib_1.__metadata("design:type", Number)
26
+ ], Nested.prototype, "c", void 0);
27
+ tslib_1.__decorate([
28
+ fluent_1.Decorators.embed(FurtherNested),
29
+ tslib_1.__metadata("design:type", FurtherNested)
30
+ ], Nested.prototype, "b", void 0);
31
+ exports.Nested = Nested;
32
+ let TypeORMDataModel = class TypeORMDataModel {
33
+ };
34
+ tslib_1.__decorate([
35
+ fluent_1.Decorators.id(),
36
+ tslib_1.__metadata("design:type", String)
37
+ ], TypeORMDataModel.prototype, "id", void 0);
38
+ tslib_1.__decorate([
39
+ fluent_1.Decorators.property({ required: false }),
40
+ tslib_1.__metadata("design:type", String)
41
+ ], TypeORMDataModel.prototype, "created", void 0);
42
+ tslib_1.__decorate([
43
+ fluent_1.Decorators.embed(Nested),
44
+ tslib_1.__metadata("design:type", Nested)
45
+ ], TypeORMDataModel.prototype, "nestedTest", void 0);
46
+ tslib_1.__decorate([
47
+ fluent_1.Decorators.property({ required: false }),
48
+ tslib_1.__metadata("design:type", Number)
49
+ ], TypeORMDataModel.prototype, "order", void 0);
50
+ tslib_1.__decorate([
51
+ fluent_1.Decorators.property({ required: true }),
52
+ tslib_1.__metadata("design:type", Boolean)
53
+ ], TypeORMDataModel.prototype, "test", void 0);
54
+ TypeORMDataModel = tslib_1.__decorate([
55
+ fluent_1.Decorators.entity('numbers')
56
+ ], TypeORMDataModel);
57
+ exports.TypeORMDataModel = TypeORMDataModel;
@@ -0,0 +1 @@
1
+ export declare const basicTestSuite: (Model: any) => void;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.basicTestSuite = void 0;
4
+ const flock_1 = require("../flock");
5
+ const basicTestSuite = Model => {
6
+ let storedId;
7
+ beforeAll(() => {
8
+ Model = new Model();
9
+ });
10
+ test('Get - Should GET data', async () => {
11
+ const storedGoats = await Model.get();
12
+ expect(Array.isArray(storedGoats)).toBe(true);
13
+ });
14
+ test('Insert - Should insert data', async () => {
15
+ const a = await Model.insert({ name: 'myGoat', age: 13 });
16
+ expect(typeof a.id).toBe('string');
17
+ expect(a.name).toBe('myGoat');
18
+ expect(0).toBe(0);
19
+ });
20
+ it('Create Multiple - Should insert Multiple elements', async () => {
21
+ const insertedFlock = await Model.insertMany(flock_1.flock);
22
+ expect(insertedFlock[0].name).toBe('Goatee');
23
+ storedId = insertedFlock[0].id;
24
+ });
25
+ it('UpdateById - Should Update a single element', async () => {
26
+ await Model.insertMany(flock_1.flock);
27
+ const goats = await Model.get();
28
+ const data = await Model.updateById(goats[0].id, {
29
+ age: 99,
30
+ name: 'MyUpdatedGoat'
31
+ });
32
+ expect(data.name).toBe('MyUpdatedGoat');
33
+ expect(data.id).toBe(goats[0].id);
34
+ });
35
+ it('ReplaceById - Should Update a single element', async () => {
36
+ await Model.insertMany(flock_1.flock);
37
+ const goats = await Model.get();
38
+ const data = await Model.updateById(goats[0].id, {
39
+ name: 'MyUpdatedGoat'
40
+ });
41
+ expect(data.name).toBe('MyUpdatedGoat');
42
+ expect(data.id).toBe(goats[0].id);
43
+ });
44
+ };
45
+ exports.basicTestSuite = basicTestSuite;
@@ -0,0 +1,8 @@
1
+ import { GoatEntity } from './goat.entity';
2
+ declare const GoatEntityOut_base: import("@goatlab/fluent/dist/core/Nestjs/types/common").Type<Omit<GoatEntity, never>>;
3
+ export declare class GoatEntityOut extends GoatEntityOut_base {
4
+ }
5
+ declare const GoatEntityIn_base: import("@goatlab/fluent/dist/core/Nestjs/types/common").Type<Omit<GoatEntity, "id">>;
6
+ export declare class GoatEntityIn extends GoatEntityIn_base {
7
+ }
8
+ export {};
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoatEntityIn = exports.GoatEntityOut = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const goat_entity_1 = require("./goat.entity");
6
+ const fluent_1 = require("@goatlab/fluent");
7
+ let GoatEntityOut = class GoatEntityOut extends (0, fluent_1.OmitType)(goat_entity_1.GoatEntity, []) {
8
+ };
9
+ GoatEntityOut = tslib_1.__decorate([
10
+ (0, fluent_1.InputType)()
11
+ ], GoatEntityOut);
12
+ exports.GoatEntityOut = GoatEntityOut;
13
+ let GoatEntityIn = class GoatEntityIn extends (0, fluent_1.OmitType)(goat_entity_1.GoatEntity, ['id']) {
14
+ };
15
+ GoatEntityIn = tslib_1.__decorate([
16
+ (0, fluent_1.InputType)()
17
+ ], GoatEntityIn);
18
+ exports.GoatEntityIn = GoatEntityIn;
@@ -0,0 +1,10 @@
1
+ export declare class Breed {
2
+ family?: string;
3
+ members?: number;
4
+ }
5
+ export declare class GoatEntity {
6
+ id: string;
7
+ name: string;
8
+ age?: number;
9
+ breed?: Breed;
10
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoatEntity = exports.Breed = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fluent_1 = require("@goatlab/fluent");
6
+ let Breed = class Breed {
7
+ };
8
+ tslib_1.__decorate([
9
+ fluent_1.Decorators.property({ required: false }),
10
+ tslib_1.__metadata("design:type", String)
11
+ ], Breed.prototype, "family", void 0);
12
+ tslib_1.__decorate([
13
+ fluent_1.Decorators.property({ required: false }),
14
+ tslib_1.__metadata("design:type", Number)
15
+ ], Breed.prototype, "members", void 0);
16
+ Breed = tslib_1.__decorate([
17
+ (0, fluent_1.ObjectType)()
18
+ ], Breed);
19
+ exports.Breed = Breed;
20
+ let GoatEntity = class GoatEntity {
21
+ };
22
+ tslib_1.__decorate([
23
+ fluent_1.Decorators.id(),
24
+ tslib_1.__metadata("design:type", String)
25
+ ], GoatEntity.prototype, "id", void 0);
26
+ tslib_1.__decorate([
27
+ fluent_1.Decorators.property({ required: true }),
28
+ tslib_1.__metadata("design:type", String)
29
+ ], GoatEntity.prototype, "name", void 0);
30
+ tslib_1.__decorate([
31
+ fluent_1.Decorators.property({ required: false }),
32
+ tslib_1.__metadata("design:type", Number)
33
+ ], GoatEntity.prototype, "age", void 0);
34
+ tslib_1.__decorate([
35
+ fluent_1.Decorators.embed(Breed),
36
+ tslib_1.__metadata("design:type", Breed)
37
+ ], GoatEntity.prototype, "breed", void 0);
38
+ GoatEntity = tslib_1.__decorate([
39
+ fluent_1.Decorators.entity('goat')
40
+ ], GoatEntity);
41
+ exports.GoatEntity = GoatEntity;
@@ -0,0 +1,4 @@
1
+ export declare const flock: {
2
+ age: number;
3
+ name: string;
4
+ }[];
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.flock = void 0;
4
+ exports.flock = [
5
+ {
6
+ age: 3,
7
+ name: 'Goatee'
8
+ },
9
+ {
10
+ age: 4,
11
+ name: 'GoaToHell'
12
+ },
13
+ {
14
+ age: 5,
15
+ name: 'Oh!MyGoat'
16
+ },
17
+ {
18
+ age: 3,
19
+ name: 'A'
20
+ },
21
+ {
22
+ age: 2,
23
+ name: 'B'
24
+ }
25
+ ];
@@ -0,0 +1,6 @@
1
+ import { GoatEntityIn, GoatEntityOut } from '../test/basic/goat.dto';
2
+ import { FirebaseConnector } from '../FirebaseConnector';
3
+ import { GoatEntity } from '../test/basic/goat.entity';
4
+ export declare class GoatEntityRepository extends FirebaseConnector<GoatEntity, GoatEntityIn, GoatEntityOut> {
5
+ constructor(relations?: any);
6
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GoatEntityRepository = void 0;
4
+ const FirebaseConnector_1 = require("../FirebaseConnector");
5
+ const goat_entity_1 = require("../test/basic/goat.entity");
6
+ class GoatEntityRepository extends FirebaseConnector_1.FirebaseConnector {
7
+ constructor(relations) {
8
+ super(goat_entity_1.GoatEntity, relations);
9
+ }
10
+ }
11
+ exports.GoatEntityRepository = GoatEntityRepository;
@@ -0,0 +1,5 @@
1
+ import { CarsEntity } from './car.entity';
2
+ declare const CarsEntityIn_base: import("@goatlab/fluent/dist/core/Nestjs/types/common").Type<Omit<CarsEntity, "id">>;
3
+ export declare class CarsEntityIn extends CarsEntityIn_base {
4
+ }
5
+ export {};
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CarsEntityIn = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fluent_1 = require("@goatlab/fluent");
6
+ const car_entity_1 = require("./car.entity");
7
+ let CarsEntityIn = class CarsEntityIn extends (0, fluent_1.OmitType)(car_entity_1.CarsEntity, ['id']) {
8
+ };
9
+ CarsEntityIn = tslib_1.__decorate([
10
+ (0, fluent_1.InputType)()
11
+ ], CarsEntityIn);
12
+ exports.CarsEntityIn = CarsEntityIn;
@@ -0,0 +1,7 @@
1
+ import { UsersEntity } from '../user/user.entity';
2
+ export declare class CarsEntity {
3
+ id: string;
4
+ name: string;
5
+ userId?: string;
6
+ user?: UsersEntity;
7
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CarsEntity = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fluent_1 = require("@goatlab/fluent");
6
+ const user_entity_1 = require("../user/user.entity");
7
+ let CarsEntity = class CarsEntity {
8
+ };
9
+ tslib_1.__decorate([
10
+ fluent_1.Decorators.id(),
11
+ tslib_1.__metadata("design:type", String)
12
+ ], CarsEntity.prototype, "id", void 0);
13
+ tslib_1.__decorate([
14
+ fluent_1.Decorators.property({ required: true }),
15
+ tslib_1.__metadata("design:type", String)
16
+ ], CarsEntity.prototype, "name", void 0);
17
+ tslib_1.__decorate([
18
+ fluent_1.Decorators.property({ required: true }),
19
+ tslib_1.__metadata("design:type", String)
20
+ ], CarsEntity.prototype, "userId", void 0);
21
+ tslib_1.__decorate([
22
+ fluent_1.Decorators.belongsTo({
23
+ entity: () => user_entity_1.UsersEntity,
24
+ inverse: user => user.cars,
25
+ pivotColumnName: 'userId'
26
+ }),
27
+ tslib_1.__metadata("design:type", user_entity_1.UsersEntity)
28
+ ], CarsEntity.prototype, "user", void 0);
29
+ CarsEntity = tslib_1.__decorate([
30
+ fluent_1.Decorators.entity('cars')
31
+ ], CarsEntity);
32
+ exports.CarsEntity = CarsEntity;
@@ -0,0 +1,8 @@
1
+ import { CarsEntity } from './car.entity';
2
+ import { CarsEntityIn } from './car.dto';
3
+ import { FirebaseConnector } from '../../../FirebaseConnector';
4
+ import { UserRepository } from '../user/user.repositoryFirebase';
5
+ export declare class CarsRepository extends FirebaseConnector<CarsEntity, CarsEntityIn> {
6
+ constructor(relationQuery?: any);
7
+ user: () => UserRepository;
8
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CarsRepository = void 0;
4
+ const car_entity_1 = require("./car.entity");
5
+ const FirebaseConnector_1 = require("../../../FirebaseConnector");
6
+ const user_repositoryFirebase_1 = require("../user/user.repositoryFirebase");
7
+ class CarsRepository extends FirebaseConnector_1.FirebaseConnector {
8
+ constructor(relationQuery) {
9
+ super(car_entity_1.CarsEntity, relationQuery);
10
+ this.user = () => this.belongsTo(user_repositoryFirebase_1.UserRepository, 'user');
11
+ }
12
+ }
13
+ exports.CarsRepository = CarsRepository;
@@ -0,0 +1 @@
1
+ export declare const relationsTestSuite: (Model: any, BelongsToModel: any, ManyToManyModel: any) => void;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.relationsTestSuite = void 0;
4
+ const relationsTestSuite = (Model, BelongsToModel, ManyToManyModel) => {
5
+ beforeAll(() => {
6
+ Model = new Model();
7
+ BelongsToModel = new BelongsToModel();
8
+ ManyToManyModel = new ManyToManyModel();
9
+ });
10
+ test('Attach - OneToMany - Should insert data', async () => {
11
+ const insertedUser = await Model.insert({
12
+ name: 'testUser',
13
+ age: 20
14
+ });
15
+ expect(typeof insertedUser.id).toBe('string');
16
+ const user = await Model.where(Model.cars()._keys.id, '=', insertedUser.id).load();
17
+ const cars = await user.cars().attach({ name: 'Another new car' });
18
+ expect(Array.isArray(cars)).toBe(true);
19
+ expect(cars[0].name).toBe('Another new car');
20
+ });
21
+ test('Query related model - OneToMany', async () => {
22
+ const insertedUser = await Model.insert({
23
+ name: 'testUser',
24
+ age: 20
25
+ });
26
+ expect(typeof insertedUser.id).toBe('string');
27
+ const user1 = await Model.where(Model._keys.id, '=', insertedUser.id).load();
28
+ const cars = await user1.cars().attach({ name: 'My new car' });
29
+ expect(Array.isArray(cars)).toBe(true);
30
+ const searchUserWithRelation = await Model.where(Model._keys.id, '=', insertedUser.id)
31
+ .with({ cars: true })
32
+ .get();
33
+ expect(Array.isArray(searchUserWithRelation[0].cars)).toBe(true);
34
+ expect(searchUserWithRelation[0].cars.length > 0).toBe(true);
35
+ const searchCar = await user1
36
+ .cars()
37
+ .where(Model.cars()._keys.name, '=', 'My new car')
38
+ .get();
39
+ expect(Array.isArray(searchCar)).toBe(true);
40
+ expect(searchCar.length > 0).toBe(true);
41
+ const searchCar2 = await user1
42
+ .cars()
43
+ .where(Model.cars()._keys.name, '=', 'My.......')
44
+ .get();
45
+ expect(Array.isArray(searchCar2)).toBe(true);
46
+ expect(searchCar2.length === 0).toBe(true);
47
+ });
48
+ test('Query related model - BelongTo', async () => {
49
+ const insertedUser = await Model.insert({
50
+ name: 'testUser',
51
+ age: 20
52
+ });
53
+ expect(typeof insertedUser.id).toBe('string');
54
+ const user1 = await Model.where(Model.cars()._keys.id, '=', insertedUser.id).load();
55
+ await user1.cars().attach({ name: 'My new car' });
56
+ const results = await BelongsToModel.with({ users: true }).get();
57
+ expect(Array.isArray(results)).toBe(true);
58
+ expect(results.length > 0).toBe(true);
59
+ expect(typeof results[0].user.name).toBe('string');
60
+ });
61
+ test('Query related model - ManyToMany', async () => {
62
+ const insertedUser = await Model.insert({
63
+ name: 'testUser',
64
+ age: 20
65
+ });
66
+ expect(typeof insertedUser.id).toBe('string');
67
+ const adminRole = await ManyToManyModel.insert({
68
+ name: 'Administrator'
69
+ });
70
+ const user = await Model.where(Model._keys.id, '=', insertedUser.id).load();
71
+ const associated = await user.roles().associate(adminRole.id);
72
+ expect(associated[0].userId).toBe(insertedUser.id);
73
+ expect(associated[0].roleId).toBe(adminRole.id);
74
+ const searchUserWithRelation = await Model.where(Model._keys.id, '=', insertedUser.id)
75
+ .with({
76
+ roles: true
77
+ })
78
+ .get();
79
+ expect(Array.isArray(searchUserWithRelation[0].roles)).toBe(true);
80
+ expect(searchUserWithRelation[0].roles.length > 0).toBe(true);
81
+ expect(typeof searchUserWithRelation[0].roles[0].name).toBe('string');
82
+ const roles = await ManyToManyModel.where(ManyToManyModel._keys.name, '=', 'Administrator')
83
+ .with({
84
+ users: true
85
+ })
86
+ .get();
87
+ expect(Array.isArray(roles)).toBe(true);
88
+ expect(roles.length > 0).toBe(true);
89
+ expect(typeof roles[0].users[0].name).toBe('string');
90
+ expect(typeof roles[0].users[0].age).toBe('number');
91
+ });
92
+ };
93
+ exports.relationsTestSuite = relationsTestSuite;
@@ -0,0 +1,5 @@
1
+ import { RoleEntity } from './roles.entity';
2
+ declare const RoleEntityIn_base: import("@goatlab/fluent/dist/core/Nestjs/types/common").Type<Omit<RoleEntity, "id">>;
3
+ export declare class RoleEntityIn extends RoleEntityIn_base {
4
+ }
5
+ export {};
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoleEntityIn = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fluent_1 = require("@goatlab/fluent");
6
+ const roles_entity_1 = require("./roles.entity");
7
+ let RoleEntityIn = class RoleEntityIn extends (0, fluent_1.OmitType)(roles_entity_1.RoleEntity, ['id']) {
8
+ };
9
+ RoleEntityIn = tslib_1.__decorate([
10
+ (0, fluent_1.InputType)()
11
+ ], RoleEntityIn);
12
+ exports.RoleEntityIn = RoleEntityIn;
@@ -0,0 +1,6 @@
1
+ import { UsersEntity } from '../user/user.entity';
2
+ export declare class RoleEntity {
3
+ id: string;
4
+ name: string;
5
+ users?: UsersEntity[];
6
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoleEntity = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fluent_1 = require("@goatlab/fluent");
6
+ const user_entity_1 = require("../user/user.entity");
7
+ let RoleEntity = class RoleEntity {
8
+ };
9
+ tslib_1.__decorate([
10
+ fluent_1.Decorators.id(),
11
+ tslib_1.__metadata("design:type", String)
12
+ ], RoleEntity.prototype, "id", void 0);
13
+ tslib_1.__decorate([
14
+ fluent_1.Decorators.property({ required: true }),
15
+ tslib_1.__metadata("design:type", String)
16
+ ], RoleEntity.prototype, "name", void 0);
17
+ tslib_1.__decorate([
18
+ fluent_1.Decorators.belongsToMany({
19
+ entity: () => user_entity_1.UsersEntity,
20
+ joinTableName: 'roles_users',
21
+ foreignKey: 'roleId',
22
+ inverseForeignKey: 'userId'
23
+ }),
24
+ tslib_1.__metadata("design:type", Array)
25
+ ], RoleEntity.prototype, "users", void 0);
26
+ RoleEntity = tslib_1.__decorate([
27
+ fluent_1.Decorators.entity('roles')
28
+ ], RoleEntity);
29
+ exports.RoleEntity = RoleEntity;
@@ -0,0 +1,8 @@
1
+ import { FirebaseConnector } from '../../../FirebaseConnector';
2
+ import { RoleEntity } from './roles.entity';
3
+ import { RoleEntityIn } from './role.dto';
4
+ import { UserRepository } from '../user/user.repositoryFirebase';
5
+ export declare class RoleRepository extends FirebaseConnector<RoleEntity, RoleEntityIn> {
6
+ constructor(relations?: any);
7
+ users: () => UserRepository;
8
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoleRepository = void 0;
4
+ const FirebaseConnector_1 = require("../../../FirebaseConnector");
5
+ const roles_entity_1 = require("./roles.entity");
6
+ const roles_users_repositoryFirebase_1 = require("./roles_users.repositoryFirebase");
7
+ const user_repositoryFirebase_1 = require("../user/user.repositoryFirebase");
8
+ class RoleRepository extends FirebaseConnector_1.FirebaseConnector {
9
+ constructor(relations) {
10
+ super(roles_entity_1.RoleEntity, relations);
11
+ this.users = () => this.belongsToMany(user_repositoryFirebase_1.UserRepository, roles_users_repositoryFirebase_1.RoleUsersRepository, 'users');
12
+ }
13
+ }
14
+ exports.RoleRepository = RoleRepository;
@@ -0,0 +1,5 @@
1
+ import { RolesUser } from './roles_user.entity';
2
+ declare const RoleUserEntityIn_base: import("@goatlab/fluent/dist/core/Nestjs/types/common").Type<Omit<RolesUser, "id">>;
3
+ export declare class RoleUserEntityIn extends RoleUserEntityIn_base {
4
+ }
5
+ export {};
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoleUserEntityIn = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fluent_1 = require("@goatlab/fluent");
6
+ const roles_user_entity_1 = require("./roles_user.entity");
7
+ let RoleUserEntityIn = class RoleUserEntityIn extends (0, fluent_1.OmitType)(roles_user_entity_1.RolesUser, ['id']) {
8
+ };
9
+ RoleUserEntityIn = tslib_1.__decorate([
10
+ (0, fluent_1.InputType)()
11
+ ], RoleUserEntityIn);
12
+ exports.RoleUserEntityIn = RoleUserEntityIn;
@@ -0,0 +1,5 @@
1
+ export declare class RolesUser {
2
+ id: string;
3
+ userId?: string;
4
+ roleId?: string;
5
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RolesUser = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fluent_1 = require("@goatlab/fluent");
6
+ let RolesUser = class RolesUser {
7
+ };
8
+ tslib_1.__decorate([
9
+ fluent_1.Decorators.id(),
10
+ tslib_1.__metadata("design:type", String)
11
+ ], RolesUser.prototype, "id", void 0);
12
+ tslib_1.__decorate([
13
+ fluent_1.Decorators.property({ required: false }),
14
+ tslib_1.__metadata("design:type", String)
15
+ ], RolesUser.prototype, "userId", void 0);
16
+ tslib_1.__decorate([
17
+ fluent_1.Decorators.property({ required: false }),
18
+ tslib_1.__metadata("design:type", String)
19
+ ], RolesUser.prototype, "roleId", void 0);
20
+ RolesUser = tslib_1.__decorate([
21
+ fluent_1.Decorators.entity('roles_users')
22
+ ], RolesUser);
23
+ exports.RolesUser = RolesUser;
@@ -0,0 +1,6 @@
1
+ import { FirebaseConnector } from '../../../FirebaseConnector';
2
+ import { RoleUserEntityIn } from './roles_user.dto';
3
+ import { RolesUser } from './roles_user.entity';
4
+ export declare class RoleUsersRepository extends FirebaseConnector<RolesUser, RoleUserEntityIn> {
5
+ constructor(relations?: any);
6
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoleUsersRepository = void 0;
4
+ const FirebaseConnector_1 = require("../../../FirebaseConnector");
5
+ const roles_user_entity_1 = require("./roles_user.entity");
6
+ class RoleUsersRepository extends FirebaseConnector_1.FirebaseConnector {
7
+ constructor(relations) {
8
+ super(roles_user_entity_1.RolesUser, relations);
9
+ }
10
+ }
11
+ exports.RoleUsersRepository = RoleUsersRepository;
@@ -0,0 +1,5 @@
1
+ import { UsersEntity } from './user.entity';
2
+ declare const UsersEntityIn_base: import("@goatlab/fluent/dist/core/Nestjs/types/common").Type<Omit<UsersEntity, "id">>;
3
+ export declare class UsersEntityIn extends UsersEntityIn_base {
4
+ }
5
+ export {};
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UsersEntityIn = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fluent_1 = require("@goatlab/fluent");
6
+ const user_entity_1 = require("./user.entity");
7
+ let UsersEntityIn = class UsersEntityIn extends (0, fluent_1.OmitType)(user_entity_1.UsersEntity, ['id']) {
8
+ };
9
+ UsersEntityIn = tslib_1.__decorate([
10
+ (0, fluent_1.InputType)()
11
+ ], UsersEntityIn);
12
+ exports.UsersEntityIn = UsersEntityIn;
@@ -0,0 +1,14 @@
1
+ import { CarsEntity } from '../car/car.entity';
2
+ import { RoleEntity } from '../roles/roles.entity';
3
+ export declare class Family {
4
+ family?: string;
5
+ members?: number;
6
+ }
7
+ export declare class UsersEntity {
8
+ id: string;
9
+ name: string;
10
+ age?: number;
11
+ breed?: Family;
12
+ cars?: CarsEntity[];
13
+ roles?: RoleEntity[];
14
+ }