attlaz-client 1.8.10 → 1.8.13

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.
@@ -9,6 +9,7 @@ export declare class OAuthClient {
9
9
  constructor(options: OAuthClientOptions);
10
10
  authenticate(username: string, password: string): Promise<boolean>;
11
11
  authenticate(): Promise<boolean>;
12
+ private refreshTokenPromise;
12
13
  refreshToken(): Promise<void>;
13
14
  isTokenExpires(): boolean;
14
15
  request(action: string, parameters?: any, method?: string, signWithOauthToken?: boolean): Promise<any>;
@@ -15,6 +15,7 @@ class OAuthClient {
15
15
  this.debug = false;
16
16
  this.oauthToken = null;
17
17
  this.oathClientToken = null;
18
+ this.refreshTokenPromise = null;
18
19
  this.options = options;
19
20
  //
20
21
  this.oauthClient = new client_oauth2_1.default({
@@ -29,6 +30,7 @@ class OAuthClient {
29
30
  }
30
31
  async authenticate(username = null, password = null) {
31
32
  //TODO: should we encrypt the password in the client (or is https save enough)?
33
+ console.log('Authenticate');
32
34
  try {
33
35
  let accessToken;
34
36
  if (username !== null && username !== undefined && password !== null && password !== undefined) {
@@ -44,11 +46,14 @@ class OAuthClient {
44
46
  return true;
45
47
  }
46
48
  catch (e) {
47
- console.log(e);
49
+ if (this.debug) {
50
+ console.debug('[Client] Error during authentication', e);
51
+ }
48
52
  throw ClientError_1.ClientError.fromError(e);
49
53
  }
50
54
  }
51
55
  async refreshToken() {
56
+ console.log('Get refresh token');
52
57
  if (this.oauthToken === null) {
53
58
  throw new Error('unable to refresh token, auth token not set');
54
59
  }
@@ -58,8 +63,8 @@ class OAuthClient {
58
63
  this.oathClientToken = this.tokenToOauthClientToken(this.oauthToken);
59
64
  }
60
65
  catch (e) {
61
- const error = ClientError_1.ClientError.fromError(e);
62
- throw error;
66
+ console.log('Error during refresh token', e);
67
+ throw ClientError_1.ClientError.fromError(e);
63
68
  }
64
69
  }
65
70
  else {
@@ -82,7 +87,19 @@ class OAuthClient {
82
87
  throw new ClientError_1.ClientError('Unable to perform request, access token not provided');
83
88
  }
84
89
  if (signWithOauthToken && this.oauthToken.expired()) {
85
- await this.refreshToken();
90
+ if (this.refreshTokenPromise === null) {
91
+ this.refreshTokenPromise = this.refreshToken();
92
+ await this.refreshTokenPromise;
93
+ // this.refreshTokenPromise.then(() => {
94
+ this.refreshTokenPromise = null;
95
+ console.log('Refresh token done');
96
+ // });
97
+ }
98
+ else {
99
+ console.log('Waiting for refresh token promise');
100
+ await this.refreshTokenPromise;
101
+ console.log('Refresh token promise resolved');
102
+ }
86
103
  }
87
104
  }
88
105
  const requestData = this.createRequestData(action, parameters, method, signWithOauthToken);
@@ -9,7 +9,15 @@ class ClientError {
9
9
  this.code = code;
10
10
  }
11
11
  static fromError(error) {
12
- let clientError = new ClientError(error.message);
12
+ console.log('Incoming error', error);
13
+ if (error.body !== undefined && error.body !== null && error.body.error !== undefined && error.body.error !== null) {
14
+ error = error.body.error;
15
+ }
16
+ let message = error;
17
+ if (error.message !== undefined && error.message !== null) {
18
+ message = error.message;
19
+ }
20
+ let clientError = new ClientError(message);
13
21
  //console.error(error);
14
22
  if (error.status !== null && error.status !== undefined) {
15
23
  const statusCode = error.status;
@@ -0,0 +1,5 @@
1
+ export declare class StorageItem {
2
+ key: string;
3
+ value: string | number | boolean | null | any;
4
+ expiration: Date | null;
5
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StorageItem = void 0;
4
+ class StorageItem {
5
+ }
6
+ exports.StorageItem = StorageItem;
@@ -0,0 +1,5 @@
1
+ export declare class StorageItemInformation {
2
+ key: string;
3
+ bytes: number;
4
+ expiration: Date | null;
5
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StorageItemInformation = void 0;
4
+ class StorageItemInformation {
5
+ }
6
+ exports.StorageItemInformation = StorageItemInformation;
@@ -2,7 +2,13 @@ import { Endpoint } from './Endpoint';
2
2
  import { DataResult } from '../Model/Result/DataResult';
3
3
  import { StorageType } from '../Model/Storage/StorageType';
4
4
  import { StorageInformation } from '../Model/Storage/StorageInformation';
5
+ import { StorageItem } from '../Model/Storage/StorageItem';
6
+ import { StorageItemInformation } from '../Model/Storage/StorageItemInformation';
5
7
  export declare class StorageEndpoint extends Endpoint {
6
8
  getInformation(projectEnvironmentId: string, storageType: StorageType): Promise<DataResult<StorageInformation>>;
7
9
  clearPool(projectEnvironmentId: string, storageType: StorageType, poolKey: string): Promise<DataResult<any>>;
10
+ getPoolItemsInformation(projectEnvironmentId: string, storageType: StorageType, poolKey: string): Promise<DataResult<StorageItemInformation[]>>;
11
+ getItem(projectEnvironmentId: string, storageType: StorageType, poolKey: string, storageItemKey: string): Promise<DataResult<StorageItem>>;
12
+ setItem(projectEnvironmentId: string, storageType: StorageType, poolKey: string, storageItem: StorageItem): Promise<DataResult<StorageItem>>;
13
+ deleteItem(projectEnvironmentId: string, storageType: StorageType, poolKey: string, storageItemKey: string): Promise<DataResult<StorageItem>>;
8
14
  }
@@ -7,9 +7,6 @@ class StorageEndpoint extends Endpoint_1.Endpoint {
7
7
  let cmd = '/projectenvironments/' + projectEnvironmentId + '/storage/' + storageType;
8
8
  try {
9
9
  const result = await this.request(cmd, null, 'GET');
10
- // if (Utils.isNullOrUndefined(result)) {
11
- // return null;
12
- // }
13
10
  return result;
14
11
  }
15
12
  catch (ex) {
@@ -23,9 +20,58 @@ class StorageEndpoint extends Endpoint_1.Endpoint {
23
20
  let cmd = '/projectenvironments/' + projectEnvironmentId + '/storage/' + storageType + '/' + poolKey;
24
21
  try {
25
22
  const result = await this.request(cmd, null, 'DELETE');
26
- // if (Utils.isNullOrUndefined(result)) {
27
- // return null;
28
- // }
23
+ return result;
24
+ }
25
+ catch (ex) {
26
+ if (this.httpClient.isDebugEnabled()) {
27
+ console.error('Failed to get storage information', ex);
28
+ }
29
+ throw ex;
30
+ }
31
+ }
32
+ async getPoolItemsInformation(projectEnvironmentId, storageType, poolKey) {
33
+ let cmd = '/projectenvironments/' + projectEnvironmentId + '/storage/' + storageType + '/' + poolKey + '/items';
34
+ try {
35
+ const result = await this.request(cmd, null, 'GET');
36
+ return result;
37
+ }
38
+ catch (ex) {
39
+ if (this.httpClient.isDebugEnabled()) {
40
+ console.error('Failed to get storage information', ex);
41
+ }
42
+ throw ex;
43
+ }
44
+ }
45
+ async getItem(projectEnvironmentId, storageType, poolKey, storageItemKey) {
46
+ let cmd = '/projectenvironments/' + projectEnvironmentId + '/storage/' + storageType + '/' + poolKey + '/items/' + storageItemKey;
47
+ try {
48
+ const result = await this.request(cmd, null, 'GET');
49
+ return result;
50
+ }
51
+ catch (ex) {
52
+ if (this.httpClient.isDebugEnabled()) {
53
+ console.error('Failed to get storage information', ex);
54
+ }
55
+ throw ex;
56
+ }
57
+ }
58
+ async setItem(projectEnvironmentId, storageType, poolKey, storageItem) {
59
+ let cmd = '/projectenvironments/' + projectEnvironmentId + '/storage/' + storageType + '/' + poolKey + '/items/' + storageItem.key;
60
+ try {
61
+ const result = await this.request(cmd, { 'storage_item': storageItem }, 'POST');
62
+ return result;
63
+ }
64
+ catch (ex) {
65
+ if (this.httpClient.isDebugEnabled()) {
66
+ console.error('Failed to get storage information', ex);
67
+ }
68
+ throw ex;
69
+ }
70
+ }
71
+ async deleteItem(projectEnvironmentId, storageType, poolKey, storageItemKey) {
72
+ let cmd = '/projectenvironments/' + projectEnvironmentId + '/storage/' + storageType + '/' + poolKey + '/items/' + storageItemKey;
73
+ try {
74
+ const result = await this.request(cmd, null, 'DELETE');
29
75
  return result;
30
76
  }
31
77
  catch (ex) {
package/dist/index.d.ts CHANGED
@@ -45,6 +45,8 @@ export { DataResult } from './Model/Result/DataResult';
45
45
  export { ResultError } from './Model/Result/ResultError';
46
46
  export { StorageInformation } from './Model/Storage/StorageInformation';
47
47
  export { StorageType } from './Model/Storage/StorageType';
48
+ export { StorageItem } from './Model/Storage/StorageItem';
49
+ export { StorageItemInformation } from './Model/Storage/StorageItemInformation';
48
50
  /** Trigger **/
49
51
  export { ApiTrigger } from './Model/Trigger/ApiTrigger';
50
52
  export { ApiTriggerData } from './Model/Trigger/ApiTriggerData';
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Worker = exports.PlatformImage = exports.Platform = exports.WebhookTriggerData = exports.WebhookTrigger = exports.TriggerType = exports.TriggerData = exports.Trigger = exports.ScheduleTriggerData = exports.ScheduleTrigger = exports.ApiTriggerData = exports.ApiTrigger = exports.StorageType = exports.StorageInformation = exports.ResultError = exports.DataResult = exports.QueueStatus = exports.ProjectEnvironment = exports.ProjectDeployStatus = exports.ProjectDeployCommit = exports.ProjectDeploy = exports.Project = exports.PlatformLanguage = exports.ChannelHistory = exports.Subscriber = exports.WebhookChannelData = exports.SmsChannelData = exports.SlackChannelData = exports.PushChannelData = exports.EmailChannelData = exports.ChannelType = exports.ChannelData = exports.Channel = exports.LogStreamId = exports.LogStream = exports.LogStatus = exports.LogQuery = exports.LogLevel = exports.Log = exports.HealthTestType = exports.HealthAlertStatus = exports.HealthAlert = exports.EventType = exports.ClientError = exports.OAuthClientToken = exports.OAuthClientOptions = exports.OAuthClient = exports.HttpClientResponse = exports.HttpClientRequest = exports.HttpClient = void 0;
4
- exports.TeamsEndpoint = exports.TaskExecutionStatsEndpoint = exports.TaskExecutionRequestEndpoint = exports.TaskExecutionEndpoint = exports.TaskEndpoint = exports.SubscriberEndpoint = exports.StorageEndpoint = exports.SourcesAccountEndpoint = exports.QueueEndpoint = exports.ProjectEnvironmentEndpoint = exports.ProjectDeployEndpoint = exports.PlatformEndpoint = exports.NotificationsEndpoint = exports.TeamMemberEndpoint = exports.LogEndpoint = exports.PlatformLanguageEndpoint = exports.ConfigEndpoint = exports.ProjectEndpoint = exports.ChannelEndpoint = exports.AdapterEndpoint = exports.Endpoint = exports.User = exports.TaskSummary = exports.TaskExecutionStats = exports.TaskExecutionSummary = exports.TaskExecutionStatus = exports.TaskExecutionResponse = exports.TaskExecutionHistory = exports.TaskExecution = exports.Task = exports.State = exports.SourcesAccountRepository = exports.SourcesAccount = exports.PagedResult = exports.Notification = exports.DataValue = exports.Config = exports.AdapterConnection = exports.AdapterConfiguration = exports.Adapter = exports.TeamMemberRole = exports.TeamMemberInviteState = exports.TeamMemberInvite2 = exports.TeamMemberInvite = exports.TeamMember = exports.Team = exports.WorkerState = exports.WorkerInstanceState = exports.WorkerInstance = exports.WorkerConfig = void 0;
5
- exports.Utils = exports.Client = exports.HealthAlertEndpoint = exports.WorkerEndpoint = exports.WorkerConfigEndpoint = exports.UserEndpoint = exports.TriggerEndpoint = void 0;
3
+ exports.Platform = exports.WebhookTriggerData = exports.WebhookTrigger = exports.TriggerType = exports.TriggerData = exports.Trigger = exports.ScheduleTriggerData = exports.ScheduleTrigger = exports.ApiTriggerData = exports.ApiTrigger = exports.StorageItemInformation = exports.StorageItem = exports.StorageType = exports.StorageInformation = exports.ResultError = exports.DataResult = exports.QueueStatus = exports.ProjectEnvironment = exports.ProjectDeployStatus = exports.ProjectDeployCommit = exports.ProjectDeploy = exports.Project = exports.PlatformLanguage = exports.ChannelHistory = exports.Subscriber = exports.WebhookChannelData = exports.SmsChannelData = exports.SlackChannelData = exports.PushChannelData = exports.EmailChannelData = exports.ChannelType = exports.ChannelData = exports.Channel = exports.LogStreamId = exports.LogStream = exports.LogStatus = exports.LogQuery = exports.LogLevel = exports.Log = exports.HealthTestType = exports.HealthAlertStatus = exports.HealthAlert = exports.EventType = exports.ClientError = exports.OAuthClientToken = exports.OAuthClientOptions = exports.OAuthClient = exports.HttpClientResponse = exports.HttpClientRequest = exports.HttpClient = void 0;
4
+ exports.TaskExecutionRequestEndpoint = exports.TaskExecutionEndpoint = exports.TaskEndpoint = exports.SubscriberEndpoint = exports.StorageEndpoint = exports.SourcesAccountEndpoint = exports.QueueEndpoint = exports.ProjectEnvironmentEndpoint = exports.ProjectDeployEndpoint = exports.PlatformEndpoint = exports.NotificationsEndpoint = exports.TeamMemberEndpoint = exports.LogEndpoint = exports.PlatformLanguageEndpoint = exports.ConfigEndpoint = exports.ProjectEndpoint = exports.ChannelEndpoint = exports.AdapterEndpoint = exports.Endpoint = exports.User = exports.TaskSummary = exports.TaskExecutionStats = exports.TaskExecutionSummary = exports.TaskExecutionStatus = exports.TaskExecutionResponse = exports.TaskExecutionHistory = exports.TaskExecution = exports.Task = exports.State = exports.SourcesAccountRepository = exports.SourcesAccount = exports.PagedResult = exports.Notification = exports.DataValue = exports.Config = exports.AdapterConnection = exports.AdapterConfiguration = exports.Adapter = exports.TeamMemberRole = exports.TeamMemberInviteState = exports.TeamMemberInvite2 = exports.TeamMemberInvite = exports.TeamMember = exports.Team = exports.WorkerState = exports.WorkerInstanceState = exports.WorkerInstance = exports.WorkerConfig = exports.Worker = exports.PlatformImage = void 0;
5
+ exports.Utils = exports.Client = exports.HealthAlertEndpoint = exports.WorkerEndpoint = exports.WorkerConfigEndpoint = exports.UserEndpoint = exports.TriggerEndpoint = exports.TeamsEndpoint = exports.TaskExecutionStatsEndpoint = void 0;
6
6
  /**
7
7
  * @module
8
8
  * @description
@@ -90,6 +90,10 @@ var StorageInformation_1 = require("./Model/Storage/StorageInformation");
90
90
  Object.defineProperty(exports, "StorageInformation", { enumerable: true, get: function () { return StorageInformation_1.StorageInformation; } });
91
91
  var StorageType_1 = require("./Model/Storage/StorageType");
92
92
  Object.defineProperty(exports, "StorageType", { enumerable: true, get: function () { return StorageType_1.StorageType; } });
93
+ var StorageItem_1 = require("./Model/Storage/StorageItem");
94
+ Object.defineProperty(exports, "StorageItem", { enumerable: true, get: function () { return StorageItem_1.StorageItem; } });
95
+ var StorageItemInformation_1 = require("./Model/Storage/StorageItemInformation");
96
+ Object.defineProperty(exports, "StorageItemInformation", { enumerable: true, get: function () { return StorageItemInformation_1.StorageItemInformation; } });
93
97
  /** Trigger **/
94
98
  var ApiTrigger_1 = require("./Model/Trigger/ApiTrigger");
95
99
  Object.defineProperty(exports, "ApiTrigger", { enumerable: true, get: function () { return ApiTrigger_1.ApiTrigger; } });
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "1.8.10";
1
+ export declare const VERSION = "1.8.13";
package/dist/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = "1.8.10";
4
+ exports.VERSION = "1.8.13";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "attlaz-client",
3
- "version": "1.8.10",
3
+ "version": "1.8.13",
4
4
  "description": "Javascript Client to access Attlaz API",
5
5
  "types": "./dist/index.d.ts",
6
6
  "main": "./dist/index.js",