mblabs-roccato-backend-commons 1.0.85 → 1.0.87

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.
@@ -1,5 +1,4 @@
1
1
  import { InputLogEvent } from '@aws-sdk/client-cloudwatch-logs';
2
- import { _Object } from '@aws-sdk/client-s3';
3
2
  interface Credentials {
4
3
  accessKey: string;
5
4
  secretKey: string;
@@ -153,7 +152,12 @@ export declare namespace AmazonS3 {
153
152
  credentials: Credentials;
154
153
  }
155
154
  interface Response {
156
- files: _Object[];
155
+ files: {
156
+ key?: string;
157
+ tag?: string;
158
+ lastModified?: Date;
159
+ size?: number;
160
+ }[];
157
161
  }
158
162
  }
159
163
  }
@@ -55,6 +55,40 @@ export declare namespace Keycloak {
55
55
  scope?: string;
56
56
  }
57
57
  }
58
+ namespace GetSession {
59
+ interface Request {
60
+ url: string;
61
+ data: {
62
+ accessToken: string;
63
+ };
64
+ credentials: Credentials;
65
+ }
66
+ interface Response {
67
+ id: string;
68
+ sub: string;
69
+ firstName: string;
70
+ lastName: string;
71
+ email: string;
72
+ enabled: boolean;
73
+ attributes: {
74
+ isFirstAccess: boolean;
75
+ };
76
+ scope?: string;
77
+ totp?: boolean;
78
+ emailVerified?: boolean;
79
+ disableableCredentialTypes?: Set<string>;
80
+ requiredActions?: string[];
81
+ notBefore?: number;
82
+ createdTimestamp: number;
83
+ access?: {
84
+ manageGroupMembership?: boolean;
85
+ view?: boolean;
86
+ mapRoles?: boolean;
87
+ impersonate?: boolean;
88
+ manage?: boolean;
89
+ };
90
+ }
91
+ }
58
92
  namespace RefreshAccess {
59
93
  interface Request {
60
94
  url: string;
@@ -286,6 +320,7 @@ export declare namespace Keycloak {
286
320
  export interface IKeycloakService {
287
321
  authenticate(req: Keycloak.Authenticate.Request): Promise<Keycloak.Authenticate.Response>;
288
322
  authenticateServer(req: Keycloak.AuthenticateServer.Request): Promise<Keycloak.AuthenticateServer.Response>;
323
+ getSession(req: Keycloak.GetSession.Request): Promise<Keycloak.GetSession.Response>;
289
324
  refreshAccess(req: Keycloak.RefreshAccess.Request): Promise<Keycloak.RefreshAccess.Response>;
290
325
  revokeAccess(req: Keycloak.RevokeAccess.Request): Promise<void>;
291
326
  createUser(req: Keycloak.CreateUser.Request): Promise<void>;
@@ -104,8 +104,14 @@ class AmazonS3Service {
104
104
  Bucket: data.bucket,
105
105
  Prefix: data.folder,
106
106
  });
107
+ const files = Contents?.map((content) => ({
108
+ key: content.Key,
109
+ tag: content.ETag,
110
+ lastModified: content.LastModified,
111
+ size: content.Size,
112
+ })) ?? [];
107
113
  return {
108
- files: Contents ?? [],
114
+ files,
109
115
  };
110
116
  }
111
117
  async getSignedUrl({ credentials, data }) {
@@ -11,13 +11,23 @@ declare class DateService {
11
11
  diffInWeeks(start: Date, end: Date): number;
12
12
  diffInMonths(start: Date, end: Date): number;
13
13
  diffInYears(start: Date, end: Date): number;
14
+ addQuarters(start: Date, toAdd: number): Date;
15
+ addYears(start: Date, toAdd: number): Date;
16
+ addMonths(start: Date, toAdd: number): Date;
17
+ addWeeks(start: Date, toAdd: number): Date;
14
18
  addDays(start: Date, toAdd: number): Date;
15
19
  addHours(start: Date, toAdd: number): Date;
16
20
  addMinutes(start: Date, toAdd: number): Date;
17
- minusHours(start: Date, toRemove: number): Date;
21
+ addSeconds(start: Date, toAdd: number): Date;
22
+ addMilliSeconds(start: Date, toAdd: number): Date;
23
+ minusMilliSeconds(start: Date, toRemove: number): Date;
24
+ minusSeconds(start: Date, toRemove: number): Date;
18
25
  minusMinutes(start: Date, toRemove: number): Date;
26
+ minusHours(start: Date, toRemove: number): Date;
27
+ minusDays(start: Date, toRemove: number): Date;
19
28
  minusMonths(start: Date, toRemove: number): Date;
20
29
  minusYears(start: Date, toRemove: number): Date;
30
+ minusQuarters(start: Date, toRemove: number): Date;
21
31
  isValidDate(inp: string, format?: string): boolean;
22
32
  getStartAndEndOfDay(inp?: string | Date, useUTC?: boolean): {
23
33
  startOfDay: Date;
@@ -55,6 +55,18 @@ class DateService {
55
55
  diffInYears(start, end) {
56
56
  return luxon_1.DateTime.fromJSDate(end).diff(luxon_1.DateTime.fromJSDate(start), 'years').years;
57
57
  }
58
+ addQuarters(start, toAdd) {
59
+ return luxon_1.DateTime.fromJSDate(start).plus({ quarters: toAdd }).toJSDate();
60
+ }
61
+ addYears(start, toAdd) {
62
+ return luxon_1.DateTime.fromJSDate(start).plus({ years: toAdd }).toJSDate();
63
+ }
64
+ addMonths(start, toAdd) {
65
+ return luxon_1.DateTime.fromJSDate(start).plus({ months: toAdd }).toJSDate();
66
+ }
67
+ addWeeks(start, toAdd) {
68
+ return luxon_1.DateTime.fromJSDate(start).plus({ weeks: toAdd }).toJSDate();
69
+ }
58
70
  addDays(start, toAdd) {
59
71
  return luxon_1.DateTime.fromJSDate(start).plus({ days: toAdd }).toJSDate();
60
72
  }
@@ -64,18 +76,36 @@ class DateService {
64
76
  addMinutes(start, toAdd) {
65
77
  return luxon_1.DateTime.fromJSDate(start).plus({ minutes: toAdd }).toJSDate();
66
78
  }
67
- minusHours(start, toRemove) {
68
- return luxon_1.DateTime.fromJSDate(start).minus({ hours: toRemove }).toJSDate();
79
+ addSeconds(start, toAdd) {
80
+ return luxon_1.DateTime.fromJSDate(start).plus({ seconds: toAdd }).toJSDate();
81
+ }
82
+ addMilliSeconds(start, toAdd) {
83
+ return luxon_1.DateTime.fromJSDate(start).plus({ milliseconds: toAdd }).toJSDate();
84
+ }
85
+ minusMilliSeconds(start, toRemove) {
86
+ return luxon_1.DateTime.fromJSDate(start).minus({ milliseconds: toRemove }).toJSDate();
87
+ }
88
+ minusSeconds(start, toRemove) {
89
+ return luxon_1.DateTime.fromJSDate(start).minus({ seconds: toRemove }).toJSDate();
69
90
  }
70
91
  minusMinutes(start, toRemove) {
71
92
  return luxon_1.DateTime.fromJSDate(start).minus({ minutes: toRemove }).toJSDate();
72
93
  }
94
+ minusHours(start, toRemove) {
95
+ return luxon_1.DateTime.fromJSDate(start).minus({ hours: toRemove }).toJSDate();
96
+ }
97
+ minusDays(start, toRemove) {
98
+ return luxon_1.DateTime.fromJSDate(start).minus({ days: toRemove }).toJSDate();
99
+ }
73
100
  minusMonths(start, toRemove) {
74
101
  return luxon_1.DateTime.fromJSDate(start).minus({ months: toRemove }).toJSDate();
75
102
  }
76
103
  minusYears(start, toRemove) {
77
104
  return luxon_1.DateTime.fromJSDate(start).minus({ years: toRemove }).toJSDate();
78
105
  }
106
+ minusQuarters(start, toRemove) {
107
+ return luxon_1.DateTime.fromJSDate(start).minus({ quarters: toRemove }).toJSDate();
108
+ }
79
109
  isValidDate(inp, format = 'yyyy-MM-dd') {
80
110
  return luxon_1.DateTime.fromFormat(inp, format).isValid;
81
111
  }
@@ -2,6 +2,7 @@ import { IKeycloakService, Keycloak } from '../interfaces';
2
2
  declare class KeycloakService implements IKeycloakService {
3
3
  authenticate({ credentials, data, url, }: Keycloak.Authenticate.Request): Promise<Keycloak.Authenticate.Response>;
4
4
  authenticateServer({ credentials, url, }: Keycloak.AuthenticateServer.Request): Promise<Keycloak.AuthenticateServer.Response>;
5
+ getSession({ credentials, data, url, }: Keycloak.GetSession.Request): Promise<Keycloak.GetSession.Response>;
5
6
  refreshAccess({ credentials, data, url, }: Keycloak.RefreshAccess.Request): Promise<Keycloak.RefreshAccess.Response>;
6
7
  revokeAccess({ credentials, data, url, }: Keycloak.RevokeAccess.Request): Promise<void>;
7
8
  createUser({ credentials, data, url, }: Keycloak.CreateUser.Request): Promise<void>;
@@ -41,6 +41,23 @@ class KeycloakService {
41
41
  });
42
42
  return response;
43
43
  }
44
+ async getSession({ credentials, data, url, }) {
45
+ const { data: response } = await http_1.default.request({
46
+ baseURL: url,
47
+ method: 'post',
48
+ resourcePath: `/auth/realms/${credentials.realm}/protocol/openid-connect/token/introspect/`,
49
+ headers: {
50
+ 'Cache-Control': 'no-cache',
51
+ 'Content-Type': 'application/x-www-form-urlencoded',
52
+ },
53
+ body: new URLSearchParams({
54
+ client_id: credentials.clientId,
55
+ client_secret: credentials.clientSecret,
56
+ token: data.accessToken,
57
+ }),
58
+ });
59
+ return response;
60
+ }
44
61
  async refreshAccess({ credentials, data, url, }) {
45
62
  const { data: response } = await http_1.default.request({
46
63
  baseURL: url,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mblabs-roccato-backend-commons",
3
- "version": "1.0.85",
3
+ "version": "1.0.87",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,5 +1,4 @@
1
1
  import { InputLogEvent } from '@aws-sdk/client-cloudwatch-logs';
2
- import { _Object } from '@aws-sdk/client-s3';
3
2
 
4
3
  interface Credentials {
5
4
  accessKey: string;
@@ -169,7 +168,12 @@ export namespace AmazonS3 {
169
168
  }
170
169
 
171
170
  export interface Response {
172
- files: _Object[];
171
+ files: {
172
+ key?: string;
173
+ tag?: string;
174
+ lastModified?: Date;
175
+ size?: number;
176
+ }[];
173
177
  }
174
178
  }
175
179
  }
@@ -61,6 +61,42 @@ export namespace Keycloak {
61
61
  }
62
62
  }
63
63
 
64
+ export namespace GetSession {
65
+ export interface Request {
66
+ url: string;
67
+ data: {
68
+ accessToken: string;
69
+ };
70
+ credentials: Credentials;
71
+ }
72
+
73
+ export interface Response {
74
+ id: string;
75
+ sub: string;
76
+ firstName: string;
77
+ lastName: string;
78
+ email: string;
79
+ enabled: boolean;
80
+ attributes: {
81
+ isFirstAccess: boolean;
82
+ };
83
+ scope?: string;
84
+ totp?: boolean;
85
+ emailVerified?: boolean;
86
+ disableableCredentialTypes?: Set<string>;
87
+ requiredActions?: string[];
88
+ notBefore?: number;
89
+ createdTimestamp: number;
90
+ access?: {
91
+ manageGroupMembership?: boolean;
92
+ view?: boolean;
93
+ mapRoles?: boolean;
94
+ impersonate?: boolean;
95
+ manage?: boolean;
96
+ };
97
+ }
98
+ }
99
+
64
100
  export namespace RefreshAccess {
65
101
  export interface Request {
66
102
  url: string;
@@ -309,6 +345,7 @@ export namespace Keycloak {
309
345
  export interface IKeycloakService {
310
346
  authenticate(req: Keycloak.Authenticate.Request): Promise<Keycloak.Authenticate.Response>;
311
347
  authenticateServer(req: Keycloak.AuthenticateServer.Request): Promise<Keycloak.AuthenticateServer.Response>;
348
+ getSession(req: Keycloak.GetSession.Request): Promise<Keycloak.GetSession.Response>;
312
349
  refreshAccess(req: Keycloak.RefreshAccess.Request): Promise<Keycloak.RefreshAccess.Response>;
313
350
  revokeAccess(req: Keycloak.RevokeAccess.Request): Promise<void>;
314
351
  createUser(req: Keycloak.CreateUser.Request): Promise<void>;
@@ -127,8 +127,17 @@ class AmazonS3Service implements IAmazonS3Service {
127
127
  Prefix: data.folder,
128
128
  });
129
129
 
130
+ const files = Contents?.map(
131
+ (content) => ({
132
+ key: content.Key,
133
+ tag: content.ETag,
134
+ lastModified: content.LastModified,
135
+ size: content.Size,
136
+ })
137
+ ) ?? [];
138
+
130
139
  return {
131
- files: Contents ?? [],
140
+ files,
132
141
  };
133
142
  }
134
143
 
@@ -72,6 +72,22 @@ class DateService {
72
72
  return DateTime.fromJSDate(end).diff(DateTime.fromJSDate(start), 'years').years;
73
73
  }
74
74
 
75
+ public addQuarters (start: Date, toAdd: number): Date {
76
+ return DateTime.fromJSDate(start).plus({ quarters: toAdd }).toJSDate();
77
+ }
78
+
79
+ public addYears (start: Date, toAdd: number): Date {
80
+ return DateTime.fromJSDate(start).plus({ years: toAdd }).toJSDate();
81
+ }
82
+
83
+ public addMonths (start: Date, toAdd: number): Date {
84
+ return DateTime.fromJSDate(start).plus({ months: toAdd }).toJSDate();
85
+ }
86
+
87
+ public addWeeks (start: Date, toAdd: number): Date {
88
+ return DateTime.fromJSDate(start).plus({ weeks: toAdd }).toJSDate();
89
+ }
90
+
75
91
  public addDays (start: Date, toAdd: number): Date {
76
92
  return DateTime.fromJSDate(start).plus({ days: toAdd }).toJSDate();
77
93
  }
@@ -84,14 +100,34 @@ class DateService {
84
100
  return DateTime.fromJSDate(start).plus({ minutes: toAdd }).toJSDate();
85
101
  }
86
102
 
87
- public minusHours (start: Date, toRemove: number): Date {
88
- return DateTime.fromJSDate(start).minus({ hours: toRemove }).toJSDate();
103
+ public addSeconds (start: Date, toAdd: number): Date {
104
+ return DateTime.fromJSDate(start).plus({ seconds: toAdd }).toJSDate();
105
+ }
106
+
107
+ public addMilliSeconds (start: Date, toAdd: number): Date {
108
+ return DateTime.fromJSDate(start).plus({ milliseconds: toAdd }).toJSDate();
109
+ }
110
+
111
+ public minusMilliSeconds (start: Date, toRemove: number): Date {
112
+ return DateTime.fromJSDate(start).minus({ milliseconds: toRemove }).toJSDate();
113
+ }
114
+
115
+ public minusSeconds (start: Date, toRemove: number): Date {
116
+ return DateTime.fromJSDate(start).minus({ seconds: toRemove }).toJSDate();
89
117
  }
90
118
 
91
119
  public minusMinutes (start: Date, toRemove: number): Date {
92
120
  return DateTime.fromJSDate(start).minus({ minutes: toRemove }).toJSDate();
93
121
  }
94
122
 
123
+ public minusHours (start: Date, toRemove: number): Date {
124
+ return DateTime.fromJSDate(start).minus({ hours: toRemove }).toJSDate();
125
+ }
126
+
127
+ public minusDays (start: Date, toRemove: number): Date {
128
+ return DateTime.fromJSDate(start).minus({ days: toRemove }).toJSDate();
129
+ }
130
+
95
131
  public minusMonths (start: Date, toRemove: number): Date {
96
132
  return DateTime.fromJSDate(start).minus({ months: toRemove }).toJSDate();
97
133
  }
@@ -100,6 +136,10 @@ class DateService {
100
136
  return DateTime.fromJSDate(start).minus({ years: toRemove }).toJSDate();
101
137
  }
102
138
 
139
+ public minusQuarters (start: Date, toRemove: number): Date {
140
+ return DateTime.fromJSDate(start).minus({ quarters: toRemove }).toJSDate();
141
+ }
142
+
103
143
  public isValidDate (inp: string, format = 'yyyy-MM-dd'): boolean {
104
144
  return DateTime.fromFormat(inp, format).isValid;
105
145
  }
@@ -2,6 +2,7 @@ import { IKeycloakService, Keycloak, Roles } from '../interfaces';
2
2
  import HttpService from './http';
3
3
 
4
4
  class KeycloakService implements IKeycloakService {
5
+
5
6
  async authenticate ({
6
7
  credentials,
7
8
  data,
@@ -49,6 +50,29 @@ class KeycloakService implements IKeycloakService {
49
50
  return response;
50
51
  }
51
52
 
53
+ async getSession ({
54
+ credentials,
55
+ data,
56
+ url,
57
+ }: Keycloak.GetSession.Request): Promise<Keycloak.GetSession.Response> {
58
+ const { data: response } = await HttpService.request<Keycloak.GetSession.Response>({
59
+ baseURL: url,
60
+ method: 'post',
61
+ resourcePath: `/auth/realms/${credentials.realm}/protocol/openid-connect/token/introspect/`,
62
+ headers: {
63
+ 'Cache-Control': 'no-cache',
64
+ 'Content-Type': 'application/x-www-form-urlencoded',
65
+ },
66
+ body: new URLSearchParams({
67
+ client_id: credentials.clientId,
68
+ client_secret: credentials.clientSecret,
69
+ token: data.accessToken,
70
+ }),
71
+ });
72
+
73
+ return response;
74
+ }
75
+
52
76
  async refreshAccess ({
53
77
  credentials,
54
78
  data,