@solidstarters/solid-core 1.2.46 → 1.2.47
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/dist/controllers/authentication.controller.d.ts +1 -0
- package/dist/controllers/authentication.controller.d.ts.map +1 -1
- package/dist/controllers/user-view-metadata.controller.d.ts +43 -0
- package/dist/controllers/user-view-metadata.controller.d.ts.map +1 -0
- package/dist/controllers/user-view-metadata.controller.js +192 -0
- package/dist/controllers/user-view-metadata.controller.js.map +1 -0
- package/dist/dtos/create-user-view-metadata.dto.d.ts +8 -0
- package/dist/dtos/create-user-view-metadata.dto.d.ts.map +1 -0
- package/dist/dtos/create-user-view-metadata.dto.js +57 -0
- package/dist/dtos/create-user-view-metadata.dto.js.map +1 -0
- package/dist/dtos/create-user.dto.d.ts +8 -0
- package/dist/dtos/create-user.dto.d.ts.map +1 -1
- package/dist/dtos/create-user.dto.js +78 -5
- package/dist/dtos/create-user.dto.js.map +1 -1
- package/dist/dtos/create-view-metadata.dto.d.ts +4 -0
- package/dist/dtos/create-view-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-view-metadata.dto.js +40 -3
- package/dist/dtos/create-view-metadata.dto.js.map +1 -1
- package/dist/dtos/selection-dynamic-query.dto.d.ts +1 -1
- package/dist/dtos/selection-dynamic-query.dto.d.ts.map +1 -1
- package/dist/dtos/selection-dynamic-query.dto.js +2 -3
- package/dist/dtos/selection-dynamic-query.dto.js.map +1 -1
- package/dist/dtos/update-user-view-metadata.dto.d.ts +9 -0
- package/dist/dtos/update-user-view-metadata.dto.d.ts.map +1 -0
- package/dist/dtos/update-user-view-metadata.dto.js +57 -0
- package/dist/dtos/update-user-view-metadata.dto.js.map +1 -0
- package/dist/dtos/update-user.dto.d.ts +8 -0
- package/dist/dtos/update-user.dto.d.ts.map +1 -1
- package/dist/dtos/update-user.dto.js +78 -7
- package/dist/dtos/update-user.dto.js.map +1 -1
- package/dist/dtos/update-view-metadata.dto.d.ts +4 -0
- package/dist/dtos/update-view-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/update-view-metadata.dto.js +40 -10
- package/dist/dtos/update-view-metadata.dto.js.map +1 -1
- package/dist/dtos/upsert-user-view-metadata.dto.d.ts +6 -0
- package/dist/dtos/upsert-user-view-metadata.dto.d.ts.map +1 -0
- package/dist/dtos/upsert-user-view-metadata.dto.js +40 -0
- package/dist/dtos/upsert-user-view-metadata.dto.js.map +1 -0
- package/dist/entities/user-view-metadata.entity.d.ts +9 -0
- package/dist/entities/user-view-metadata.entity.d.ts.map +1 -0
- package/dist/entities/user-view-metadata.entity.js +47 -0
- package/dist/entities/user-view-metadata.entity.js.map +1 -0
- package/dist/entities/user.entity.d.ts +2 -0
- package/dist/entities/user.entity.d.ts.map +1 -1
- package/dist/entities/user.entity.js +11 -9
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/entities/view-metadata.entity.d.ts +2 -0
- package/dist/entities/view-metadata.entity.d.ts.map +1 -1
- package/dist/entities/view-metadata.entity.js +15 -5
- package/dist/entities/view-metadata.entity.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +1 -1
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +279 -1
- package/dist/services/authentication.service.d.ts +1 -0
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/user-view-metadata.service.d.ts +24 -0
- package/dist/services/user-view-metadata.service.d.ts.map +1 -0
- package/dist/services/user-view-metadata.service.js +73 -0
- package/dist/services/user-view-metadata.service.js.map +1 -0
- package/dist/services/view-metadata.service.d.ts +3 -1
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +24 -7
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +7 -1
- package/dist/solid-core.module.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -6
- package/src/controllers/user-view-metadata.controller.ts +99 -0
- package/src/dtos/create-user-view-metadata.dto.ts +27 -0
- package/src/dtos/create-user.dto.ts +67 -33
- package/src/dtos/create-view-metadata.dto.ts +33 -12
- package/src/dtos/selection-dynamic-query.dto.ts +1 -1
- package/src/dtos/update-user-view-metadata.dto.ts +28 -0
- package/src/dtos/update-user.dto.ts +67 -36
- package/src/dtos/update-view-metadata.dto.ts +35 -19
- package/src/dtos/upsert-user-view-metadata.dto.ts +17 -0
- package/src/entities/user-view-metadata.entity.ts +18 -0
- package/src/entities/user.entity.ts +12 -40
- package/src/entities/view-metadata.entity.ts +12 -13
- package/src/index.ts +1 -0
- package/src/interfaces.ts +1 -1
- package/src/seeders/seed-data/solid-core-metadata.json +412 -144
- package/src/services/user-view-metadata.service.ts +54 -0
- package/src/services/view-metadata.service.ts +23 -2
- package/src/solid-core.module.ts +7 -1
|
@@ -1,50 +1,66 @@
|
|
|
1
|
-
import { IsInt, IsOptional, IsString, Matches, IsNotEmpty, IsJSON } from 'class-validator';
|
|
1
|
+
import { IsInt, IsOptional, IsString, Matches, IsNotEmpty, IsJSON, ValidateNested, IsArray } from 'class-validator';
|
|
2
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
3
|
+
import { Type } from 'class-transformer';
|
|
4
|
+
import { UpdateUserViewMetadataDto } from 'src/dtos/update-user-view-metadata.dto';
|
|
5
|
+
|
|
2
6
|
export class UpdateViewMetadataDto {
|
|
3
7
|
@IsOptional()
|
|
4
8
|
@IsInt()
|
|
5
9
|
id: number;
|
|
6
|
-
|
|
7
|
-
@IsOptional()
|
|
8
10
|
@IsNotEmpty()
|
|
11
|
+
@IsOptional()
|
|
9
12
|
@Matches(/[a-z]+(-[a-z]+)*/)
|
|
10
13
|
@IsString()
|
|
14
|
+
@ApiProperty()
|
|
11
15
|
name: string;
|
|
12
|
-
|
|
13
|
-
@IsOptional()
|
|
14
16
|
@IsNotEmpty()
|
|
17
|
+
@IsOptional()
|
|
15
18
|
@IsString()
|
|
19
|
+
@ApiProperty()
|
|
16
20
|
displayName: string;
|
|
17
|
-
|
|
18
|
-
@IsOptional()
|
|
19
21
|
@IsNotEmpty()
|
|
22
|
+
@IsOptional()
|
|
20
23
|
@IsString()
|
|
24
|
+
@ApiProperty()
|
|
21
25
|
type: string;
|
|
22
|
-
|
|
23
|
-
@IsOptional()
|
|
24
26
|
@IsNotEmpty()
|
|
27
|
+
@IsOptional()
|
|
25
28
|
@IsJSON()
|
|
29
|
+
@ApiProperty()
|
|
26
30
|
context: any;
|
|
27
|
-
|
|
28
|
-
@IsOptional()
|
|
29
31
|
@IsNotEmpty()
|
|
32
|
+
@IsOptional()
|
|
30
33
|
@IsJSON()
|
|
34
|
+
@ApiProperty()
|
|
31
35
|
layout: any;
|
|
32
|
-
|
|
33
36
|
@IsOptional()
|
|
34
|
-
@
|
|
37
|
+
@IsInt()
|
|
38
|
+
@ApiProperty()
|
|
35
39
|
moduleId: number;
|
|
36
|
-
|
|
37
|
-
@IsOptional()
|
|
38
40
|
@IsString()
|
|
39
41
|
@IsOptional()
|
|
42
|
+
@ApiProperty()
|
|
40
43
|
moduleUserKey: string;
|
|
41
|
-
|
|
42
44
|
@IsOptional()
|
|
43
|
-
@
|
|
45
|
+
@IsInt()
|
|
46
|
+
@ApiProperty()
|
|
44
47
|
modelId: number;
|
|
45
|
-
|
|
46
|
-
@IsOptional()
|
|
47
48
|
@IsString()
|
|
48
49
|
@IsOptional()
|
|
50
|
+
@ApiProperty()
|
|
49
51
|
modelUserKey: string;
|
|
52
|
+
@IsOptional()
|
|
53
|
+
@ApiProperty()
|
|
54
|
+
@IsArray()
|
|
55
|
+
@ValidateNested({ each: true })
|
|
56
|
+
@Type(() => UpdateUserViewMetadataDto)
|
|
57
|
+
userViewMetadata: UpdateUserViewMetadataDto[];
|
|
58
|
+
@IsOptional()
|
|
59
|
+
@IsArray()
|
|
60
|
+
@ApiProperty()
|
|
61
|
+
userViewMetadataIds: number[];
|
|
62
|
+
@IsString()
|
|
63
|
+
@IsOptional()
|
|
64
|
+
@ApiProperty()
|
|
65
|
+
userViewMetadataCommand: string;
|
|
50
66
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IsInt, IsOptional, IsJSON } from 'class-validator';
|
|
2
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
3
|
+
|
|
4
|
+
export class UpsertUserViewMetadataDto {
|
|
5
|
+
@IsOptional()
|
|
6
|
+
@IsInt()
|
|
7
|
+
@ApiProperty()
|
|
8
|
+
userId: number;
|
|
9
|
+
@IsOptional()
|
|
10
|
+
@IsInt()
|
|
11
|
+
@ApiProperty()
|
|
12
|
+
viewMetadataId: number;
|
|
13
|
+
@IsOptional()
|
|
14
|
+
@IsJSON()
|
|
15
|
+
@ApiProperty()
|
|
16
|
+
layout: any;
|
|
17
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CommonEntity } from 'src/entities/common.entity'
|
|
2
|
+
import { Entity, JoinColumn, ManyToOne, Index, Column } from 'typeorm';
|
|
3
|
+
import { ViewMetadata } from 'src/entities/view-metadata.entity';
|
|
4
|
+
import { User } from 'src/entities/user.entity'
|
|
5
|
+
|
|
6
|
+
@Entity("ss_user_view_metadata")
|
|
7
|
+
export class UserViewMetadata extends CommonEntity {
|
|
8
|
+
@Index()
|
|
9
|
+
@ManyToOne(() => User, { onDelete: "CASCADE", nullable: false })
|
|
10
|
+
@JoinColumn()
|
|
11
|
+
user: User;
|
|
12
|
+
@Column({ name: "layout", type: "text", nullable: true })
|
|
13
|
+
layout: any = "{}";
|
|
14
|
+
@Index()
|
|
15
|
+
@ManyToOne(() => ViewMetadata, { onDelete: "CASCADE", nullable: false })
|
|
16
|
+
@JoinColumn()
|
|
17
|
+
viewMetadata: ViewMetadata;
|
|
18
|
+
}
|
|
@@ -1,100 +1,72 @@
|
|
|
1
1
|
import { CommonEntity } from "src/entities/common.entity"
|
|
2
|
-
import { Entity, Column, Index, JoinTable, ManyToMany } from "typeorm";
|
|
3
|
-
import { RoleMetadata } from 'src/entities/role-metadata.entity'
|
|
4
|
-
|
|
5
|
-
@Index(["username", "deletedTracker"], { unique: true })
|
|
6
|
-
@Index(["email", "deletedTracker"], { unique: true })
|
|
7
|
-
@Index(["mobile", "deletedTracker"], { unique: true })
|
|
2
|
+
import { Entity, Column, Index, JoinTable, ManyToMany, OneToMany } from "typeorm";
|
|
3
|
+
import { RoleMetadata } from 'src/entities/role-metadata.entity';
|
|
4
|
+
import { UserViewMetadata } from 'src/entities/user-view-metadata.entity'
|
|
8
5
|
|
|
6
|
+
@Entity("ss_user")
|
|
9
7
|
export class User extends CommonEntity {
|
|
10
8
|
@Column({ type: "varchar", nullable: true })
|
|
11
9
|
fullName: string;
|
|
12
|
-
|
|
13
|
-
@
|
|
14
|
-
@Column({ type: "varchar", })
|
|
10
|
+
@Index({ unique: true })
|
|
11
|
+
@Column({ type: "varchar" })
|
|
15
12
|
username: string;
|
|
16
|
-
|
|
17
|
-
@
|
|
18
|
-
@Column({ type: "varchar", nullable: true })
|
|
13
|
+
@Index({ unique: true })
|
|
14
|
+
@Column({ type: "varchar", nullable: true })
|
|
19
15
|
email: string;
|
|
20
|
-
|
|
21
|
-
@
|
|
22
|
-
@Column({ type: "varchar", nullable: true })
|
|
16
|
+
@Index({ unique: true })
|
|
17
|
+
@Column({ type: "varchar", nullable: true })
|
|
23
18
|
mobile: string;
|
|
24
|
-
|
|
25
19
|
@Column({ type: "varchar", nullable: true })
|
|
26
20
|
password: string;
|
|
27
|
-
|
|
28
21
|
@Column({ type: "boolean", nullable: true, default: true })
|
|
29
22
|
forcePasswordChange: boolean = true;
|
|
30
|
-
|
|
31
23
|
@Column({ type: "varchar", default: "local" })
|
|
32
24
|
lastLoginProvider: string = "local";
|
|
33
|
-
|
|
34
25
|
@Column({ type: "varchar", nullable: true })
|
|
35
26
|
accessCode: string;
|
|
36
|
-
|
|
37
27
|
@Column({ type: "varchar", nullable: true })
|
|
38
28
|
googleAccessToken: string;
|
|
39
|
-
|
|
40
29
|
@Column({ type: "varchar", nullable: true })
|
|
41
30
|
googleId: string;
|
|
42
|
-
|
|
43
31
|
@Column({ type: "varchar", nullable: true })
|
|
44
32
|
googleProfilePicture: string;
|
|
45
|
-
|
|
46
33
|
@Column({ type: "boolean", default: true })
|
|
47
34
|
active: boolean = true;
|
|
48
|
-
|
|
49
35
|
@Column({ type: "timestamp", nullable: true })
|
|
50
36
|
forgotPasswordConfirmedAt: Date;
|
|
51
|
-
|
|
52
37
|
@Column({ type: "varchar", nullable: true })
|
|
53
38
|
verificationTokenOnForgotPassword: string;
|
|
54
|
-
|
|
55
39
|
@Column({ type: "timestamp", nullable: true })
|
|
56
40
|
verificationTokenOnForgotPasswordExpiresAt: Date;
|
|
57
|
-
|
|
58
41
|
@Column({ type: "timestamp", nullable: true })
|
|
59
42
|
emailVerifiedOnRegistrationAt: Date;
|
|
60
|
-
|
|
61
43
|
@Column({ type: "varchar", nullable: true })
|
|
62
44
|
emailVerificationTokenOnRegistration: string;
|
|
63
|
-
|
|
64
45
|
@Column({ type: "timestamp", nullable: true })
|
|
65
46
|
emailVerificationTokenOnRegistrationExpiresAt: Date;
|
|
66
|
-
|
|
67
47
|
@Column({ type: "timestamp", nullable: true })
|
|
68
48
|
mobileVerifiedOnRegistrationAt: Date;
|
|
69
|
-
|
|
70
49
|
@Column({ type: "varchar", nullable: true })
|
|
71
50
|
mobileVerificationTokenOnRegistration: string;
|
|
72
|
-
|
|
73
51
|
@Column({ type: "timestamp", nullable: true })
|
|
74
52
|
mobileVerificationTokenOnRegistrationExpiresAt: Date;
|
|
75
|
-
|
|
76
53
|
@Column({ type: "timestamp", nullable: true })
|
|
77
54
|
emailVerifiedOnLoginAt: Date;
|
|
78
|
-
|
|
79
55
|
@Column({ type: "varchar", nullable: true })
|
|
80
56
|
emailVerificationTokenOnLogin: string;
|
|
81
|
-
|
|
82
57
|
@Column({ type: "timestamp", nullable: true })
|
|
83
58
|
emailVerificationTokenOnLoginExpiresAt: Date;
|
|
84
|
-
|
|
85
59
|
@Column({ type: "timestamp", nullable: true })
|
|
86
60
|
mobileVerifiedOnLoginAt: Date;
|
|
87
|
-
|
|
88
61
|
@Column({ type: "varchar", nullable: true })
|
|
89
62
|
mobileVerificationTokenOnLogin: string;
|
|
90
|
-
|
|
91
63
|
@Column({ type: "timestamp", nullable: true })
|
|
92
64
|
mobileVerificationTokenOnLoginExpiresAt: Date;
|
|
93
|
-
|
|
94
65
|
@Column({ type: "varchar", nullable: true })
|
|
95
66
|
customPayload: string;
|
|
96
|
-
|
|
97
67
|
@ManyToMany(() => RoleMetadata, roleMetadata => roleMetadata.users, { cascade: true })
|
|
98
68
|
@JoinTable()
|
|
99
69
|
roles: RoleMetadata[];
|
|
70
|
+
@OneToMany(() => UserViewMetadata, userViewMetadata => userViewMetadata.user, { cascade: true })
|
|
71
|
+
userViewMetadata: UserViewMetadata[];
|
|
100
72
|
}
|
|
@@ -1,31 +1,30 @@
|
|
|
1
1
|
import { CommonEntity } from "src/entities/common.entity"
|
|
2
|
-
import { Entity, Column, ManyToOne, Index, JoinColumn } from "typeorm";
|
|
2
|
+
import { Entity, Column, ManyToOne, Index, JoinColumn, OneToMany } from "typeorm";
|
|
3
3
|
import { ModuleMetadata } from 'src/entities/module-metadata.entity';
|
|
4
|
-
import { ModelMetadata } from 'src/entities/model-metadata.entity'
|
|
4
|
+
import { ModelMetadata } from 'src/entities/model-metadata.entity';
|
|
5
|
+
import { UserViewMetadata } from 'src/entities/user-view-metadata.entity'
|
|
6
|
+
|
|
5
7
|
@Entity("ss_view_metadata")
|
|
6
8
|
export class ViewMetadata extends CommonEntity {
|
|
9
|
+
@Index({ unique: true })
|
|
7
10
|
@Column({ name: "name", type: "varchar", unique: true })
|
|
8
11
|
name: string;
|
|
9
|
-
|
|
10
12
|
@Column({ name: "display_name", type: "varchar" })
|
|
11
13
|
displayName: string;
|
|
12
|
-
|
|
13
14
|
@Column({ name: "type", type: "varchar" })
|
|
14
15
|
type: string;
|
|
15
|
-
|
|
16
16
|
@Column({ name: "context", type: "text" })
|
|
17
|
-
context: any;
|
|
18
|
-
|
|
17
|
+
context: any = "{}";
|
|
19
18
|
@Column({ name: "layout", type: "text" })
|
|
20
19
|
layout: any;
|
|
21
|
-
|
|
22
20
|
@Index()
|
|
23
|
-
@ManyToOne(() => ModuleMetadata, { onDelete: "CASCADE" })
|
|
24
|
-
@JoinColumn({
|
|
21
|
+
@ManyToOne(() => ModuleMetadata, { onDelete: "CASCADE", nullable: false })
|
|
22
|
+
@JoinColumn({ referencedColumnName: 'id' })
|
|
25
23
|
module: ModuleMetadata;
|
|
26
|
-
|
|
27
24
|
@Index()
|
|
28
|
-
@ManyToOne(() => ModelMetadata, { onDelete: "CASCADE" })
|
|
29
|
-
@JoinColumn({
|
|
25
|
+
@ManyToOne(() => ModelMetadata, { onDelete: "CASCADE", nullable: false })
|
|
26
|
+
@JoinColumn({ referencedColumnName: 'id' })
|
|
30
27
|
model: ModelMetadata;
|
|
28
|
+
@OneToMany(() => UserViewMetadata, userViewMetadata => userViewMetadata.viewMetadata, { cascade: true })
|
|
29
|
+
userViewMetadata: UserViewMetadata[];
|
|
31
30
|
}
|
package/src/index.ts
CHANGED
|
@@ -100,6 +100,7 @@ export * from './entities/user-password-history.entity'
|
|
|
100
100
|
export * from './entities/user.entity'
|
|
101
101
|
export * from './entities/view-metadata.entity'
|
|
102
102
|
export * from './entities/setting.entity'
|
|
103
|
+
export * from './entities/user-view-metadata.entity'
|
|
103
104
|
|
|
104
105
|
export * from './enums/auth-type.enum'
|
|
105
106
|
|
package/src/interfaces.ts
CHANGED
|
@@ -73,7 +73,7 @@ export interface ISelectionProvider<T extends ISelectionProviderContext> {
|
|
|
73
73
|
|
|
74
74
|
value(optionValue: string, ctxt: T): Promise<ISelectionProviderValues | any>;
|
|
75
75
|
|
|
76
|
-
values(query:
|
|
76
|
+
values(query: any, ctxt: T): Promise<readonly ISelectionProviderValues[]>;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
export interface IComputedFieldProvider<T> {
|