@swimlane/turbine-sdk 0.6.1 → 1.3.1

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 (75) hide show
  1. package/README.md +12 -12
  2. package/dist/Sensor/BaseSensor.d.ts +3 -3
  3. package/dist/Sensor/BaseSensor.js +3 -3
  4. package/dist/Sensor/Errors.d.ts +6 -0
  5. package/dist/Sensor/Errors.js +15 -0
  6. package/dist/Sensor/{HttpSensorPodInterface.d.ts → HttpSensorAgentInterface.d.ts} +7 -6
  7. package/dist/Sensor/HttpSensorAgentInterface.js +99 -0
  8. package/dist/Sensor/{MockSensorPodInterface.d.ts → MockSensorAgentInterface.d.ts} +6 -6
  9. package/dist/Sensor/MockSensorAgentInterface.js +76 -0
  10. package/dist/Sensor/{SensorPodInterface.d.ts → SensorAgentInterface.d.ts} +4 -4
  11. package/dist/Sensor/SensorAgentInterface.js +24 -0
  12. package/dist/Sensor/SensorConfig.d.ts +4 -4
  13. package/dist/Sensor/SensorConfig.js +1 -1
  14. package/dist/Sensor/index.d.ts +4 -3
  15. package/dist/Sensor/index.js +5 -4
  16. package/node_modules/axios/CHANGELOG.md +901 -0
  17. package/node_modules/axios/LICENSE +19 -0
  18. package/node_modules/axios/README.md +909 -0
  19. package/node_modules/axios/SECURITY.md +5 -0
  20. package/node_modules/axios/UPGRADE_GUIDE.md +168 -0
  21. package/node_modules/axios/dist/axios.js +2277 -0
  22. package/node_modules/axios/dist/axios.map +1 -0
  23. package/node_modules/axios/dist/axios.min.js +2 -0
  24. package/node_modules/axios/dist/axios.min.map +1 -0
  25. package/node_modules/axios/index.d.ts +221 -0
  26. package/node_modules/axios/index.js +1 -0
  27. package/node_modules/axios/lib/adapters/README.md +37 -0
  28. package/node_modules/axios/lib/adapters/http.js +404 -0
  29. package/node_modules/axios/lib/adapters/xhr.js +212 -0
  30. package/node_modules/axios/lib/axios.js +57 -0
  31. package/node_modules/axios/lib/cancel/Cancel.js +19 -0
  32. package/node_modules/axios/lib/cancel/CancelToken.js +119 -0
  33. package/node_modules/axios/lib/cancel/isCancel.js +5 -0
  34. package/node_modules/axios/lib/core/Axios.js +148 -0
  35. package/node_modules/axios/lib/core/InterceptorManager.js +54 -0
  36. package/node_modules/axios/lib/core/README.md +8 -0
  37. package/node_modules/axios/lib/core/buildFullPath.js +20 -0
  38. package/node_modules/axios/lib/core/createError.js +18 -0
  39. package/node_modules/axios/lib/core/dispatchRequest.js +87 -0
  40. package/node_modules/axios/lib/core/enhanceError.js +43 -0
  41. package/node_modules/axios/lib/core/mergeConfig.js +99 -0
  42. package/node_modules/axios/lib/core/settle.js +25 -0
  43. package/node_modules/axios/lib/core/transformData.js +22 -0
  44. package/node_modules/axios/lib/defaults.js +134 -0
  45. package/node_modules/axios/lib/env/README.md +3 -0
  46. package/node_modules/axios/lib/env/data.js +3 -0
  47. package/node_modules/axios/lib/helpers/README.md +7 -0
  48. package/node_modules/axios/lib/helpers/bind.js +11 -0
  49. package/node_modules/axios/lib/helpers/buildURL.js +70 -0
  50. package/node_modules/axios/lib/helpers/combineURLs.js +14 -0
  51. package/node_modules/axios/lib/helpers/cookies.js +53 -0
  52. package/node_modules/axios/lib/helpers/deprecatedMethod.js +24 -0
  53. package/node_modules/axios/lib/helpers/isAbsoluteURL.js +14 -0
  54. package/node_modules/axios/lib/helpers/isAxiosError.js +13 -0
  55. package/node_modules/axios/lib/helpers/isURLSameOrigin.js +68 -0
  56. package/node_modules/axios/lib/helpers/normalizeHeaderName.js +12 -0
  57. package/node_modules/axios/lib/helpers/parseHeaders.js +53 -0
  58. package/node_modules/axios/lib/helpers/spread.js +27 -0
  59. package/node_modules/axios/lib/helpers/toFormData.js +55 -0
  60. package/node_modules/axios/lib/helpers/validator.js +82 -0
  61. package/node_modules/axios/lib/utils.js +349 -0
  62. package/node_modules/axios/package.json +114 -0
  63. package/node_modules/axios/tsconfig.json +14 -0
  64. package/node_modules/axios/tslint.json +6 -0
  65. package/node_modules/follow-redirects/LICENSE +18 -0
  66. package/node_modules/follow-redirects/README.md +148 -0
  67. package/node_modules/follow-redirects/debug.js +15 -0
  68. package/node_modules/follow-redirects/http.js +1 -0
  69. package/node_modules/follow-redirects/https.js +1 -0
  70. package/node_modules/follow-redirects/index.js +573 -0
  71. package/node_modules/follow-redirects/package.json +95 -0
  72. package/package.json +34 -31
  73. package/dist/Sensor/HttpSensorPodInterface.js +0 -78
  74. package/dist/Sensor/MockSensorPodInterface.js +0 -73
  75. package/dist/Sensor/SensorPodInterface.js +0 -10
package/README.md CHANGED
@@ -13,7 +13,7 @@ The easiest way to create a new sensor would be to extend the `BaseSensor` class
13
13
  `BaseSensor` provides the following class properties:
14
14
 
15
15
  - `config`: [SensorConfig](#sensorconfig) This is all the configuration information for your instance
16
- - `turbine`: [SensorPodInterface](#sensorpodinterface) This is a collection of helper functions
16
+ - `sdk`: [SensorAgentInterface](#sensoragentinterface) This is a collection of helper functions
17
17
 
18
18
  #### Example
19
19
 
@@ -35,18 +35,18 @@ export class MySensor extends BaseSensor {
35
35
  body.push(chunk);
36
36
  })
37
37
  .on('end', () => {
38
- this.turbine.pod.sendEvent('MyEvent', Buffer.concat(body).toString());
38
+ this.sdk.sendEvent('MyEvent', Buffer.concat(body).toString());
39
39
  res.end('ok');
40
40
  });
41
41
  });
42
42
 
43
43
  this.server.on('error', err => {
44
- this.turbine.logger.error(err.message);
44
+ this.sdk.log.error(err.message);
45
45
  reject(err);
46
46
  });
47
47
 
48
48
  this.server.listen(parseInt(this.config.inputs.port, 10), () => {
49
- this.turbine.logger.debug(`Server started on port: ${this.config.inputs.port}`);
49
+ this.sdk.log.debug(`Server started on port: ${this.config.inputs.port}`);
50
50
  resolve();
51
51
  });
52
52
  });
@@ -77,18 +77,18 @@ class MySensor extends BaseSensor {
77
77
  body.push(chunk);
78
78
  })
79
79
  .on('end', () => {
80
- this.turbine.pod.sendEvent('MyEvent', Buffer.concat(body).toString());
80
+ this.sdk.sendEvent('MyEvent', Buffer.concat(body).toString());
81
81
  res.end('ok');
82
82
  });
83
83
  });
84
84
 
85
85
  this.server.on('error', err => {
86
- this.turbine.logger.error(err.message);
86
+ this.sdk.log.error(err.message);
87
87
  reject(err);
88
88
  });
89
89
 
90
90
  this.server.listen(parseInt(this.config.inputs.port, 10), () => {
91
- this.turbine.logger.info(`Server started on port: ${this.config.inputs.port}`);
91
+ this.sdk.log.info(`Server started on port: ${this.config.inputs.port}`);
92
92
  resolve();
93
93
  });
94
94
  });
@@ -113,7 +113,7 @@ If you wish to build your own Sensor class, your class will need to match the fo
113
113
 
114
114
  **constructor**: Your constructor will receive two arguments:
115
115
 
116
- - an instance of the [SensorPodInterface](#sensorpodinterface)
116
+ - an instance of the [SensorAgentInterface](#sensoragentinterface)
117
117
  - a [SensorConfig](#sensorconfig) object
118
118
 
119
119
  **start()**: a start method that returns a `Promise` that resolves when the sensor is started
@@ -128,13 +128,13 @@ An object with all the configuration information for your sensor:
128
128
  - `sensor`: The sensor manifest
129
129
  - `inputs`: Values for any inputs your instance may need
130
130
 
131
- ## SensorPodInterface
131
+ ## SensorAgentInterface
132
132
 
133
133
  An object that contains helper functions so your sensor can interface with Turbine
134
134
 
135
- - `pod`: contains functions to communicate with Turbine
136
- - `sendEvent(type, message)`: Send an event to Turbine
137
- - `logger`: contains functions to log data back to Turbine
135
+ - `sendEvent(type, message)`: Send an event to Turbine
136
+ - throws `PayloadTooLargeException` or `SendEventException` (which can crash your sensor)
137
+ - `log`: contains functions to log data back to Turbine
138
138
  - `critical(message, ...opts)`: Send a critical log message
139
139
  - `error(message, ...opts)`: Send an error log message
140
140
  - `warn(message, ...opts)`: Send a warning log message
@@ -1,9 +1,9 @@
1
- import { SensorPodInterface } from './SensorPodInterface';
1
+ import { SensorAgentInterface } from './SensorAgentInterface';
2
2
  import { SensorConfig } from './SensorConfig';
3
3
  export declare abstract class BaseSensor<T = any> {
4
- protected turbine: SensorPodInterface;
4
+ protected sdk: SensorAgentInterface;
5
5
  protected config: SensorConfig<T>;
6
- constructor(turbine: SensorPodInterface, config: SensorConfig<T>);
6
+ constructor(sdk: SensorAgentInterface, config: SensorConfig<T>);
7
7
  abstract start(): Promise<void>;
8
8
  abstract stop(): Promise<void>;
9
9
  }
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  class BaseSensor {
4
- constructor(turbine, config) {
5
- this.turbine = turbine;
4
+ constructor(sdk, config) {
5
+ this.sdk = sdk;
6
6
  this.config = config;
7
7
  }
8
8
  }
9
9
  exports.BaseSensor = BaseSensor;
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZVNlbnNvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZW5zb3IvQmFzZVNlbnNvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLE1BQXNCLFVBQVU7SUFDOUIsWUFBc0IsT0FBMkIsRUFBWSxNQUF1QjtRQUE5RCxZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUFZLFdBQU0sR0FBTixNQUFNLENBQWlCO0lBQUcsQ0FBQztDQUt6RjtBQU5ELGdDQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2Vuc29yUG9kSW50ZXJmYWNlIH0gZnJvbSAnLi9TZW5zb3JQb2RJbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2Vuc29yQ29uZmlnIH0gZnJvbSAnLi9TZW5zb3JDb25maWcnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVNlbnNvcjxUID0gYW55PiB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB0dXJiaW5lOiBTZW5zb3JQb2RJbnRlcmZhY2UsIHByb3RlY3RlZCBjb25maWc6IFNlbnNvckNvbmZpZzxUPikge31cblxuICBhYnN0cmFjdCBhc3luYyBzdGFydCgpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IGFzeW5jIHN0b3AoKTogUHJvbWlzZTx2b2lkPjtcbn1cbiJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZVNlbnNvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TZW5zb3IvQmFzZVNlbnNvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLE1BQXNCLFVBQVU7SUFDOUIsWUFBc0IsR0FBeUIsRUFBWSxNQUF1QjtRQUE1RCxRQUFHLEdBQUgsR0FBRyxDQUFzQjtRQUFZLFdBQU0sR0FBTixNQUFNLENBQWlCO0lBQUcsQ0FBQztDQUt2RjtBQU5ELGdDQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2Vuc29yQWdlbnRJbnRlcmZhY2UgfSBmcm9tICcuL1NlbnNvckFnZW50SW50ZXJmYWNlJztcbmltcG9ydCB7IFNlbnNvckNvbmZpZyB9IGZyb20gJy4vU2Vuc29yQ29uZmlnJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VTZW5zb3I8VCA9IGFueT4ge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2RrOiBTZW5zb3JBZ2VudEludGVyZmFjZSwgcHJvdGVjdGVkIGNvbmZpZzogU2Vuc29yQ29uZmlnPFQ+KSB7fVxuXG4gIGFic3RyYWN0IGFzeW5jIHN0YXJ0KCk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgYXN5bmMgc3RvcCgpOiBQcm9taXNlPHZvaWQ+O1xufVxuIl19
@@ -0,0 +1,6 @@
1
+ export declare class SendEventException extends Error {
2
+ constructor();
3
+ }
4
+ export declare class PayloadTooLargeException extends Error {
5
+ constructor();
6
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class SendEventException extends Error {
4
+ constructor() {
5
+ super('Failed to send event to agent');
6
+ }
7
+ }
8
+ exports.SendEventException = SendEventException;
9
+ class PayloadTooLargeException extends Error {
10
+ constructor() {
11
+ super('Event payload too large. Failed to send event to agent');
12
+ }
13
+ }
14
+ exports.PayloadTooLargeException = PayloadTooLargeException;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NlbnNvci9FcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFhLGtCQUFtQixTQUFRLEtBQUs7SUFDM0M7UUFDRSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUN6QyxDQUFDO0NBQ0Y7QUFKRCxnREFJQztBQUVELE1BQWEsd0JBQXlCLFNBQVEsS0FBSztJQUNqRDtRQUNFLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDRjtBQUpELDREQUlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFNlbmRFdmVudEV4Y2VwdGlvbiBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ0ZhaWxlZCB0byBzZW5kIGV2ZW50IHRvIGFnZW50Jyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBheWxvYWRUb29MYXJnZUV4Y2VwdGlvbiBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ0V2ZW50IHBheWxvYWQgdG9vIGxhcmdlLiBGYWlsZWQgdG8gc2VuZCBldmVudCB0byBhZ2VudCcpO1xuICB9XG59XG4iXX0=
@@ -1,21 +1,22 @@
1
- import { SensorPodInterface } from './SensorPodInterface';
1
+ import { SensorAgentInterface } from './SensorAgentInterface';
2
2
  import { AxiosInstance } from 'axios';
3
3
  import { SensorHelloResponse } from './SensorConfig';
4
- export declare class HttpSensorPodInterface extends SensorPodInterface {
4
+ export declare class HttpSensorAgentInterface extends SensorAgentInterface {
5
5
  private socketPath;
6
- readonly logger: {
6
+ readonly log: {
7
7
  crit: (message: string, ...opts: any[]) => void;
8
8
  error: (message: string, ...opts: any[]) => void;
9
9
  warn: (message: string, ...opts: any[]) => void;
10
10
  info: (message: string, ...opts: any[]) => void;
11
11
  debug: (message: string, ...opts: any[]) => void;
12
12
  };
13
- readonly pod: {
13
+ readonly system: {
14
14
  hello: () => Promise<SensorHelloResponse>;
15
15
  newState: (state: string) => Promise<void>;
16
- sendEvent: (type: string, data: any) => Promise<void>;
17
16
  };
18
17
  request: AxiosInstance;
19
18
  constructor(id: string, socketPath: string);
20
- private log;
19
+ sendEvent(type: string, data: any): Promise<void>;
20
+ private _log;
21
+ private checkException;
21
22
  }
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const SensorAgentInterface_1 = require("./SensorAgentInterface");
13
+ const axios_1 = require("axios");
14
+ const Errors_1 = require("./Errors");
15
+ class HttpSensorAgentInterface extends SensorAgentInterface_1.SensorAgentInterface {
16
+ constructor(id, socketPath) {
17
+ super(id);
18
+ this.socketPath = socketPath;
19
+ // bug in typings
20
+ this.request = axios_1.default.create({
21
+ socketPath
22
+ });
23
+ }
24
+ get log() {
25
+ return {
26
+ crit: (message, ...opts) => this._log('crit', message, ...opts),
27
+ error: (message, ...opts) => this._log('error', message, ...opts),
28
+ warn: (message, ...opts) => this._log('warn', message, ...opts),
29
+ info: (message, ...opts) => this._log('info', message, ...opts),
30
+ debug: (message, ...opts) => this._log('debug', message, ...opts)
31
+ };
32
+ }
33
+ get system() {
34
+ return {
35
+ hello: () => __awaiter(this, void 0, void 0, function* () {
36
+ try {
37
+ const response = yield this.request.post('/hello');
38
+ return response.data;
39
+ }
40
+ catch (err) {
41
+ this.log.error('Unable to get hello message from agent', err);
42
+ throw new Error('Unable to get hello message from agent');
43
+ }
44
+ }),
45
+ newState: (state) => __awaiter(this, void 0, void 0, function* () {
46
+ this.request.post('/state', { state }).catch(err => this.log.error('Unable to send new state to agent', err));
47
+ })
48
+ };
49
+ }
50
+ sendEvent(type, data) {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ const response = yield this.request.post('/event', {
53
+ type,
54
+ data
55
+ }, {
56
+ validateStatus: (status) => {
57
+ return true;
58
+ },
59
+ maxContentLength: Infinity
60
+ });
61
+ this.checkException(response.status, response.statusText, response.data);
62
+ });
63
+ }
64
+ _log(level, message, ...opts) {
65
+ // log it remotely
66
+ this.request
67
+ .post('/log', {
68
+ level,
69
+ message,
70
+ opts
71
+ })
72
+ .catch(err => console.error('Unable to send log message to Pod', err));
73
+ // log it locally
74
+ const optionalParams = opts.length ? opts : '';
75
+ switch (level) {
76
+ case 'error':
77
+ case 'crit':
78
+ console.error(message, optionalParams);
79
+ break;
80
+ case 'debug':
81
+ // Set to .log vs .debug for pre Node 9.3 compat
82
+ // See https://nodejs.org/api/console.html#console_console_debug_data_args
83
+ console.log(message, optionalParams);
84
+ break;
85
+ default:
86
+ console.info(message, optionalParams);
87
+ }
88
+ }
89
+ checkException(statusCode, reason, body) {
90
+ if (statusCode === 413) {
91
+ throw new Errors_1.PayloadTooLargeException();
92
+ }
93
+ else if (statusCode < 200 || statusCode >= 300 || (statusCode === 200 && body === 'NOT OK')) {
94
+ throw new Errors_1.SendEventException();
95
+ }
96
+ }
97
+ }
98
+ exports.HttpSensorAgentInterface = HttpSensorAgentInterface;
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFNlbnNvckFnZW50SW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NlbnNvci9IdHRwU2Vuc29yQWdlbnRJbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxpRUFBOEQ7QUFDOUQsaUNBQTZDO0FBRTdDLHFDQUF3RTtBQUV4RSxNQUFhLHdCQUF5QixTQUFRLDJDQUFvQjtJQThCaEUsWUFBWSxFQUFVLEVBQVUsVUFBa0I7UUFDaEQsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRG9CLGVBQVUsR0FBVixVQUFVLENBQVE7UUFHaEQsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsZUFBSyxDQUFDLE1BQU0sQ0FBTTtZQUMvQixVQUFVO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQXBDRCxJQUFJLEdBQUc7UUFDTCxPQUFPO1lBQ0wsSUFBSSxFQUFFLENBQUMsT0FBZSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDdkUsS0FBSyxFQUFFLENBQUMsT0FBZSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDekUsSUFBSSxFQUFFLENBQUMsT0FBZSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDdkUsSUFBSSxFQUFFLENBQUMsT0FBZSxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDdkUsS0FBSyxFQUFFLENBQUMsT0FB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QUFVLEtBQUssR0FBRyxJQUFJLElBQUksS0FBSyxRQUFRLENBQUMsRUFBRTtZQUM3RixNQUFNLElBQUksMkJBQWtCLEVBQUUsQ0FBQztTQUNoQztJQUNILENBQUM7Q0FDRjtBQTFGRCw0REEwRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZW5zb3JBZ2VudEludGVyZmFjZSB9IGZyb20gJy4vU2Vuc29yQWdlbnRJbnRlcmZhY2UnO1xuaW1wb3J0IGF4aW9zLCB7IEF4aW9zSW5zdGFuY2UgfSBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBTZW5zb3JIZWxsb1Jlc3BvbnNlIH0gZnJvbSAnLi9TZW5zb3JDb25maWcnO1xuaW1wb3J0IHsgUGF5bG9hZFRvb0xhcmdlRXhjZXB0aW9uLCBTZW5kRXZlbnRFeGNlcHRpb24gfSBmcm9tICcuL0Vycm9ycyc7XG5cbmV4cG9ydCBjbGFzcyBIdHRwU2Vuc29yQWdlbnRJbnRlcmZhY2UgZXh0ZW5kcyBTZW5zb3JBZ2VudEludGVyZmFjZSB7XG4gIGdldCBsb2coKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNyaXQ6IChtZXNzYWdlOiBzdHJpbmcsIC4uLm9wdHMpID0+IHRoaXMuX2xvZygnY3JpdCcsIG1lc3NhZ2UsIC4uLm9wdHMpLFxuICAgICAgZXJyb3I6IChtZXNzYWdlOiBzdHJpbmcsIC4uLm9wdHMpID0+IHRoaXMuX2xvZygnZXJyb3InLCBtZXNzYWdlLCAuLi5vcHRzKSxcbiAgICAgIHdhcm46IChtZXNzYWdlOiBzdHJpbmcsIC4uLm9wdHMpID0+IHRoaXMuX2xvZygnd2FybicsIG1lc3NhZ2UsIC4uLm9wdHMpLFxuICAgICAgaW5mbzogKG1lc3NhZ2U6IHN0cmluZywgLi4ub3B0cykgPT4gdGhpcy5fbG9nKCdpbmZvJywgbWVzc2FnZSwgLi4ub3B0cyksXG4gICAgICBkZWJ1ZzogKG1lc3NhZ2U6IHN0cmluZywgLi4ub3B0cykgPT4gdGhpcy5fbG9nKCdkZWJ1ZycsIG1lc3NhZ2UsIC4uLm9wdHMpXG4gICAgfTtcbiAgfVxuXG4gIGdldCBzeXN0ZW0oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlbGxvOiBhc3luYyAoKTogUHJvbWlzZTxTZW5zb3JIZWxsb1Jlc3BvbnNlPiA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QucG9zdCgnL2hlbGxvJyk7XG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIHRoaXMubG9nLmVycm9yKCdVbmFibGUgdG8gZ2V0IGhlbGxvIG1lc3NhZ2UgZnJvbSBhZ2VudCcsIGVycik7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZ2V0IGhlbGxvIG1lc3NhZ2UgZnJvbSBhZ2VudCcpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgbmV3U3RhdGU6IGFzeW5jIChzdGF0ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgIHRoaXMucmVxdWVzdC5wb3N0KCcvc3RhdGUnLCB7IHN0YXRlIH0pLmNhdGNoKGVyciA9PiB0aGlzLmxvZy5lcnJvcignVW5hYmxlIHRvIHNlbmQgbmV3IHN0YXRlIHRvIGFnZW50JywgZXJyKSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHJlcXVlc3Q6IEF4aW9zSW5zdGFuY2U7XG5cbiAgY29uc3RydWN0b3IoaWQ6IHN0cmluZywgcHJpdmF0ZSBzb2NrZXRQYXRoOiBzdHJpbmcpIHtcbiAgICBzdXBlcihpZCk7XG5cbiAgICAvLyBidWcgaW4gdHlwaW5nc1xuICAgIHRoaXMucmVxdWVzdCA9IGF4aW9zLmNyZWF0ZSg8YW55PntcbiAgICAgIHNvY2tldFBhdGhcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNlbmRFdmVudCh0eXBlOiBzdHJpbmcsIGRhdGE6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0LnBvc3QoXG4gICAgICAnL2V2ZW50JyxcbiAgICAgIHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgZGF0YVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsaWRhdGVTdGF0dXM6IChzdGF0dXM6IG51bWJlcik6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9LFxuICAgICAgICBtYXhDb250ZW50TGVuZ3RoOiBJbmZpbml0eVxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5jaGVja0V4Y2VwdGlvbihyZXNwb25zZS5zdGF0dXMsIHJlc3BvbnNlLnN0YXR1c1RleHQsIHJlc3BvbnNlLmRhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9nKGxldmVsOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgLi4ub3B0cyk6IHZvaWQge1xuICAgIC8vIGxvZyBpdCByZW1vdGVseVxuICAgIHRoaXMucmVxdWVzdFxuICAgICAgLnBvc3QoJy9sb2cnLCB7XG4gICAgICAgIGxldmVsLFxuICAgICAgICBtZXNzYWdlLFxuICAgICAgICBvcHRzXG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVyciA9PiBjb25zb2xlLmVycm9yKCdVbmFibGUgdG8gc2VuZCBsb2cgbWVzc2FnZSB0byBQb2QnLCBlcnIpKTtcblxuICAgIC8vIGxvZyBpdCBsb2NhbGx5XG4gICAgY29uc3Qgb3B0aW9uYWxQYXJhbXMgPSBvcHRzLmxlbmd0aCA/IG9wdHMgOiAnJztcbiAgICBzd2l0Y2ggKGxldmVsKSB7XG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICBjYXNlICdjcml0JzpcbiAgICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlLCBvcHRpb25hbFBhcmFtcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVidWcnOlxuICAgICAgICAvLyBTZXQgdG8gLmxvZyB2cyAuZGVidWcgZm9yIHByZSBOb2RlIDkuMyBjb21wYXRcbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvY29uc29sZS5odG1sI2NvbnNvbGVfY29uc29sZV9kZWJ1Z19kYXRhX2FyZ3NcbiAgICAgICAgY29uc29sZS5sb2cobWVzc2FnZSwgb3B0aW9uYWxQYXJhbXMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUuaW5mbyhtZXNzYWdlLCBvcHRpb25hbFBhcmFtcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0V4Y2VwdGlvbihzdGF0dXNDb2RlOiBudW1iZXIsIHJlYXNvbjogc3RyaW5nLCBib2R5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoc3RhdHVzQ29kZSA9PT0gNDEzKSB7XG4gICAgICB0aHJvdyBuZXcgUGF5bG9hZFRvb0xhcmdlRXhjZXB0aW9uKCk7XG4gICAgfSBlbHNlIGlmIChzdGF0dXNDb2RlIDwgMjAwIHx8IHN0YXR1c0NvZGUgPj0gMzAwIHx8IChzdGF0dXNDb2RlID09PSAyMDAgJiYgYm9keSA9PT0gJ05PVCBPSycpKSB7XG4gICAgICB0aHJvdyBuZXcgU2VuZEV2ZW50RXhjZXB0aW9uKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,22 +1,22 @@
1
- import { SensorPodInterface } from './SensorPodInterface';
1
+ import { SensorAgentInterface } from './SensorAgentInterface';
2
2
  import { SensorHelloResponse } from '.';
3
- export declare class MockSensorPodInterface extends SensorPodInterface {
3
+ export declare class MockSensorPodInterface extends SensorAgentInterface {
4
4
  events: Array<{
5
5
  type: string;
6
6
  data: any;
7
7
  }>;
8
- readonly logger: {
8
+ readonly log: {
9
9
  crit: (message: string, ...opts: any[]) => void;
10
10
  error: (message: string, ...opts: any[]) => void;
11
11
  warn: (message: string, ...opts: any[]) => void;
12
12
  info: (message: string, ...opts: any[]) => void;
13
13
  debug: (message: string, ...opts: any[]) => void;
14
14
  };
15
- readonly pod: {
15
+ readonly system: {
16
16
  hello: () => Promise<SensorHelloResponse>;
17
17
  newState: (state: string) => Promise<void>;
18
- sendEvent: (type: string, data: any) => Promise<void>;
19
18
  };
20
19
  constructor(id: string);
21
- private log;
20
+ sendEvent(type: string, data: any): Promise<void>;
21
+ private _log;
22
22
  }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const SensorAgentInterface_1 = require("./SensorAgentInterface");
13
+ class MockSensorPodInterface extends SensorAgentInterface_1.SensorAgentInterface {
14
+ constructor(id) {
15
+ super(id);
16
+ this.events = [];
17
+ }
18
+ get log() {
19
+ return {
20
+ crit: (message, ...opts) => this._log('crit', message, ...opts),
21
+ error: (message, ...opts) => this._log('error', message, ...opts),
22
+ warn: (message, ...opts) => this._log('warn', message, ...opts),
23
+ info: (message, ...opts) => this._log('info', message, ...opts),
24
+ debug: (message, ...opts) => this._log('debug', message, ...opts)
25
+ };
26
+ }
27
+ get system() {
28
+ return {
29
+ hello: () => __awaiter(this, void 0, void 0, function* () {
30
+ return {
31
+ plugin: {
32
+ name: 'mock',
33
+ checksum: 'asdf1234'
34
+ },
35
+ inputs: {},
36
+ sensor: {
37
+ schema: 'sensor/1',
38
+ name: 'mock',
39
+ title: 'Mock Sensor',
40
+ description: 'A Mock Sensor',
41
+ entrypoint: '',
42
+ inputs: {},
43
+ events: {}
44
+ }
45
+ };
46
+ }),
47
+ newState: (state) => __awaiter(this, void 0, void 0, function* () {
48
+ return;
49
+ })
50
+ };
51
+ }
52
+ sendEvent(type, data) {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ this.events.push({ type, data });
55
+ });
56
+ }
57
+ _log(level, message, ...opts) {
58
+ // log it locally
59
+ const optionalParams = opts.length ? opts : '';
60
+ switch (level) {
61
+ case 'error':
62
+ case 'crit':
63
+ console.error(message, optionalParams);
64
+ break;
65
+ case 'debug':
66
+ // Set to .log vs .debug for pre Node 9.3 compat
67
+ // See https://nodejs.org/api/console.html#console_console_debug_data_args
68
+ console.log(message, optionalParams);
69
+ break;
70
+ default:
71
+ console.info(message, optionalParams);
72
+ }
73
+ }
74
+ }
75
+ exports.MockSensorPodInterface = MockSensorPodInterface;
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9ja1NlbnNvckFnZW50SW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NlbnNvci9Nb2NrU2Vuc29yQWdlbnRJbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxpRUFBOEQ7QUFHOUQsTUFBYSxzQkFBdUIsU0FBUSwyQ0FBb0I7SUF1QzlELFlBQVksRUFBVTtRQUNwQixLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUF2Q1osV0FBTSxHQUF1QyxFQUFFLENBQUM7SUF3Q2hELENBQUM7SUF0Q0QsSUFBSSxHQUFHO1FBQ0wsT0FBTztZQUNMLElBQUksRUFBRSxDQUFDLE9BQWUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQ3ZFLEtBQUssRUFBRSxDQUFDLE9BQWUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQ3pFLElBQUksRUFBRSxDQUFDLE9BQWUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQ3ZFLElBQUksRUFBRSxDQUFDLE9BQWUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQ3ZFLEtBQUssRUFBRSxDQUFDLE9BQWUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO1NBQzFFLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTztZQUNMLEtBQUssRUFBRSxHQUF1QyxFQUFFO2dCQUM5QyxPQUFPO29CQUNMLE1BQU0sRUFBRTt3QkFDTixJQUFJLEVBQUUsTUFBTTt3QkFDWixRQUFRLEVBQUUsVUFBVTtxQkFDckI7b0JBQ0QsTUFBTSxFQUFFLEVBQUU7b0JBQ1YsTUFBTSxFQUFFO3dCQUNOLE1BQU0sRUFBRSxVQUFVO3dCQUNsQixJQUFJLEVBQUUsTUFBTTt3QkFDWixLQUFLLEVBQUUsYUFBYTt3QkFDcEIsV0FBVyxFQUFFLGVBQWU7d0JBQzVCLFVBQVUsRUFBRSxFQUFFO3dCQUNkLE1BQU0sRUFBRSxFQUFFO3dCQUNWLE1BQU0sRUFBRSxFQUFFO3FCQUNYO2lCQUNGLENBQUM7WUFDSixDQUFDLENBQUE7WUFDRCxRQUFRLEVBQUUsQ0FBTyxLQUFhLEVBQWlCLEVBQUU7Z0JBQy9DLE9BQU87WUFDVCxDQUFDLENBQUE7U0FDRixDQUFDO0lBQ0osQ0FBQztJQU1LLFNBQVMsQ0FBQyxJQUFZLEVBQUUsSUFBUzs7WUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDO0tBQUE7SUFFTyxJQUFJLENBQUMsS0FBYSxFQUFFLE9BQWUsRUFBRSxHQUFHLElBQUk7UUFDbEQsaUJBQWlCO1FBQ2pCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9DLFFBQVEsS0FBSyxFQUFFO1lBQ2IsS0FBSyxPQUFPLENBQUM7WUFDYixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7Z0JBQ3ZDLE1BQU07WUFDUixLQUFLLE9BQU87Z0JBQ1YsZ0RBQWdEO2dCQUNoRCwwRUFBMEU7Z0JBQzFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUNyQyxNQUFNO1lBQ1I7Z0JBQ0UsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDekM7SUFDSCxDQUFDO0NBQ0Y7QUFoRUQsd0RBZ0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2Vuc29yQWdlbnRJbnRlcmZhY2UgfSBmcm9tICcuL1NlbnNvckFnZW50SW50ZXJmYWNlJztcbmltcG9ydCB7IFNlbnNvckhlbGxvUmVzcG9uc2UgfSBmcm9tICcuJztcblxuZXhwb3J0IGNsYXNzIE1vY2tTZW5zb3JQb2RJbnRlcmZhY2UgZXh0ZW5kcyBTZW5zb3JBZ2VudEludGVyZmFjZSB7XG4gIGV2ZW50czogQXJyYXk8eyB0eXBlOiBzdHJpbmc7IGRhdGE6IGFueSB9PiA9IFtdO1xuXG4gIGdldCBsb2coKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNyaXQ6IChtZXNzYWdlOiBzdHJpbmcsIC4uLm9wdHMpID0+IHRoaXMuX2xvZygnY3JpdCcsIG1lc3NhZ2UsIC4uLm9wdHMpLFxuICAgICAgZXJyb3I6IChtZXNzYWdlOiBzdHJpbmcsIC4uLm9wdHMpID0+IHRoaXMuX2xvZygnZXJyb3InLCBtZXNzYWdlLCAuLi5vcHRzKSxcbiAgICAgIHdhcm46IChtZXNzYWdlOiBzdHJpbmcsIC4uLm9wdHMpID0+IHRoaXMuX2xvZygnd2FybicsIG1lc3NhZ2UsIC4uLm9wdHMpLFxuICAgICAgaW5mbzogKG1lc3NhZ2U6IHN0cmluZywgLi4ub3B0cykgPT4gdGhpcy5fbG9nKCdpbmZvJywgbWVzc2FnZSwgLi4ub3B0cyksXG4gICAgICBkZWJ1ZzogKG1lc3NhZ2U6IHN0cmluZywgLi4ub3B0cykgPT4gdGhpcy5fbG9nKCdkZWJ1ZycsIG1lc3NhZ2UsIC4uLm9wdHMpXG4gICAgfTtcbiAgfVxuXG4gIGdldCBzeXN0ZW0oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlbGxvOiBhc3luYyAoKTogUHJvbWlzZTxTZW5zb3JIZWxsb1Jlc3BvbnNlPiA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGx1Z2luOiB7XG4gICAgICAgICAgICBuYW1lOiAnbW9jaycsXG4gICAgICAgICAgICBjaGVja3N1bTogJ2FzZGYxMjM0J1xuICAgICAgICAgIH0sXG4gICAgICAgICAgaW5wdXRzOiB7fSxcbiAgICAgICAgICBzZW5zb3I6IHtcbiAgICAgICAgICAgIHNjaGVtYTogJ3NlbnNvci8xJyxcbiAgICAgICAgICAgIG5hbWU6ICdtb2NrJyxcbiAgICAgICAgICAgIHRpdGxlOiAnTW9jayBTZW5zb3InLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdBIE1vY2sgU2Vuc29yJyxcbiAgICAgICAgICAgIGVudHJ5cG9pbnQ6ICcnLFxuICAgICAgICAgICAgaW5wdXRzOiB7fSxcbiAgICAgICAgICAgIGV2ZW50czoge31cbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgbmV3U3RhdGU6IGFzeW5jIChzdGF0ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKGlkKTtcbiAgfVxuXG4gIGFzeW5jIHNlbmRFdmVudCh0eXBlOiBzdHJpbmcsIGRhdGE6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZXZlbnRzLnB1c2goeyB0eXBlLCBkYXRhIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9nKGxldmVsOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgLi4ub3B0cyk6IHZvaWQge1xuICAgIC8vIGxvZyBpdCBsb2NhbGx5XG4gICAgY29uc3Qgb3B0aW9uYWxQYXJhbXMgPSBvcHRzLmxlbmd0aCA/IG9wdHMgOiAnJztcbiAgICBzd2l0Y2ggKGxldmVsKSB7XG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICBjYXNlICdjcml0JzpcbiAgICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlLCBvcHRpb25hbFBhcmFtcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVidWcnOlxuICAgICAgICAvLyBTZXQgdG8gLmxvZyB2cyAuZGVidWcgZm9yIHByZSBOb2RlIDkuMyBjb21wYXRcbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvY29uc29sZS5odG1sI2NvbnNvbGVfY29uc29sZV9kZWJ1Z19kYXRhX2FyZ3NcbiAgICAgICAgY29uc29sZS5sb2cobWVzc2FnZSwgb3B0aW9uYWxQYXJhbXMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUuaW5mbyhtZXNzYWdlLCBvcHRpb25hbFBhcmFtcyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,17 +1,17 @@
1
1
  import { SensorHelloResponse } from './SensorConfig';
2
- export declare abstract class SensorPodInterface {
2
+ export declare abstract class SensorAgentInterface {
3
3
  readonly id: string;
4
- readonly logger: {
4
+ readonly log: {
5
5
  crit: (message: string, ...opts: any[]) => void;
6
6
  error: (message: string, ...opts: any[]) => void;
7
7
  warn: (message: string, ...opts: any[]) => void;
8
8
  info: (message: string, ...opts: any[]) => void;
9
9
  debug: (message: string, ...opts: any[]) => void;
10
10
  };
11
- readonly pod: {
11
+ readonly system: {
12
12
  hello: () => Promise<SensorHelloResponse>;
13
13
  newState: (state: string) => Promise<void>;
14
- sendEvent: (type: string, data: any) => Promise<void>;
15
14
  };
16
15
  constructor(id: string);
16
+ sendEvent(type: string, data: any): Promise<void>;
17
17
  }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ class SensorAgentInterface {
13
+ constructor(id) {
14
+ this.id = id;
15
+ /* */
16
+ }
17
+ sendEvent(type, data) {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ /* */
20
+ });
21
+ }
22
+ }
23
+ exports.SensorAgentInterface = SensorAgentInterface;
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Vuc29yQWdlbnRJbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2Vuc29yL1NlbnNvckFnZW50SW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRUEsTUFBc0Isb0JBQW9CO0lBYXhDLFlBQXFCLEVBQVU7UUFBVixPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQzdCLE1BQU07SUFDUixDQUFDO0lBRUssU0FBUyxDQUFDLElBQVksRUFBRSxJQUFTOztZQUNyQyxNQUFNO1FBQ1IsQ0FBQztLQUFBO0NBQ0Y7QUFwQkQsb0RBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2Vuc29ySGVsbG9SZXNwb25zZSB9IGZyb20gJy4vU2Vuc29yQ29uZmlnJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNlbnNvckFnZW50SW50ZXJmYWNlIHtcbiAgcmVhZG9ubHkgbG9nOiB7XG4gICAgY3JpdDogKG1lc3NhZ2U6IHN0cmluZywgLi4ub3B0czogYW55W10pID0+IHZvaWQ7XG4gICAgZXJyb3I6IChtZXNzYWdlOiBzdHJpbmcsIC4uLm9wdHM6IGFueVtdKSA9PiB2b2lkO1xuICAgIHdhcm46IChtZXNzYWdlOiBzdHJpbmcsIC4uLm9wdHM6IGFueVtdKSA9PiB2b2lkO1xuICAgIGluZm86IChtZXNzYWdlOiBzdHJpbmcsIC4uLm9wdHM6IGFueVtdKSA9PiB2b2lkO1xuICAgIGRlYnVnOiAobWVzc2FnZTogc3RyaW5nLCAuLi5vcHRzOiBhbnlbXSkgPT4gdm9pZDtcbiAgfTtcbiAgcmVhZG9ubHkgc3lzdGVtOiB7XG4gICAgaGVsbG86ICgpID0+IFByb21pc2U8U2Vuc29ySGVsbG9SZXNwb25zZT47XG4gICAgbmV3U3RhdGU6IChzdGF0ZTogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGlkOiBzdHJpbmcpIHtcbiAgICAvKiAgKi9cbiAgfVxuXG4gIGFzeW5jIHNlbmRFdmVudCh0eXBlOiBzdHJpbmcsIGRhdGE6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8qICAqL1xuICB9XG59XG4iXX0=
@@ -1,17 +1,17 @@
1
1
  export interface SensorConfig<T = any> {
2
2
  id: string;
3
- sensor: Sensor;
3
+ sensor: SensorManifest;
4
4
  inputs: T;
5
5
  }
6
6
  export interface SensorHelloResponse {
7
- bundle: {
7
+ plugin: {
8
8
  name: string;
9
9
  checksum: string;
10
10
  };
11
11
  inputs: any;
12
- sensor: Sensor;
12
+ sensor: SensorManifest;
13
13
  }
14
- export interface Sensor {
14
+ export interface SensorManifest {
15
15
  schema: string;
16
16
  name: string;
17
17
  title: string;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Vuc29yQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NlbnNvci9TZW5zb3JDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2Vuc29yQ29uZmlnPFQgPSBhbnk+IHtcbiAgaWQ6IHN0cmluZzsgLy8gVGhlIElEIG9mIHRoZSBpbnN0YW5jZVxuXG4gIHNlbnNvcjogU2Vuc29yOyAvLyBUaGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNlbnNvclxuXG4gIGlucHV0czogVDsgLy8gQW55IGlucHV0cyBuZWVkZWQgZm9yIHRoZSBzZW5zb3Jcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZW5zb3JIZWxsb1Jlc3BvbnNlIHtcbiAgYnVuZGxlOiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGNoZWNrc3VtOiBzdHJpbmc7XG4gIH07XG4gIGlucHV0czogYW55O1xuICBzZW5zb3I6IFNlbnNvcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZW5zb3Ige1xuICBzY2hlbWE6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBlbnRyeXBvaW50OiBzdHJpbmc7XG4gIGlucHV0czogYW55O1xuICBldmVudHM6IHsgW25hbWU6IHN0cmluZ106IGFueSB9O1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Vuc29yQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NlbnNvci9TZW5zb3JDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2Vuc29yQ29uZmlnPFQgPSBhbnk+IHtcbiAgaWQ6IHN0cmluZzsgLy8gVGhlIElEIG9mIHRoZSBpbnN0YW5jZVxuXG4gIHNlbnNvcjogU2Vuc29yTWFuaWZlc3Q7IC8vIFRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2Vuc29yXG5cbiAgaW5wdXRzOiBUOyAvLyBBbnkgaW5wdXRzIG5lZWRlZCBmb3IgdGhlIHNlbnNvclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbnNvckhlbGxvUmVzcG9uc2Uge1xuICBwbHVnaW46IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgY2hlY2tzdW06IHN0cmluZztcbiAgfTtcbiAgaW5wdXRzOiBhbnk7XG4gIHNlbnNvcjogU2Vuc29yTWFuaWZlc3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Vuc29yTWFuaWZlc3Qge1xuICBzY2hlbWE6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBlbnRyeXBvaW50OiBzdHJpbmc7XG4gIGlucHV0czogYW55O1xuICBldmVudHM6IHsgW25hbWU6IHN0cmluZ106IGFueSB9O1xufVxuIl19
@@ -1,5 +1,6 @@
1
1
  export * from './BaseSensor';
2
- export * from './SensorPodInterface';
3
- export * from './HttpSensorPodInterface';
4
- export * from './MockSensorPodInterface';
2
+ export * from './Errors';
3
+ export * from './HttpSensorAgentInterface';
4
+ export * from './MockSensorAgentInterface';
5
5
  export * from './SensorConfig';
6
+ export * from './SensorAgentInterface';
@@ -4,7 +4,8 @@ function __export(m) {
4
4
  }
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  __export(require("./BaseSensor"));
7
- __export(require("./SensorPodInterface"));
8
- __export(require("./HttpSensorPodInterface"));
9
- __export(require("./MockSensorPodInterface"));
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2Vuc29yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0NBQTZCO0FBQzdCLDBDQUFxQztBQUNyQyw4Q0FBeUM7QUFDekMsOENBQXlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9CYXNlU2Vuc29yJztcbmV4cG9ydCAqIGZyb20gJy4vU2Vuc29yUG9kSW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vSHR0cFNlbnNvclBvZEludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL01vY2tTZW5zb3JQb2RJbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9TZW5zb3JDb25maWcnO1xuIl19
7
+ __export(require("./Errors"));
8
+ __export(require("./HttpSensorAgentInterface"));
9
+ __export(require("./MockSensorAgentInterface"));
10
+ __export(require("./SensorAgentInterface"));
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2Vuc29yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0NBQTZCO0FBQzdCLDhCQUF5QjtBQUN6QixnREFBMkM7QUFDM0MsZ0RBQTJDO0FBRTNDLDRDQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vQmFzZVNlbnNvcic7XG5leHBvcnQgKiBmcm9tICcuL0Vycm9ycyc7XG5leHBvcnQgKiBmcm9tICcuL0h0dHBTZW5zb3JBZ2VudEludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL01vY2tTZW5zb3JBZ2VudEludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL1NlbnNvckNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL1NlbnNvckFnZW50SW50ZXJmYWNlJztcbiJdfQ==