mblabs-roccato-backend-commons 0.0.13 → 1.0.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 (77) hide show
  1. package/bitbucket-pipelines.yml +71 -1
  2. package/dist/interfaces/aws.d.ts +67 -41
  3. package/dist/interfaces/azure.d.ts +61 -38
  4. package/dist/interfaces/firebase.d.ts +7 -3
  5. package/dist/interfaces/gcp.d.ts +11 -5
  6. package/dist/interfaces/grafana.d.ts +6 -2
  7. package/dist/interfaces/keycloak.d.ts +61 -3
  8. package/dist/interfaces/nodemailer.d.ts +20 -16
  9. package/dist/interfaces/redis.d.ts +49 -8
  10. package/dist/interfaces/sendgrid.d.ts +15 -13
  11. package/dist/services/aws/cloudwatch.d.ts +1 -1
  12. package/dist/services/aws/cloudwatch.js +38 -38
  13. package/dist/services/aws/pinpoint.d.ts +3 -3
  14. package/dist/services/aws/pinpoint.js +29 -29
  15. package/dist/services/aws/s3.d.ts +5 -5
  16. package/dist/services/aws/s3.js +59 -55
  17. package/dist/services/aws/secret-manager.d.ts +1 -1
  18. package/dist/services/aws/secret-manager.js +5 -5
  19. package/dist/services/aws/sqs.d.ts +3 -3
  20. package/dist/services/aws/sqs.js +16 -16
  21. package/dist/services/azure/application-insights.d.ts +4 -4
  22. package/dist/services/azure/application-insights.js +12 -12
  23. package/dist/services/azure/communication.d.ts +3 -3
  24. package/dist/services/azure/communication.js +17 -17
  25. package/dist/services/azure/keyvault.d.ts +1 -1
  26. package/dist/services/azure/keyvault.js +3 -3
  27. package/dist/services/azure/storage-blob.d.ts +3 -3
  28. package/dist/services/azure/storage-blob.js +22 -22
  29. package/dist/services/firebase.d.ts +2 -2
  30. package/dist/services/firebase.js +12 -10
  31. package/dist/services/gcp/drive.d.ts +1 -1
  32. package/dist/services/gcp/drive.js +4 -4
  33. package/dist/services/gcp/secrets.d.ts +1 -1
  34. package/dist/services/gcp/secrets.js +6 -8
  35. package/dist/services/gcp/sheets.d.ts +1 -1
  36. package/dist/services/gcp/sheets.js +6 -6
  37. package/dist/services/grafana.d.ts +2 -2
  38. package/dist/services/grafana.js +12 -12
  39. package/dist/services/keycloak.d.ts +5 -2
  40. package/dist/services/keycloak.js +119 -24
  41. package/dist/services/nodemailer.d.ts +2 -2
  42. package/dist/services/nodemailer.js +19 -109
  43. package/dist/services/redis.d.ts +6 -8
  44. package/dist/services/redis.js +53 -24
  45. package/dist/services/sendgrid.d.ts +1 -1
  46. package/dist/services/sendgrid.js +10 -10
  47. package/package.json +1 -1
  48. package/src/database/entities/address.ts +7 -7
  49. package/src/database/entities/company-address.ts +5 -5
  50. package/src/database/entities/company.ts +8 -8
  51. package/src/interfaces/aws.ts +81 -55
  52. package/src/interfaces/azure.ts +71 -50
  53. package/src/interfaces/firebase.ts +10 -6
  54. package/src/interfaces/gcp.ts +14 -8
  55. package/src/interfaces/grafana.ts +9 -5
  56. package/src/interfaces/keycloak.ts +68 -6
  57. package/src/interfaces/nodemailer.ts +22 -18
  58. package/src/interfaces/redis.ts +54 -8
  59. package/src/interfaces/sendgrid.ts +16 -14
  60. package/src/services/aws/cloudwatch.ts +39 -39
  61. package/src/services/aws/pinpoint.ts +30 -30
  62. package/src/services/aws/s3.ts +59 -55
  63. package/src/services/aws/secret-manager.ts +8 -7
  64. package/src/services/aws/sqs.ts +23 -17
  65. package/src/services/azure/application-insights.ts +12 -12
  66. package/src/services/azure/communication.ts +18 -18
  67. package/src/services/azure/keyvault.ts +3 -3
  68. package/src/services/azure/storage-blob.ts +34 -30
  69. package/src/services/firebase.ts +21 -11
  70. package/src/services/gcp/drive.ts +8 -5
  71. package/src/services/gcp/secrets.ts +9 -10
  72. package/src/services/gcp/sheets.ts +10 -7
  73. package/src/services/grafana.ts +18 -12
  74. package/src/services/keycloak.ts +148 -24
  75. package/src/services/nodemailer.ts +19 -110
  76. package/src/services/redis.ts +58 -22
  77. package/src/services/sendgrid.ts +11 -11
@@ -32,6 +32,66 @@ pipelines:
32
32
  script:
33
33
  - pipe: atlassian/git-secrets-scan:1.2.1
34
34
  branches:
35
+ develop:
36
+ - step:
37
+ name: "Build SDK"
38
+ caches:
39
+ - node
40
+ script:
41
+ - yarn clean-install
42
+ - yarn build
43
+ artifacts:
44
+ - dist/**
45
+
46
+ - step:
47
+ name: "Publish SDK"
48
+ caches:
49
+ - node
50
+ script:
51
+ - apt-get update && apt-get install -y jq
52
+ - PACKAGE_NAME=$(jq -r .name package.json)
53
+ - PUBLISHED_VERSION=$(npm view $PACKAGE_NAME version)
54
+
55
+ - jq --arg version "$PUBLISHED_VERSION" '.version = $version' package.json > pkg.json && mv pkg.json package.json
56
+ - PATCH_VERSION=$(npm version patch --no-git-tag-version)
57
+
58
+ - git add package.json
59
+ - git commit -m "chore(release):bump patch version [skip ci]"
60
+ - git tag $PATCH_VERSION
61
+ - git push origin $PATCH_VERSION
62
+ - pipe: atlassian/npm-publish:0.2.0
63
+ variables:
64
+ NPM_TOKEN: $NPM_TOKEN
65
+ homolog:
66
+ - step:
67
+ name: "Build SDK"
68
+ caches:
69
+ - node
70
+ script:
71
+ - yarn clean-install
72
+ - yarn build
73
+ artifacts:
74
+ - dist/**
75
+
76
+ - step:
77
+ name: "Publish SDK"
78
+ caches:
79
+ - node
80
+ script:
81
+ - apt-get update && apt-get install -y jq
82
+ - PACKAGE_NAME=$(jq -r .name package.json)
83
+ - PUBLISHED_VERSION=$(npm view $PACKAGE_NAME version)
84
+
85
+ - jq --arg version "$PUBLISHED_VERSION" '.version = $version' package.json > pkg.json && mv pkg.json package.json
86
+ - MINOR_VERSION=$(npm version minor --no-git-tag-version)
87
+
88
+ - git add package.json
89
+ - git commit -m "chore(release):bump minor version [skip ci]"
90
+ - git tag $MINOR_VERSION
91
+ - git push origin $MINOR_VERSION
92
+ - pipe: atlassian/npm-publish:0.2.0
93
+ variables:
94
+ NPM_TOKEN: $NPM_TOKEN
35
95
  master:
36
96
  - step:
37
97
  name: "Build SDK"
@@ -48,7 +108,17 @@ pipelines:
48
108
  caches:
49
109
  - node
50
110
  script:
51
- - ls -lh dist
111
+ - apt-get update && apt-get install -y jq
112
+ - PACKAGE_NAME=$(jq -r .name package.json)
113
+ - PUBLISHED_VERSION=$(npm view $PACKAGE_NAME version)
114
+
115
+ - jq --arg version "$PUBLISHED_VERSION" '.version = $version' package.json > pkg.json && mv pkg.json package.json
116
+ - MAJOR_VERSION=$(npm version major --no-git-tag-version)
117
+
118
+ - git add package.json
119
+ - git commit -m "chore(release):bump major version [skip ci]"
120
+ - git tag $MAJOR_VERSION
121
+ - git push origin $MAJOR_VERSION
52
122
  - pipe: atlassian/npm-publish:0.2.0
53
123
  variables:
54
124
  NPM_TOKEN: $NPM_TOKEN
@@ -16,10 +16,12 @@ interface UploadOptions {
16
16
  export declare namespace AmazonCloudwatch {
17
17
  namespace CreateLogEvent {
18
18
  interface Request {
19
- application: string;
20
- group: string;
21
- stream: string;
22
- events: InputLogEvent[];
19
+ data: {
20
+ application: string;
21
+ group: string;
22
+ stream: string;
23
+ events: InputLogEvent[];
24
+ };
23
25
  credentials: Credentials;
24
26
  }
25
27
  }
@@ -27,33 +29,39 @@ export declare namespace AmazonCloudwatch {
27
29
  export declare namespace AmazonPinpoint {
28
30
  namespace SendMail {
29
31
  interface Request {
30
- applicationId: string;
31
- subject: string;
32
- text: string;
33
- emails: string | string[];
34
- from: string;
35
- variables?: Record<string, string | number>;
32
+ data: {
33
+ application: string;
34
+ subject: string;
35
+ text: string;
36
+ emails: string | string[];
37
+ from: string;
38
+ variables?: Record<string, string | number>;
39
+ };
36
40
  credentials: Credentials;
37
41
  }
38
42
  }
39
43
  namespace SendTemplateMail {
40
44
  interface Request {
41
- applicationId: string;
42
- template: string;
43
- emails: string | string[];
44
- from: string;
45
- variables?: Record<string, string | number>;
45
+ data: {
46
+ application: string;
47
+ template: string;
48
+ emails: string | string[];
49
+ from: string;
50
+ variables?: Record<string, string | number>;
51
+ };
46
52
  credentials: Credentials;
47
53
  }
48
54
  }
49
55
  namespace SendSMS {
50
56
  interface Request {
51
- applicationId: string;
52
- sender: string;
53
- text: string;
54
- phones: string | string[];
55
- type?: 'PROMOTIONAL' | 'TRANSACTIONAL';
56
- variables?: Record<string, string | number>;
57
+ data: {
58
+ application: string;
59
+ sender: string;
60
+ text: string;
61
+ phones: string | string[];
62
+ type?: 'PROMOTIONAL' | 'TRANSACTIONAL';
63
+ variables?: Record<string, string | number>;
64
+ };
57
65
  credentials: Credentials;
58
66
  }
59
67
  }
@@ -61,10 +69,12 @@ export declare namespace AmazonPinpoint {
61
69
  export declare namespace AmazonS3 {
62
70
  namespace GetSignedUrl {
63
71
  interface Request {
64
- filename: string;
65
- bucket: string;
66
- folder?: string;
67
- isUpload?: boolean;
72
+ data: {
73
+ filename: string;
74
+ bucket: string;
75
+ folder?: string;
76
+ isUpload?: boolean;
77
+ };
68
78
  credentials: Credentials;
69
79
  }
70
80
  interface Response {
@@ -73,9 +83,11 @@ export declare namespace AmazonS3 {
73
83
  }
74
84
  namespace UploadBase64 {
75
85
  interface Request {
76
- file: string;
77
- bucket: string;
78
- options?: UploadOptions;
86
+ data: {
87
+ file: string;
88
+ bucket: string;
89
+ options?: UploadOptions;
90
+ };
79
91
  credentials: Credentials;
80
92
  }
81
93
  interface Response {
@@ -86,9 +98,11 @@ export declare namespace AmazonS3 {
86
98
  }
87
99
  namespace UploadBuffer {
88
100
  interface Request {
89
- file: Buffer;
90
- bucket: string;
91
- options?: UploadOptions;
101
+ data: {
102
+ file: Buffer;
103
+ bucket: string;
104
+ options?: UploadOptions;
105
+ };
92
106
  credentials: Credentials;
93
107
  }
94
108
  interface Response {
@@ -99,16 +113,20 @@ export declare namespace AmazonS3 {
99
113
  }
100
114
  namespace DeleteFile {
101
115
  interface Request {
102
- filename: string;
103
- bucket: string;
104
- folder?: string;
116
+ data: {
117
+ filename: string;
118
+ bucket: string;
119
+ folder?: string;
120
+ };
105
121
  credentials: Credentials;
106
122
  }
107
123
  }
108
124
  namespace ListFiles {
109
125
  interface Request {
110
- bucket: string;
111
- folder?: string;
126
+ data: {
127
+ bucket: string;
128
+ folder?: string;
129
+ };
112
130
  credentials: Credentials;
113
131
  }
114
132
  interface Response {
@@ -119,7 +137,9 @@ export declare namespace AmazonS3 {
119
137
  export declare namespace AmazonSecretManager {
120
138
  namespace GetSecret {
121
139
  interface Request {
122
- secretId: string;
140
+ data: {
141
+ secret: string;
142
+ };
123
143
  credentials: Credentials;
124
144
  }
125
145
  interface Response<T> {
@@ -130,14 +150,18 @@ export declare namespace AmazonSecretManager {
130
150
  export declare namespace AmazonSQS {
131
151
  namespace PublishMessage {
132
152
  interface Request {
133
- queue: string;
134
- message: unknown;
153
+ data: {
154
+ queue: string;
155
+ message: unknown;
156
+ };
135
157
  credentials: Credentials;
136
158
  }
137
159
  }
138
160
  namespace ConsumeMessage {
139
161
  interface Request {
140
- queue: string;
162
+ data: {
163
+ queue: string;
164
+ };
141
165
  credentials: Credentials;
142
166
  }
143
167
  interface Response<T> {
@@ -146,7 +170,9 @@ export declare namespace AmazonSQS {
146
170
  }
147
171
  namespace ConsumeMessages {
148
172
  interface Request {
149
- queue: string;
173
+ data: {
174
+ queue: string;
175
+ };
150
176
  credentials: Credentials;
151
177
  }
152
178
  interface Response<T> {
@@ -6,30 +6,38 @@ interface Credentials {
6
6
  export declare namespace AzureApplicationInsights {
7
7
  namespace TrackTrace {
8
8
  interface Request {
9
- message: string;
10
- severity: string;
9
+ data: {
10
+ message: string;
11
+ severity: string;
12
+ };
11
13
  credentials: Credentials;
12
14
  }
13
15
  }
14
16
  namespace TrackEvent {
15
17
  interface Request {
16
- name: string;
17
- properties?: {
18
- [key: string]: string;
18
+ data: {
19
+ name: string;
20
+ properties?: {
21
+ [key: string]: string;
22
+ };
19
23
  };
20
24
  credentials: Credentials;
21
25
  }
22
26
  }
23
27
  namespace TrackException {
24
28
  interface Request {
25
- error: Error;
29
+ data: {
30
+ error: Error;
31
+ };
26
32
  credentials: Credentials;
27
33
  }
28
34
  }
29
35
  namespace TrackMetric {
30
36
  interface Request {
31
- name: string;
32
- value: number;
37
+ data: {
38
+ name: string;
39
+ value: number;
40
+ };
33
41
  credentials: Credentials;
34
42
  }
35
43
  }
@@ -37,29 +45,35 @@ export declare namespace AzureApplicationInsights {
37
45
  export declare namespace AzureCommunication {
38
46
  namespace SendMail {
39
47
  interface Request {
40
- subject: string;
41
- text: string;
42
- emails: string | string[];
43
- from: string;
44
- variables?: Record<string, string | number>;
48
+ data: {
49
+ subject: string;
50
+ text: string;
51
+ emails: string | string[];
52
+ from: string;
53
+ variables?: Record<string, string | number>;
54
+ };
45
55
  credentials: Credentials;
46
56
  }
47
57
  }
48
58
  namespace SendTemplateMail {
49
59
  interface Request {
50
- subject: string;
51
- template: string;
52
- emails: string | string[];
53
- from: string;
54
- variables?: Record<string, string | number>;
60
+ data: {
61
+ subject: string;
62
+ template: string;
63
+ emails: string | string[];
64
+ from: string;
65
+ variables?: Record<string, string | number>;
66
+ };
55
67
  credentials: Credentials;
56
68
  }
57
69
  }
58
70
  namespace SendSMS {
59
71
  interface Request {
60
- sender: string;
61
- text: string;
62
- phones: string | string[];
72
+ data: {
73
+ sender: string;
74
+ text: string;
75
+ phones: string | string[];
76
+ };
63
77
  credentials: Credentials;
64
78
  }
65
79
  }
@@ -67,8 +81,11 @@ export declare namespace AzureCommunication {
67
81
  export declare namespace AzureKeyVault {
68
82
  namespace GetSecret {
69
83
  interface Request {
70
- vault: string;
71
- secretName: string;
84
+ data: {
85
+ vault: string;
86
+ secretName: string;
87
+ };
88
+ credentials: Credentials;
72
89
  }
73
90
  interface Response<T> {
74
91
  secret: T;
@@ -78,18 +95,22 @@ export declare namespace AzureKeyVault {
78
95
  export declare namespace AzureStorageBlob {
79
96
  namespace UploadBuffer {
80
97
  interface Request {
81
- storageContainer: string;
82
- storageUrl: string;
83
- filename: string;
84
- file: Buffer;
98
+ data: {
99
+ storageContainer: string;
100
+ storageUrl: string;
101
+ filename: string;
102
+ file: Buffer;
103
+ };
85
104
  credentials: Credentials;
86
105
  }
87
106
  }
88
107
  namespace DownloadBuffer {
89
108
  interface Request {
90
- storageContainer: string;
91
- storageUrl: string;
92
- filename: string;
109
+ data: {
110
+ storageContainer: string;
111
+ storageUrl: string;
112
+ filename: string;
113
+ };
93
114
  credentials: Credentials;
94
115
  }
95
116
  interface Response {
@@ -98,14 +119,16 @@ export declare namespace AzureStorageBlob {
98
119
  }
99
120
  namespace GetPreSignedUrl {
100
121
  interface Request {
101
- filename: string;
102
- storageContainer: string;
103
- storageUrl: string;
104
- options?: {
105
- version?: string;
106
- hoursToExpire?: number;
107
- contentType?: string;
108
- contentEncoding?: string;
122
+ data: {
123
+ filename: string;
124
+ storageContainer: string;
125
+ storageUrl: string;
126
+ options?: {
127
+ version?: string;
128
+ hoursToExpire?: number;
129
+ contentType?: string;
130
+ contentEncoding?: string;
131
+ };
109
132
  };
110
133
  credentials: Credentials;
111
134
  }
@@ -7,14 +7,18 @@ interface Credentials {
7
7
  export declare namespace Firebase {
8
8
  namespace SendNotification {
9
9
  interface Request {
10
- message: FirebaseAdmin.messaging.MulticastMessage;
11
- isTest: boolean;
10
+ data: {
11
+ message: FirebaseAdmin.messaging.MulticastMessage;
12
+ isTest: boolean;
13
+ };
12
14
  credentials: Credentials;
13
15
  }
14
16
  }
15
17
  namespace PublishConfig {
16
18
  interface Request {
17
- template: string;
19
+ data: {
20
+ template: string;
21
+ };
18
22
  credentials: Credentials;
19
23
  }
20
24
  }
@@ -5,7 +5,9 @@ interface Credentials {
5
5
  export declare namespace GoogleDrive {
6
6
  namespace ReadFile {
7
7
  interface Request {
8
- fileId: string;
8
+ data: {
9
+ file: string;
10
+ };
9
11
  credentials: Credentials;
10
12
  }
11
13
  interface Response {
@@ -16,8 +18,10 @@ export declare namespace GoogleDrive {
16
18
  export declare namespace GoogleSheets {
17
19
  namespace ReadSheet {
18
20
  interface Request {
19
- spreadsheetId: string;
20
- tabs: string[];
21
+ data: {
22
+ spreadsheet: string;
23
+ tabs: string[];
24
+ };
21
25
  credentials: Credentials;
22
26
  }
23
27
  interface Response {
@@ -28,8 +32,10 @@ export declare namespace GoogleSheets {
28
32
  export declare namespace GoogleSecrets {
29
33
  namespace GetSecret {
30
34
  interface Request {
31
- projectId: string;
32
- secretId: string;
35
+ data: {
36
+ project: string;
37
+ secret: string;
38
+ };
33
39
  credentials: Credentials;
34
40
  }
35
41
  interface Response<T> {
@@ -5,7 +5,9 @@ interface Credentials {
5
5
  export declare namespace Grafana {
6
6
  namespace GetDashboard {
7
7
  interface Request {
8
- uid: string;
8
+ data: {
9
+ uid: string;
10
+ };
9
11
  credentials: Credentials;
10
12
  }
11
13
  interface Response {
@@ -14,7 +16,9 @@ export declare namespace Grafana {
14
16
  }
15
17
  namespace SearchDashboard {
16
18
  interface Request {
17
- query: string;
19
+ data: {
20
+ query: string;
21
+ };
18
22
  credentials: Credentials;
19
23
  }
20
24
  interface Response {
@@ -8,8 +8,27 @@ export declare namespace Keycloak {
8
8
  namespace Authenticate {
9
9
  interface Request {
10
10
  url: string;
11
- username: string;
12
- password: string;
11
+ realm: string;
12
+ data: {
13
+ username: string;
14
+ password: string;
15
+ };
16
+ credentials: Credentials;
17
+ }
18
+ interface Response {
19
+ access_token: string;
20
+ expires_in: number;
21
+ refresh_expires_in: number;
22
+ refresh_token: string;
23
+ token_type: string;
24
+ profileType?: number;
25
+ active?: boolean;
26
+ }
27
+ }
28
+ namespace AuthenticateServer {
29
+ interface Request {
30
+ url: string;
31
+ realm: string;
13
32
  credentials: Credentials;
14
33
  }
15
34
  interface Response {
@@ -25,7 +44,10 @@ export declare namespace Keycloak {
25
44
  namespace RefreshAccess {
26
45
  interface Request {
27
46
  url: string;
28
- refreshToken: string;
47
+ realm: string;
48
+ data: {
49
+ refreshToken: string;
50
+ };
29
51
  credentials: Credentials;
30
52
  }
31
53
  interface Response {
@@ -38,9 +60,45 @@ export declare namespace Keycloak {
38
60
  active?: boolean;
39
61
  }
40
62
  }
63
+ namespace CreateUser {
64
+ interface Request {
65
+ url: string;
66
+ realm: string;
67
+ data: {
68
+ username: string;
69
+ firstName: string;
70
+ lastName?: string;
71
+ email: string;
72
+ password: string;
73
+ isTemporaryPassword?: boolean;
74
+ groups: string[];
75
+ };
76
+ credentials: Credentials;
77
+ }
78
+ }
79
+ namespace UpdateUser {
80
+ interface Request {
81
+ url: string;
82
+ realm: string;
83
+ data: {
84
+ id: string;
85
+ username?: string;
86
+ firstName?: string;
87
+ lastName?: string;
88
+ email?: string;
89
+ password?: string;
90
+ isTemporaryPassword?: boolean;
91
+ groups?: string[];
92
+ };
93
+ credentials: Credentials;
94
+ }
95
+ }
41
96
  }
42
97
  export interface IKeycloakService {
43
98
  authenticate(req: Keycloak.Authenticate.Request): Promise<Keycloak.Authenticate.Response>;
99
+ authenticateServer(req: Keycloak.AuthenticateServer.Request): Promise<Keycloak.AuthenticateServer.Response>;
44
100
  refreshAccess(req: Keycloak.RefreshAccess.Request): Promise<Keycloak.RefreshAccess.Response>;
101
+ createUser(req: Keycloak.CreateUser.Request): Promise<void>;
102
+ updateUser(req: Keycloak.UpdateUser.Request): Promise<void>;
45
103
  }
46
104
  export {};
@@ -10,29 +10,33 @@ interface Credentials {
10
10
  export declare namespace NodeMailer {
11
11
  namespace Send {
12
12
  interface Request {
13
- from: {
14
- name: string;
15
- address: string;
13
+ data: {
14
+ from: {
15
+ name: string;
16
+ address: string;
17
+ };
18
+ to: string;
19
+ subject: string;
20
+ text: string;
16
21
  };
17
- to: string;
18
- subject: string;
19
- text: string;
20
22
  credentials: Credentials;
21
23
  }
22
24
  }
23
25
  namespace SendWithTemplate {
24
26
  interface Request {
25
- from: {
26
- name: string;
27
- address: string;
27
+ data: {
28
+ from: {
29
+ name: string;
30
+ address: string;
31
+ };
32
+ to: string;
33
+ subject: string;
34
+ html: string;
35
+ attachments: {
36
+ filename: string;
37
+ content: Buffer;
38
+ }[];
28
39
  };
29
- to: string;
30
- subject: string;
31
- html: string;
32
- attachments: {
33
- filename: string;
34
- content: Buffer;
35
- }[];
36
40
  credentials: Credentials;
37
41
  }
38
42
  }