@awarevue/agent-sdk 2.0.73 → 2.0.74

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/agent-app.js CHANGED
@@ -11,7 +11,15 @@ class AgentApp {
11
11
  this.agent = agent;
12
12
  this.options = options;
13
13
  this.sub = null;
14
- this.handleResponse$ = (requestId) => (obs) => obs.pipe((0, rxjs_1.tap)({
14
+ this.handleResponse$ = (requestId, responseBuilder) => (obs) => obs.pipe((0, rxjs_1.mergeMap)((result) => result instanceof agent_error_1.AgentProgressMessage
15
+ ? (0, rxjs_1.of)({
16
+ kind: 'progress',
17
+ requestId,
18
+ message: result.message,
19
+ })
20
+ : responseBuilder
21
+ ? (0, rxjs_1.of)(responseBuilder(result))
22
+ : rxjs_1.EMPTY), (0, rxjs_1.tap)({
15
23
  error: (error) => console.error('Error processing request', requestId, (0, utils_1.stringifyError)(error)),
16
24
  }), (0, rxjs_1.catchError)((error) => (0, rxjs_1.of)({
17
25
  kind: 'error-rs',
@@ -63,25 +71,28 @@ class AgentApp {
63
71
  case 'command':
64
72
  return this.agent.runCommand$(context, message).pipe(
65
73
  // if command observable completes without emitting, throw not supported error
66
- (0, rxjs_1.throwIfEmpty)(() => new agent_error_1.AgentError(`Agent ${context.provider} does not support command ${message.command}`, 'NOT_SUPPORTED')),
67
- // success
68
- (0, rxjs_1.map)(() => ({
74
+ (0, rxjs_1.throwIfEmpty)(() => new agent_error_1.AgentError(`Agent ${context.provider} does not support command ${message.command}`, 'NOT_SUPPORTED')), this.handleResponse$(message.id, (result) => ({
69
75
  kind: 'command-rs',
70
76
  requestId: message.id,
71
- })), this.handleResponse$(message.id));
77
+ result,
78
+ })));
72
79
  case 'query':
73
80
  if (!this.agent.getResult$) {
74
- return (0, rxjs_1.throwError)(() => new agent_error_1.AgentError(`Agent ${context.provider} does not support queries`, 'NOT_SUPPORTED')).pipe(this.handleResponse$(message.id));
81
+ return (0, rxjs_1.throwError)(() => new agent_error_1.AgentError(`Agent ${context.provider} does not support queries`, 'NOT_SUPPORTED')).pipe(this.handleResponse$(message.id, (result) => ({
82
+ kind: 'query-rs',
83
+ requestId: message.id,
84
+ result,
85
+ })));
75
86
  }
76
87
  return this.agent.getResult$(context, message).pipe(
77
88
  // if query observable completes without emitting, throw not supported error
78
89
  (0, rxjs_1.throwIfEmpty)(() => new agent_error_1.AgentError(`Agent ${context.provider} does not support query ${message.query}`, 'NOT_SUPPORTED')),
79
90
  // success
80
- (0, rxjs_1.map)((result) => ({
91
+ this.handleResponse$(message.id, (result) => ({
81
92
  kind: 'query-rs',
82
93
  requestId: message.id,
83
94
  result,
84
- })), this.handleResponse$(message.id));
95
+ })));
85
96
  case 'push-file':
86
97
  if (!this.agent.pushFile) {
87
98
  return (0, rxjs_1.throwError)(() => new agent_error_1.AgentError(`Agent ${context.provider} does not support file pushing`, 'NOT_SUPPORTED'));
@@ -91,13 +102,11 @@ class AgentApp {
91
102
  (0, rxjs_1.mergeMap)(() => rxjs_1.EMPTY), this.handleResponse$(message.id));
92
103
  case 'get-available-devices':
93
104
  // get available devices
94
- return this.agent.getDevicesAndRelations$(context).pipe(
95
- // success
96
- (0, rxjs_1.map)((rs) => ({
105
+ return this.agent.getDevicesAndRelations$(context).pipe(this.handleResponse$(message.id, (result) => ({
106
+ ...result,
97
107
  kind: 'get-available-devices-rs',
98
- ...rs,
99
108
  requestId: message.id,
100
- })), this.handleResponse$(message.id));
109
+ })));
101
110
  case 'validate-change':
102
111
  let validateOb$ = (0, rxjs_1.throwError)(() => new agent_error_1.AgentError(`Agent ${context.provider} does not support access change validation`, 'NOT_SUPPORTED'));
103
112
  if (this.agent.validateAccessChange$) {
@@ -111,22 +120,22 @@ class AgentApp {
111
120
  : v$(validationContext, message);
112
121
  }));
113
122
  }
114
- return validateOb$.pipe((0, rxjs_1.map)((issues) => ({
123
+ return validateOb$.pipe(this.handleResponse$(message.id, (result) => ({
115
124
  kind: 'validate-change-rs',
116
125
  requestId: message.id,
117
- issues,
118
- })), this.handleResponse$(message.id));
126
+ issues: result,
127
+ })));
119
128
  case 'apply-change':
120
129
  // apply access change
121
130
  const applyContext = this.createAccessChangeContext(context, message.refMap, objectCache);
122
131
  const applyOb$ = !this.agent.applyAccessChange$
123
132
  ? (0, rxjs_1.throwError)(() => new agent_error_1.AgentError(`Agent ${context.provider} does not support access change apply`, 'NOT_SUPPORTED'))
124
133
  : this.agent.applyAccessChange$(applyContext, message);
125
- return applyOb$.pipe((0, rxjs_1.map)((result) => ({
134
+ return applyOb$.pipe(this.handleResponse$(message.id, (result) => ({
126
135
  kind: 'apply-change-rs',
127
136
  requestId: message.id,
128
137
  refs: result,
129
- })), this.handleResponse$(message.id));
138
+ })));
130
139
  default:
131
140
  return rxjs_1.EMPTY;
132
141
  }
@@ -170,13 +179,11 @@ class AgentApp {
170
179
  provider,
171
180
  config,
172
181
  })
173
- .pipe(
174
- // success
175
- (0, rxjs_1.map)((issues) => ({
182
+ .pipe(this.handleResponse$(message.id, (result) => ({
176
183
  kind: 'validate-config-rs',
177
184
  requestId: message.id,
178
- issues,
179
- })), this.handleResponse$(message.id));
185
+ issues: result,
186
+ })));
180
187
  }));
181
188
  return (0, rxjs_1.merge)(registration$, startStop$, validateConfig$);
182
189
  };
@@ -3,3 +3,7 @@ export declare class AgentError extends Error {
3
3
  readonly code: AgentErrorCode;
4
4
  constructor(message: string, code: AgentErrorCode);
5
5
  }
6
+ export declare class AgentProgressMessage {
7
+ readonly message: string;
8
+ constructor(message: string);
9
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AgentError = void 0;
3
+ exports.AgentProgressMessage = exports.AgentError = void 0;
4
4
  class AgentError extends Error {
5
5
  constructor(message, code) {
6
6
  super(message);
@@ -9,3 +9,9 @@ class AgentError extends Error {
9
9
  }
10
10
  }
11
11
  exports.AgentError = AgentError;
12
+ class AgentProgressMessage {
13
+ constructor(message) {
14
+ this.message = message;
15
+ }
16
+ }
17
+ exports.AgentProgressMessage = AgentProgressMessage;
package/dist/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "type": "git",
5
5
  "url": "git+https://github.com/Linc-Security-Systems/aware-essentials.git"
6
6
  },
7
- "version": "2.0.73",
7
+ "version": "2.0.74",
8
8
  "description": "SDK for building Agent implementations that speak the agent protocol.",
9
9
  "author": "Yaser Awajan",
10
10
  "license": "MIT",
@@ -31,12 +31,12 @@
31
31
  "lint:fix": "yarn lint --fix"
32
32
  },
33
33
  "peerDependencies": {
34
- "@awarevue/api-types": "2.0.73",
34
+ "@awarevue/api-types": "2.0.74",
35
35
  "rxjs": "^7.8.2",
36
36
  "ws": "^8"
37
37
  },
38
38
  "devDependencies": {
39
- "@awarevue/api-types": "2.0.73",
39
+ "@awarevue/api-types": "2.0.74",
40
40
  "@types/node": "^20.12.7",
41
41
  "@types/ws": "^8.18.1",
42
42
  "@typescript-eslint/eslint-plugin": "^8.31.1",
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "type": "git",
5
5
  "url": "git+https://github.com/Linc-Security-Systems/aware-essentials.git"
6
6
  },
7
- "version": "2.0.73",
7
+ "version": "2.0.74",
8
8
  "description": "SDK for building Agent implementations that speak the agent protocol.",
9
9
  "author": "Yaser Awajan",
10
10
  "license": "MIT",
@@ -31,12 +31,12 @@
31
31
  "lint:fix": "yarn lint --fix"
32
32
  },
33
33
  "peerDependencies": {
34
- "@awarevue/api-types": "2.0.73",
34
+ "@awarevue/api-types": "2.0.74",
35
35
  "rxjs": "^7.8.2",
36
36
  "ws": "^8"
37
37
  },
38
38
  "devDependencies": {
39
- "@awarevue/api-types": "2.0.73",
39
+ "@awarevue/api-types": "2.0.74",
40
40
  "@types/node": "^20.12.7",
41
41
  "@types/ws": "^8.18.1",
42
42
  "@typescript-eslint/eslint-plugin": "^8.31.1",