@alwaysai/device-agent 0.0.17 → 0.0.18
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/lib/cloud-connection/messages.js +1 -1
- package/lib/cloud-connection/messages.js.map +1 -1
- package/lib/cloud-connection/passthrough-handler.d.ts.map +1 -1
- package/lib/cloud-connection/passthrough-handler.js +0 -1
- package/lib/cloud-connection/passthrough-handler.js.map +1 -1
- package/lib/cloud-connection/publisher.d.ts.map +1 -1
- package/lib/cloud-connection/publisher.js +0 -1
- package/lib/cloud-connection/publisher.js.map +1 -1
- package/package.json +1 -1
- package/src/cloud-connection/messages.ts +1 -1
- package/src/cloud-connection/passthrough-handler.ts +0 -1
- package/src/cloud-connection/publisher.ts +0 -1
|
@@ -7,7 +7,7 @@ const device_control_1 = require("../device-control/device-control");
|
|
|
7
7
|
const agent_config_1 = require("../infrastructure/agent-config");
|
|
8
8
|
async function getAppStateMessage() {
|
|
9
9
|
const appStateMessage = [];
|
|
10
|
-
const apps = await (0, agent_config_1.AgentConfigFile)().
|
|
10
|
+
const apps = await (0, agent_config_1.AgentConfigFile)().getApps();
|
|
11
11
|
for (const app of apps) {
|
|
12
12
|
const projectId = app.projectId;
|
|
13
13
|
const status = await (0, application_control_1.getAppStatus)({ projectId });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/cloud-connection/messages.ts"],"names":[],"mappings":";;;AAAA,yEAIwC;AAExC,gEAAsD;AACtD,qEAI0C;AAC1C,iEAAiE;AAE1D,KAAK,UAAU,kBAAkB;IACtC,MAAM,eAAe,GAAqB,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,IAAA,8BAAe,GAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/cloud-connection/messages.ts"],"names":[],"mappings":";;;AAAA,yEAIwC;AAExC,gEAAsD;AACtD,qEAI0C;AAC1C,iEAAiE;AAE1D,KAAK,UAAU,kBAAkB;IACtC,MAAM,eAAe,GAAqB,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,IAAA,8BAAe,GAAE,CAAC,OAAO,EAAE,CAAC;IAC/C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,IAAA,kCAAY,EAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACjD,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC9B;IACD,MAAM,eAAe,GAAG;QACtB,WAAW,EAAE,iCAAU,CAAC,gBAAgB,CAAC,SAAS;QAClD,QAAQ,EAAE,eAAe;KAC1B,CAAC;IACF,OAAO,eAAe,CAAC;AACzB,CAAC;AAbD,gDAaC;AAEM,KAAK,UAAU,0BAA0B,CAC9C,MAA6B,EAC7B,OAAe,EACf,cAAsB;IAEtB,MAAM,uBAAuB,GAA4B;QACvD,WAAW,EAAE,iCAAU,CAAC,gBAAgB,CAAC,kBAAkB;QAC3D,gBAAgB,EAAE;YAChB,MAAM;YACN,OAAO;YACP,cAAc;SACf;KACF,CAAC;IACF,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAdD,gEAcC;AAEM,KAAK,UAAU,qBAAqB;IACzC,MAAM,QAAQ,GAAG,MAAM,IAAA,2BAAU,GAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,MAAM,IAAA,4BAAW,GAAE,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,IAAA,2BAAU,GAAE,CAAC;IAEnC,MAAM,kBAAkB,GAAG;QACzB,WAAW,EAAE,iCAAU,CAAC,gBAAgB,CAAC,YAAY;QACrD,WAAW,EAAE;YACX,QAAQ;YACR,QAAQ;YACR,oBAAoB,EAAE,OAAO;SAC9B;KACF,CAAC;IACF,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAdD,sDAcC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passthrough-handler.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/passthrough-handler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKxC,qBAAa,kBAAkB;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,MAAC;IACX,OAAO,MAAC;IACR,WAAW,MAAC;gBAEP,SAAS,EAAE,SAAS;IAInB,KAAK;CAUnB;
|
|
1
|
+
{"version":3,"file":"passthrough-handler.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/passthrough-handler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAKxC,qBAAa,kBAAkB;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,MAAC;IACX,OAAO,MAAC;IACR,WAAW,MAAC;gBAEP,SAAS,EAAE,SAAS;IAInB,KAAK;CAUnB;AAqBD,wBAAsB,UAAU,CAAC,kBAAkB,EAAE,kBAAkB,iBAetE"}
|
|
@@ -30,7 +30,6 @@ function processPublish(passthroughHandler) {
|
|
|
30
30
|
ackQueue.push(msg);
|
|
31
31
|
// FIXME: put real topic here
|
|
32
32
|
passthroughHandler.publisher.publishToCloudWithAck(packet, (errOrResp) => {
|
|
33
|
-
logger_1.logger.debug('packet published to cloud?', errOrResp);
|
|
34
33
|
while (ackQueue.length > 0) {
|
|
35
34
|
const msg = ackQueue.shift();
|
|
36
35
|
if (errOrResp === true) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"passthrough-handler.js","sourceRoot":"","sources":["../../src/cloud-connection/passthrough-handler.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAChC,iFAAiF;AACjF,2CAAwC;AAGxC,MAAM,YAAY,GAAU,EAAE,CAAC;AAC/B,MAAM,QAAQ,GAAU,EAAE,CAAC;AAE3B,MAAa,kBAAkB;IAM7B,YAAY,SAAoB;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAA,4CAAsB,GAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,2FAA2F;QACrH,IAAI,CAAC,WAAW,GAAG,0BAA0B,CAAC;QAC9C,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;YAC/C,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;CACF;AApBD,gDAoBC;AAED,SAAS,cAAc,CAAC,kBAAsC;IAC5D,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,6BAA6B;QAC7B,kBAAkB,CAAC,SAAS,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE;YACvE,
|
|
1
|
+
{"version":3,"file":"passthrough-handler.js","sourceRoot":"","sources":["../../src/cloud-connection/passthrough-handler.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAChC,iFAAiF;AACjF,2CAAwC;AAGxC,MAAM,YAAY,GAAU,EAAE,CAAC;AAC/B,MAAM,QAAQ,GAAU,EAAE,CAAC;AAE3B,MAAa,kBAAkB;IAM7B,YAAY,SAAoB;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAA,4CAAsB,GAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,2FAA2F;QACrH,IAAI,CAAC,WAAW,GAAG,0BAA0B,CAAC;QAC9C,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;YAC/C,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;CACF;AApBD,gDAoBC;AAED,SAAS,cAAc,CAAC,kBAAsC;IAC5D,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,6BAA6B;QAC7B,kBAAkB,CAAC,SAAS,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE;YACvE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC7B,IAAI,SAAS,KAAK,IAAI,EAAE;oBACtB,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,sCAAsC;iBAC5E;qBAAM,IAAI,SAAS,KAAK,KAAK,EAAE;oBAC9B,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,qBAAqB;iBACpE;aACF;QACH,CAAC,CAAC,CAAC;KACJ;AACH,CAAC;AAEM,KAAK,UAAU,UAAU,CAAC,kBAAsC;IACrE,eAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC7C,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAChC,kBAAkB,CAAC,WAAW,EAC9B,UAAU,GAAG;QACX,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClD,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACnC,cAAc,CAAC,kBAAkB,CAAC,CAAC;SACpC;IACH,CAAC,EACD;QACE,KAAK,EAAE,KAAK,CAAC,gEAAgE;KAC9E,CACF,CAAC;AACJ,CAAC;AAfD,gCAeC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,yBAAyB,EAG1B,MAAM,gCAAgC,CAAC;AAGxC,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM;IAOzC,OAAO,CAAC,kBAAkB;IAanB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAWtC,qBAAqB,CAC1B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../src/cloud-connection/publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,yBAAyB,EAG1B,MAAM,gCAAgC,CAAC;AAGxC,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM;IAOzC,OAAO,CAAC,kBAAkB;IAanB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAWtC,qBAAqB,CAC1B,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,gBAAgB;IAkB5B,yBAAyB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,yBAAyB;IAU7B,eAAe,CAAC,OAAO,EAAE,yBAAyB;IAIlD,cAAc,CAAC,OAAO,EAAE,yBAAyB;CAGzD"}
|
|
@@ -29,7 +29,6 @@ class Publisher {
|
|
|
29
29
|
}
|
|
30
30
|
publishToCloudWithAck(payload, ackNackCallback) {
|
|
31
31
|
const topic = this.toCloudTopic;
|
|
32
|
-
logger_1.logger.debug('payload received to publishWithAck', payload);
|
|
33
32
|
this.client.publish(topic, payload, { qos: 1 }, (err, resp) => {
|
|
34
33
|
if (err) {
|
|
35
34
|
logger_1.logger.error(`Error publishing message: \nTopic: ${topic}\nMessage: ${payload}\nError: ${err}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/cloud-connection/publisher.ts"],"names":[],"mappings":";;;AAAA,yEAKwC;AACxC,2CAAwC;AAExC,MAAa,SAAS;IAMpB,YAAY,MAAW,EAAE,QAAgB;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAA,qCAAc,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,IAAA,oCAAa,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAEO,kBAAkB,CACxB,KAAa,EACb,OAAkC;QAElC,MAAM,MAAM,GAAG;YACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK;YACL,OAAO;SACR,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,OAAO,CAAC,KAAa,EAAE,OAAe;QAC3C,yBAAyB;QACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE;YAC/C,IAAI,GAAG,EAAE;gBACP,eAAM,CAAC,KAAK,CACV,sCAAsC,KAAK,cAAc,OAAO,YAAY,GAAG,EAAE,CAClF,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,qBAAqB,CAC1B,OAAe,EACf,eAAiC;QAEjC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAChC,
|
|
1
|
+
{"version":3,"file":"publisher.js","sourceRoot":"","sources":["../../src/cloud-connection/publisher.ts"],"names":[],"mappings":";;;AAAA,yEAKwC;AACxC,2CAAwC;AAExC,MAAa,SAAS;IAMpB,YAAY,MAAW,EAAE,QAAgB;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAA,qCAAc,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,IAAA,oCAAa,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAEO,kBAAkB,CACxB,KAAa,EACb,OAAkC;QAElC,MAAM,MAAM,GAAG;YACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK;YACL,OAAO;SACR,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,OAAO,CAAC,KAAa,EAAE,OAAe;QAC3C,yBAAyB;QACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE;YAC/C,IAAI,GAAG,EAAE;gBACP,eAAM,CAAC,KAAK,CACV,sCAAsC,KAAK,cAAc,OAAO,YAAY,GAAG,EAAE,CAClF,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,qBAAqB,CAC1B,OAAe,EACf,eAAiC;QAEjC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAQ,EAAE,IAAS,EAAE,EAAE;YACtE,IAAI,GAAG,EAAE;gBACP,eAAM,CAAC,KAAK,CACV,sCAAsC,KAAK,cAAc,OAAO,YAAY,GAAG,EAAE,CAClF,CAAC;gBACF,eAAe,CAAC,KAAK,CAAC,CAAC;aACxB;iBAAM,IAAI,IAAI,EAAE;gBACf,eAAM,CAAC,KAAK,CACV,4CAA4C,KAAK,cAAc,OAAO,EAAE,CACzE,CAAC;gBACF,eAAe,CAAC,IAAI,CAAC,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,yBAAyB,CAC9B,KAAa,EACb,OAAkC;QAElC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzC,eAAM,CAAC,KAAK,CACV,wBAAwB,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACrE,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;IAEM,eAAe,CAAC,OAAkC;QACvD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAEM,cAAc,CAAC,OAAkC;QACtD,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;CACF;AA5ED,8BA4EC"}
|
package/package.json
CHANGED
|
@@ -14,7 +14,7 @@ import { AgentConfigFile } from '../infrastructure/agent-config';
|
|
|
14
14
|
|
|
15
15
|
export async function getAppStateMessage() {
|
|
16
16
|
const appStateMessage: AppStatePacket[] = [];
|
|
17
|
-
const apps = await AgentConfigFile().
|
|
17
|
+
const apps = await AgentConfigFile().getApps();
|
|
18
18
|
for (const app of apps) {
|
|
19
19
|
const projectId = app.projectId;
|
|
20
20
|
const status = await getAppStatus({ projectId });
|
|
@@ -36,7 +36,6 @@ function processPublish(passthroughHandler: PassthroughHandler) {
|
|
|
36
36
|
ackQueue.push(msg);
|
|
37
37
|
// FIXME: put real topic here
|
|
38
38
|
passthroughHandler.publisher.publishToCloudWithAck(packet, (errOrResp) => {
|
|
39
|
-
logger.debug('packet published to cloud?', errOrResp);
|
|
40
39
|
while (ackQueue.length > 0) {
|
|
41
40
|
const msg = ackQueue.shift();
|
|
42
41
|
if (errOrResp === true) {
|
|
@@ -48,7 +48,6 @@ export class Publisher {
|
|
|
48
48
|
ackNackCallback: CallableFunction
|
|
49
49
|
) {
|
|
50
50
|
const topic = this.toCloudTopic;
|
|
51
|
-
logger.debug('payload received to publishWithAck', payload);
|
|
52
51
|
this.client.publish(topic, payload, { qos: 1 }, (err: any, resp: any) => {
|
|
53
52
|
if (err) {
|
|
54
53
|
logger.error(
|