@dbos-inc/dbos-sdk 0.7.35 → 0.8.14-preview
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/src/cloud-cli/applications/configure.d.ts +1 -1
- package/dist/src/cloud-cli/applications/configure.d.ts.map +1 -1
- package/dist/src/cloud-cli/applications/configure.js +35 -28
- package/dist/src/cloud-cli/applications/configure.js.map +1 -1
- package/dist/src/cloud-cli/applications/delete-app.js +1 -1
- package/dist/src/cloud-cli/applications/delete-app.js.map +1 -1
- package/dist/src/cloud-cli/applications/deploy-app-code.d.ts.map +1 -1
- package/dist/src/cloud-cli/applications/deploy-app-code.js +10 -2
- package/dist/src/cloud-cli/applications/deploy-app-code.js.map +1 -1
- package/dist/src/cloud-cli/applications/get-app-logs.js +1 -1
- package/dist/src/cloud-cli/applications/get-app-logs.js.map +1 -1
- package/dist/src/cloud-cli/applications/list-apps.js +1 -1
- package/dist/src/cloud-cli/applications/list-apps.js.map +1 -1
- package/dist/src/cloud-cli/applications/register-app.js +1 -1
- package/dist/src/cloud-cli/applications/register-app.js.map +1 -1
- package/dist/src/cloud-cli/applications/update-app.d.ts.map +1 -1
- package/dist/src/cloud-cli/applications/update-app.js +3 -2
- package/dist/src/cloud-cli/applications/update-app.js.map +1 -1
- package/dist/src/cloud-cli/cli.js +6 -6
- package/dist/src/cloud-cli/cli.js.map +1 -1
- package/dist/src/cloud-cli/login.d.ts.map +1 -1
- package/dist/src/cloud-cli/login.js +3 -2
- package/dist/src/cloud-cli/login.js.map +1 -1
- package/dist/src/cloud-cli/register.js +1 -1
- package/dist/src/cloud-cli/register.js.map +1 -1
- package/dist/src/cloud-cli/userdb.d.ts +10 -2
- package/dist/src/cloud-cli/userdb.d.ts.map +1 -1
- package/dist/src/cloud-cli/userdb.js +63 -100
- package/dist/src/cloud-cli/userdb.js.map +1 -1
- package/dist/src/communicator.d.ts +1 -1
- package/dist/src/communicator.d.ts.map +1 -1
- package/dist/src/context.d.ts +1 -1
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +1 -1
- package/dist/src/context.js.map +1 -1
- package/dist/src/dbos-executor.d.ts +18 -7
- package/dist/src/dbos-executor.d.ts.map +1 -1
- package/dist/src/dbos-executor.js +155 -52
- package/dist/src/dbos-executor.js.map +1 -1
- package/dist/src/dbos-runtime/cli.d.ts +0 -1
- package/dist/src/dbos-runtime/cli.d.ts.map +1 -1
- package/dist/src/dbos-runtime/cli.js +14 -2
- package/dist/src/dbos-runtime/cli.js.map +1 -1
- package/dist/src/dbos-runtime/config.d.ts +0 -1
- package/dist/src/dbos-runtime/config.d.ts.map +1 -1
- package/dist/src/dbos-runtime/config.js +0 -1
- package/dist/src/dbos-runtime/config.js.map +1 -1
- package/dist/src/dbos-runtime/debug.d.ts +4 -0
- package/dist/src/dbos-runtime/debug.d.ts.map +1 -0
- package/dist/src/dbos-runtime/debug.js +23 -0
- package/dist/src/dbos-runtime/debug.js.map +1 -0
- package/dist/src/dbos-runtime/runtime.d.ts +1 -1
- package/dist/src/dbos-runtime/runtime.d.ts.map +1 -1
- package/dist/src/dbos-runtime/runtime.js +13 -14
- package/dist/src/dbos-runtime/runtime.js.map +1 -1
- package/dist/src/debugger/debug_workflow.js +6 -6
- package/dist/src/debugger/debug_workflow.js.map +1 -1
- package/dist/src/httpServer/server.d.ts +1 -1
- package/dist/src/httpServer/server.d.ts.map +1 -1
- package/dist/src/{dbos-runtime → staticAnalysis}/TypeParser.d.ts +4 -0
- package/dist/src/staticAnalysis/TypeParser.d.ts.map +1 -0
- package/dist/src/{dbos-runtime → staticAnalysis}/TypeParser.js +34 -1
- package/dist/src/staticAnalysis/TypeParser.js.map +1 -0
- package/dist/src/{dbos-runtime → staticAnalysis}/openApi.d.ts.map +1 -1
- package/dist/src/{dbos-runtime → staticAnalysis}/openApi.js +1 -31
- package/dist/src/staticAnalysis/openApi.js.map +1 -0
- package/dist/src/staticAnalysis/tsDiagUtil.d.ts.map +1 -0
- package/dist/src/staticAnalysis/tsDiagUtil.js.map +1 -0
- package/dist/src/system_database.d.ts +20 -9
- package/dist/src/system_database.d.ts.map +1 -1
- package/dist/src/system_database.js +36 -41
- package/dist/src/system_database.js.map +1 -1
- package/dist/src/telemetry/collector.d.ts +5 -5
- package/dist/src/telemetry/collector.d.ts.map +1 -1
- package/dist/src/telemetry/collector.js +5 -17
- package/dist/src/telemetry/collector.js.map +1 -1
- package/dist/src/telemetry/exporters.d.ts +11 -24
- package/dist/src/telemetry/exporters.d.ts.map +1 -1
- package/dist/src/telemetry/exporters.js +42 -129
- package/dist/src/telemetry/exporters.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +6 -2
- package/dist/src/telemetry/index.d.ts.map +1 -1
- package/dist/src/telemetry/index.js +16 -0
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/logs.d.ts +35 -11
- package/dist/src/telemetry/logs.d.ts.map +1 -1
- package/dist/src/telemetry/logs.js +158 -53
- package/dist/src/telemetry/logs.js.map +1 -1
- package/dist/src/telemetry/traces.d.ts +1 -6
- package/dist/src/telemetry/traces.d.ts.map +1 -1
- package/dist/src/telemetry/traces.js +2 -34
- package/dist/src/telemetry/traces.js.map +1 -1
- package/dist/src/testing/testing_runtime.d.ts +1 -1
- package/dist/src/testing/testing_runtime.js +1 -1
- package/dist/src/transaction.d.ts +1 -1
- package/dist/src/transaction.d.ts.map +1 -1
- package/dist/src/workflow.d.ts +2 -0
- package/dist/src/workflow.d.ts.map +1 -1
- package/dist/src/workflow.js +18 -13
- package/dist/src/workflow.js.map +1 -1
- package/examples/hello/dbos-config.yaml +0 -1
- package/package.json +3 -2
- package/dist/src/dbos-runtime/TypeParser.d.ts.map +0 -1
- package/dist/src/dbos-runtime/TypeParser.js.map +0 -1
- package/dist/src/dbos-runtime/openApi.js.map +0 -1
- package/dist/src/dbos-runtime/tsDiagUtil.d.ts.map +0 -1
- package/dist/src/dbos-runtime/tsDiagUtil.js.map +0 -1
- package/dist/src/telemetry/signals.d.ts +0 -20
- package/dist/src/telemetry/signals.d.ts.map +0 -1
- package/dist/src/telemetry/signals.js +0 -11
- package/dist/src/telemetry/signals.js.map +0 -1
- /package/dist/src/{dbos-runtime → staticAnalysis}/openApi.d.ts +0 -0
- /package/dist/src/{dbos-runtime → staticAnalysis}/tsDiagUtil.d.ts +0 -0
- /package/dist/src/{dbos-runtime → staticAnalysis}/tsDiagUtil.js +0 -0
@@ -1,146 +1,59 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
4
|
-
const
|
5
|
-
const lodash_1 = require("lodash");
|
6
|
-
const decorators_1 = require("./../decorators");
|
7
|
-
const error_1 = require("./../error");
|
3
|
+
exports.TelemetryExporter = void 0;
|
4
|
+
const _1 = require("./");
|
8
5
|
const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
|
6
|
+
const exporter_logs_otlp_http_1 = require("@opentelemetry/exporter-logs-otlp-http");
|
9
7
|
const core_1 = require("@opentelemetry/core");
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
8
|
+
class TelemetryExporter {
|
9
|
+
tracesExporter;
|
10
|
+
logsExporter;
|
11
|
+
constructor(config) {
|
12
|
+
if (config.tracesEndpoint) {
|
13
|
+
this.tracesExporter = new exporter_trace_otlp_http_1.OTLPTraceExporter({
|
14
|
+
url: config.tracesEndpoint,
|
15
|
+
});
|
16
|
+
console.log(`Traces will be exported to ${config.tracesEndpoint}`);
|
17
|
+
}
|
18
|
+
if (config.logsEndpoint) {
|
19
|
+
this.logsExporter = new exporter_logs_otlp_http_1.OTLPLogExporter({
|
20
|
+
url: config.logsEndpoint,
|
21
|
+
});
|
22
|
+
console.log(`Logs will be exported to ${config.logsEndpoint}`);
|
23
|
+
}
|
18
24
|
}
|
19
25
|
async export(signals) {
|
20
26
|
return await new Promise((resolve) => {
|
27
|
+
// Sort out traces and logs
|
21
28
|
const exportSpans = [];
|
29
|
+
const exportLogs = [];
|
22
30
|
signals.forEach((signal) => {
|
23
|
-
if (
|
24
|
-
exportSpans.push(signal
|
31
|
+
if ((0, _1.isTraceSignal)(signal)) {
|
32
|
+
exportSpans.push(signal);
|
25
33
|
}
|
26
|
-
|
27
|
-
|
28
|
-
if (results.code !== core_1.ExportResultCode.SUCCESS) {
|
29
|
-
console.warn(`Jaeger export failed`);
|
34
|
+
if ((0, _1.isLogSignal)(signal)) {
|
35
|
+
exportLogs.push(signal);
|
30
36
|
}
|
31
37
|
});
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
}
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
poolConfig;
|
40
|
-
observabilityDBName;
|
41
|
-
pgClient;
|
42
|
-
constructor(poolConfig, observabilityDBName = "dbos_observability") {
|
43
|
-
this.poolConfig = poolConfig;
|
44
|
-
this.observabilityDBName = observabilityDBName;
|
45
|
-
const pgClientConfig = { ...poolConfig };
|
46
|
-
pgClientConfig.database = this.observabilityDBName;
|
47
|
-
this.pgClient = new pg_1.Client(pgClientConfig);
|
48
|
-
}
|
49
|
-
static getPGDataType(t) {
|
50
|
-
if (t.dataType === "double") {
|
51
|
-
return "double precision"; // aka "float8"
|
52
|
-
}
|
53
|
-
return t.formatAsString();
|
54
|
-
}
|
55
|
-
async init(registeredOperations = []) {
|
56
|
-
const pgSystemClient = new pg_1.Client(this.poolConfig);
|
57
|
-
await pgSystemClient.connect();
|
58
|
-
// First check if the log database exists using pgSystemClient.
|
59
|
-
const dbExists = await pgSystemClient.query(`SELECT FROM pg_database WHERE datname = '${this.observabilityDBName}'`);
|
60
|
-
if (dbExists.rows.length === 0) {
|
61
|
-
// Create the logs backend database
|
62
|
-
await pgSystemClient.query(`CREATE DATABASE ${this.observabilityDBName}`);
|
63
|
-
}
|
64
|
-
await pgSystemClient.end();
|
65
|
-
// Connect the exporter client
|
66
|
-
await this.pgClient.connect();
|
67
|
-
// Configure tables for registered workflows
|
68
|
-
for (const registeredOperation of registeredOperations) {
|
69
|
-
const tableName = `signal_${registeredOperation.name}`;
|
70
|
-
let createSignalTableQuery = `CREATE TABLE IF NOT EXISTS ${tableName} (
|
71
|
-
workflow_uuid TEXT NOT NULL,
|
72
|
-
function_name TEXT NOT NULL,
|
73
|
-
run_as TEXT NOT NULL,
|
74
|
-
timestamp BIGINT NOT NULL,
|
75
|
-
transaction_id TEXT DEFAULT NULL,
|
76
|
-
trace_id TEXT DEFAULT NULL,
|
77
|
-
trace_span JSONB DEFAULT NULL,\n`;
|
78
|
-
for (const arg of registeredOperation.args) {
|
79
|
-
if (arg.logMask === decorators_1.LogMasks.SKIP) {
|
80
|
-
continue;
|
81
|
-
}
|
82
|
-
else if (arg.logMask === decorators_1.LogMasks.HASH) {
|
83
|
-
const row = `${arg.name} VARCHAR(64) DEFAULT NULL,\n`;
|
84
|
-
createSignalTableQuery = createSignalTableQuery.concat(row);
|
85
|
-
}
|
86
|
-
else {
|
87
|
-
const row = `${arg.name} ${PostgresExporter.getPGDataType(arg.dataType)} DEFAULT NULL,\n`;
|
88
|
-
createSignalTableQuery = createSignalTableQuery.concat(row);
|
89
|
-
}
|
38
|
+
if (exportSpans.length > 0 && this.tracesExporter) {
|
39
|
+
this.tracesExporter.export(exportSpans, (results) => {
|
40
|
+
if (results.code !== core_1.ExportResultCode.SUCCESS) {
|
41
|
+
console.warn(`Trace export failed: ${results.code}`);
|
42
|
+
console.warn(results);
|
43
|
+
}
|
44
|
+
});
|
90
45
|
}
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
}
|
99
|
-
process(signals) {
|
100
|
-
const groupByFunctionName = new Map(Object.entries((0, lodash_1.groupBy)(signals, ({ operationName }) => operationName)));
|
101
|
-
const queries = [];
|
102
|
-
for (const [operationName, signals] of groupByFunctionName) {
|
103
|
-
const tableName = `signal_${operationName}`;
|
104
|
-
const query = `
|
105
|
-
INSERT INTO ${tableName}
|
106
|
-
SELECT * FROM jsonb_to_recordset($1::jsonb) AS tmp (workflow_uuid text, function_name text, run_as text, timestamp bigint, transaction_id text, trace_id text, trace_span json)
|
107
|
-
`;
|
108
|
-
const values = JSON.stringify(signals.map((signal) => {
|
109
|
-
return {
|
110
|
-
workflow_uuid: signal.workflowUUID,
|
111
|
-
function_name: signal.operationName,
|
112
|
-
run_as: signal.runAs,
|
113
|
-
timestamp: signal.timestamp,
|
114
|
-
transaction_id: signal.transactionID,
|
115
|
-
trace_id: signal.traceID,
|
116
|
-
trace_span: signal.traceSpan ? (0, traces_1.spanToString)(signal.traceSpan) : null,
|
117
|
-
};
|
118
|
-
}));
|
119
|
-
queries.push({
|
120
|
-
name: `insert-${tableName}`,
|
121
|
-
text: query,
|
122
|
-
values: [values],
|
123
|
-
});
|
124
|
-
}
|
125
|
-
return queries;
|
126
|
-
}
|
127
|
-
async export(telemetrySignals) {
|
128
|
-
const results = [];
|
129
|
-
// Find all telemetry signals and process.
|
130
|
-
if (telemetrySignals.length > 0) {
|
131
|
-
const queries = this.process(telemetrySignals);
|
132
|
-
for (const query of queries) {
|
133
|
-
results.push(this.pgClient.query(query));
|
46
|
+
if (exportLogs.length > 0 && this.logsExporter) {
|
47
|
+
this.logsExporter.export(exportLogs, (results) => {
|
48
|
+
if (results.code !== core_1.ExportResultCode.SUCCESS) {
|
49
|
+
console.warn(`Log export failed: ${results.code}`);
|
50
|
+
console.warn(results);
|
51
|
+
}
|
52
|
+
});
|
134
53
|
}
|
135
|
-
|
136
|
-
|
137
|
-
// We do await here so we can catch and format PostgresExporter specific errors
|
138
|
-
return await Promise.all(results);
|
139
|
-
}
|
140
|
-
catch (err) {
|
141
|
-
throw new error_1.DBOSPostgresExporterError(err);
|
142
|
-
}
|
54
|
+
resolve();
|
55
|
+
});
|
143
56
|
}
|
144
57
|
}
|
145
|
-
exports.
|
58
|
+
exports.TelemetryExporter = TelemetryExporter;
|
146
59
|
//# sourceMappingURL=exporters.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"exporters.js","sourceRoot":"","sources":["../../../src/telemetry/exporters.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"exporters.js","sourceRoot":"","sources":["../../../src/telemetry/exporters.ts"],"names":[],"mappings":";;;AACA,yBAAgD;AAChD,sFAA4E;AAC5E,oFAAyE;AAGzE,8CAAqE;AAWrE,MAAa,iBAAiB;IACX,cAAc,CAAqB;IACnC,YAAY,CAAmB;IAChD,YAAY,MAA0B;QACpC,IAAI,MAAM,CAAC,cAAc,EAAE;YACzB,IAAI,CAAC,cAAc,GAAG,IAAI,4CAAiB,CAAC;gBAC1C,GAAG,EAAE,MAAM,CAAC,cAAc;aAC3B,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,8BAA8B,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;SACpE;QACD,IAAI,MAAM,CAAC,YAAY,EAAE;YACvB,IAAI,CAAC,YAAY,GAAG,IAAI,yCAAe,CAAC;gBACtC,GAAG,EAAE,MAAM,CAAC,YAAY;aACzB,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;SAChE;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA0B;QACrC,OAAO,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACzC,2BAA2B;YAC3B,MAAM,WAAW,GAAmB,EAAE,CAAC;YACvC,MAAM,UAAU,GAAwB,EAAE,CAAC;YAC3C,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACzB,IAAI,IAAA,gBAAa,EAAC,MAAM,CAAC,EAAE;oBACzB,WAAW,CAAC,IAAI,CAAC,MAAsB,CAAC,CAAC;iBAC1C;gBACD,IAAI,IAAA,cAAW,EAAC,MAAM,CAAC,EAAE;oBACvB,UAAU,CAAC,IAAI,CAAC,MAA2B,CAAC,CAAC;iBAC9C;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE;gBACjD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,OAAqB,EAAE,EAAE;oBAChE,IAAI,OAAO,CAAC,IAAI,KAAK,uBAAgB,CAAC,OAAO,EAAE;wBAC7C,OAAO,CAAC,IAAI,CAAC,wBAAwB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;wBACrD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBACvB;gBACH,CAAC,CAAC,CAAC;aACJ;YAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE;gBAC9C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,OAAqB,EAAE,EAAE;oBAC7D,IAAI,OAAO,CAAC,IAAI,KAAK,uBAAgB,CAAC,OAAO,EAAE;wBAC7C,OAAO,CAAC,IAAI,CAAC,sBAAsB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;wBACnD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBACvB;gBACH,CAAC,CAAC,CAAC;aACJ;YAED,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AArDD,8CAqDC"}
|
@@ -1,7 +1,11 @@
|
|
1
1
|
import { LoggerConfig } from "./logs";
|
2
|
-
import {
|
2
|
+
import { OTLPExporterConfig } from "./exporters";
|
3
|
+
import { Span } from "@opentelemetry/sdk-trace-base";
|
4
|
+
import { LogRecord } from "@opentelemetry/api-logs";
|
5
|
+
export declare function isTraceSignal(signal: any): signal is Span;
|
6
|
+
export declare function isLogSignal(signal: any): signal is LogRecord;
|
3
7
|
export interface TelemetryConfig {
|
4
8
|
logs?: LoggerConfig;
|
5
|
-
|
9
|
+
OTLPExporter?: OTLPExporterConfig;
|
6
10
|
}
|
7
11
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIpD,wBAAgB,aAAa,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,IAAI,CAIzD;AAGD,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,SAAS,CAI5D;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC"}
|
@@ -1,3 +1,19 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.isLogSignal = exports.isTraceSignal = void 0;
|
4
|
+
// We could implement our own types and avoid having `any`, but this has likely little value
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
6
|
+
function isTraceSignal(signal) {
|
7
|
+
// Span is an interface that has a property 'kind'
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
9
|
+
return signal && 'kind' in signal;
|
10
|
+
}
|
11
|
+
exports.isTraceSignal = isTraceSignal;
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
13
|
+
function isLogSignal(signal) {
|
14
|
+
// LogRecord is an interface that has a property 'severityText' and 'severityNumber'
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
16
|
+
return signal && 'severityText' in signal && 'severityNumber' in signal;
|
17
|
+
}
|
18
|
+
exports.isLogSignal = isLogSignal;
|
3
19
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":""}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":";;;AAKA,4FAA4F;AAC5F,8DAA8D;AAC9D,SAAgB,aAAa,CAAC,MAAW;IACvC,kDAAkD;IAClD,+DAA+D;IAC/D,OAAO,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC;AACpC,CAAC;AAJD,sCAIC;AAED,8DAA8D;AAC9D,SAAgB,WAAW,CAAC,MAAW;IACrC,oFAAoF;IACpF,+DAA+D;IAC/D,OAAO,MAAM,IAAI,cAAc,IAAI,MAAM,IAAI,gBAAgB,IAAI,MAAM,CAAC;AAC1E,CAAC;AAJD,kCAIC"}
|
@@ -1,25 +1,49 @@
|
|
1
1
|
import { Logger as IWinstonLogger } from "winston";
|
2
2
|
import { DBOSContext } from "../context";
|
3
|
+
import { TelemetryCollector } from "./collector";
|
4
|
+
/*****************/
|
5
|
+
/*****************/
|
3
6
|
export interface LoggerConfig {
|
4
7
|
logLevel?: string;
|
5
8
|
silent?: boolean;
|
6
9
|
addContextMetadata?: boolean;
|
7
10
|
}
|
8
|
-
|
9
|
-
|
11
|
+
type ContextualMetadata = {
|
12
|
+
includeContextMetadata?: boolean;
|
13
|
+
workflowUUID: string;
|
14
|
+
authenticatedUser: string;
|
15
|
+
traceId: string;
|
16
|
+
spanId: string;
|
17
|
+
};
|
18
|
+
interface StackTrace {
|
19
|
+
stack?: string;
|
10
20
|
}
|
21
|
+
export interface IGlobalLogger extends IWinstonLogger {
|
22
|
+
readonly addContextMetadata: boolean;
|
23
|
+
readonly logger: IWinstonLogger;
|
24
|
+
readonly telemetryCollector: TelemetryCollector;
|
25
|
+
}
|
26
|
+
export declare class GlobalLogger {
|
27
|
+
private readonly telemetryCollector?;
|
28
|
+
private readonly logger;
|
29
|
+
readonly addContextMetadata: boolean;
|
30
|
+
constructor(telemetryCollector?: TelemetryCollector | undefined, config?: LoggerConfig);
|
31
|
+
info(logEntry: any, metadata?: ContextualMetadata): void;
|
32
|
+
debug(logEntry: any, metadata?: ContextualMetadata): void;
|
33
|
+
warn(logEntry: any, metadata?: ContextualMetadata): void;
|
34
|
+
error(inputError: any, metadata?: ContextualMetadata & StackTrace): void;
|
35
|
+
}
|
36
|
+
/******************/
|
37
|
+
/******************/
|
11
38
|
export declare class Logger {
|
12
39
|
private readonly globalLogger;
|
13
40
|
private readonly ctx;
|
14
|
-
readonly metadata:
|
15
|
-
constructor(globalLogger:
|
16
|
-
info(
|
17
|
-
debug(
|
18
|
-
warn(
|
19
|
-
emerg(message: string): void;
|
20
|
-
alert(message: string): void;
|
21
|
-
crit(message: string): void;
|
41
|
+
readonly metadata: ContextualMetadata;
|
42
|
+
constructor(globalLogger: GlobalLogger, ctx: DBOSContext);
|
43
|
+
info(logEntry: any): void;
|
44
|
+
debug(logEntry: any): void;
|
45
|
+
warn(logEntry: any): void;
|
22
46
|
error(inputError: any): void;
|
23
47
|
}
|
24
|
-
export
|
48
|
+
export {};
|
25
49
|
//# sourceMappingURL=logs.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/telemetry/logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,MAAM,IAAI,cAAc,EAAE,MAAM,SAAS,CAAC;
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/telemetry/logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,MAAM,IAAI,cAAc,EAAE,MAAM,SAAS,CAAC;AAGrF,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,mBAAmB;AAEnB,mBAAmB;AAEnB,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,KAAK,kBAAkB,GAAG;IACxB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;CACjD;AAED,qBAAa,YAAY;IAKrB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAJtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;gBAGlB,kBAAkB,CAAC,gCAAoB,EACxD,MAAM,CAAC,EAAE,YAAY;IAoBvB,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,IAAI;IASxD,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,IAAI;IASzD,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAUxD,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,UAAU,GAAG,IAAI;CAIzE;AAED,oBAAoB;AAEpB,oBAAoB;AAGpB,qBAAa,MAAM;IAGf,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAHtB,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;gBAEnB,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,WAAW;IAYnC,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IASzB,KAAK,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAS1B,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAUzB,KAAK,CAAC,UAAU,EAAE,GAAG,GAAG,IAAI;CAU7B"}
|
@@ -1,91 +1,196 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
3
|
+
exports.Logger = exports.GlobalLogger = void 0;
|
4
4
|
const winston_1 = require("winston");
|
5
|
+
const TransportStream = require("winston-transport");
|
5
6
|
const applicationVersion_1 = require("../dbos-runtime/applicationVersion");
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
const api_1 = require("@opentelemetry/api");
|
8
|
+
const api_logs_1 = require("@opentelemetry/api-logs");
|
9
|
+
const sdk_logs_1 = require("@opentelemetry/sdk-logs");
|
10
|
+
class GlobalLogger {
|
11
|
+
telemetryCollector;
|
12
|
+
logger;
|
13
|
+
addContextMetadata;
|
14
|
+
constructor(telemetryCollector, config) {
|
15
|
+
this.telemetryCollector = telemetryCollector;
|
16
|
+
const winstonTransports = [];
|
17
|
+
winstonTransports.push(new winston_1.transports.Console({
|
18
|
+
format: consoleFormat,
|
19
|
+
level: config?.logLevel || "info",
|
20
|
+
silent: config?.silent || false,
|
21
|
+
}));
|
22
|
+
// Only enable the OTLP transport if we have a telemetry collector and an exporter
|
23
|
+
if (this.telemetryCollector?.exporter) {
|
24
|
+
winstonTransports.push(new OTLPLogQueueTransport(this.telemetryCollector));
|
25
|
+
}
|
26
|
+
this.logger = (0, winston_1.createLogger)({ transports: winstonTransports });
|
27
|
+
this.addContextMetadata = config?.addContextMetadata || false;
|
28
|
+
}
|
29
|
+
// We use this form of winston logging methods: `(message: string, ...meta: any[])`. See node_modules/winston/index.d.ts
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
31
|
+
info(logEntry, metadata) {
|
32
|
+
if (typeof logEntry === "string") {
|
33
|
+
this.logger.info(logEntry, metadata);
|
34
|
+
}
|
35
|
+
else {
|
36
|
+
this.logger.info(JSON.stringify(logEntry), metadata);
|
37
|
+
}
|
38
|
+
}
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
40
|
+
debug(logEntry, metadata) {
|
41
|
+
if (typeof logEntry === "string") {
|
42
|
+
this.logger.debug(logEntry, metadata);
|
43
|
+
}
|
44
|
+
else {
|
45
|
+
this.logger.debug(JSON.stringify(logEntry), metadata);
|
46
|
+
}
|
47
|
+
}
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
49
|
+
warn(logEntry, metadata) {
|
50
|
+
if (typeof logEntry === "string") {
|
51
|
+
this.logger.warn(logEntry, metadata);
|
52
|
+
}
|
53
|
+
else {
|
54
|
+
this.logger.warn(JSON.stringify(logEntry), metadata);
|
55
|
+
}
|
56
|
+
}
|
57
|
+
// metadata can have both ContextualMetadata and the error stack trace
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
59
|
+
error(inputError, metadata) {
|
60
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
61
|
+
this.logger.error(inputError, metadata);
|
62
|
+
}
|
63
|
+
}
|
64
|
+
exports.GlobalLogger = GlobalLogger;
|
65
|
+
/******************/
|
66
|
+
/* CONTEXT LOGGER */
|
67
|
+
/******************/
|
68
|
+
// Wrapper around our global logger. Expected to be instantiated by a new contexts so they can inject contextual metadata
|
9
69
|
class Logger {
|
10
70
|
globalLogger;
|
11
71
|
ctx;
|
12
|
-
|
13
|
-
metadata = {};
|
72
|
+
metadata;
|
14
73
|
constructor(globalLogger, ctx) {
|
15
74
|
this.globalLogger = globalLogger;
|
16
75
|
this.ctx = ctx;
|
17
|
-
|
18
|
-
this.
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
}
|
76
|
+
this.metadata = {
|
77
|
+
includeContextMetadata: this.globalLogger.addContextMetadata,
|
78
|
+
workflowUUID: this.ctx.workflowUUID,
|
79
|
+
authenticatedUser: this.ctx.authenticatedUser,
|
80
|
+
traceId: this.ctx.span.spanContext().traceId,
|
81
|
+
spanId: this.ctx.span.spanContext().spanId,
|
82
|
+
};
|
25
83
|
}
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
}
|
35
|
-
emerg(message) {
|
36
|
-
this.globalLogger.emerg(message, this.metadata);
|
84
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
85
|
+
info(logEntry) {
|
86
|
+
if (typeof logEntry === "string") {
|
87
|
+
this.globalLogger.info(logEntry, this.metadata);
|
88
|
+
}
|
89
|
+
else {
|
90
|
+
this.globalLogger.info(JSON.stringify(logEntry), this.metadata);
|
91
|
+
}
|
37
92
|
}
|
38
|
-
|
39
|
-
|
93
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
94
|
+
debug(logEntry) {
|
95
|
+
if (typeof logEntry === "string") {
|
96
|
+
this.globalLogger.debug(logEntry, this.metadata);
|
97
|
+
}
|
98
|
+
else {
|
99
|
+
this.globalLogger.debug(JSON.stringify(logEntry), this.metadata);
|
100
|
+
}
|
40
101
|
}
|
41
|
-
|
42
|
-
|
102
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
103
|
+
warn(logEntry) {
|
104
|
+
if (typeof logEntry === "string") {
|
105
|
+
this.globalLogger.warn(logEntry, this.metadata);
|
106
|
+
}
|
107
|
+
else {
|
108
|
+
this.globalLogger.warn(JSON.stringify(logEntry), this.metadata);
|
109
|
+
}
|
43
110
|
}
|
44
111
|
// We give users the same interface (message: string argument) but create an error to get a stack trace
|
45
112
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
46
113
|
error(inputError) {
|
47
114
|
if (inputError instanceof Error) {
|
48
|
-
this.globalLogger.error(inputError.message, { ...this.metadata, stack: inputError.stack
|
115
|
+
this.globalLogger.error(inputError.message, { ...this.metadata, stack: inputError.stack });
|
49
116
|
}
|
50
117
|
else if (typeof inputError === "string") {
|
51
|
-
|
52
|
-
this.globalLogger.error(inputError, { ...this.metadata, stack: e.stack });
|
118
|
+
this.globalLogger.error(inputError, { ...this.metadata, stack: new Error().stack });
|
53
119
|
}
|
54
120
|
else {
|
55
|
-
// If this is neither a string nor an error, we just log it as is an ommit the context
|
56
121
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
57
|
-
this.globalLogger.error(inputError.
|
122
|
+
this.globalLogger.error(JSON.stringify(inputError), { ...this.metadata, stack: new Error().stack });
|
58
123
|
}
|
59
124
|
}
|
60
125
|
}
|
61
126
|
exports.Logger = Logger;
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
new winston_1.transports.Console({
|
67
|
-
level: config?.logLevel || "info",
|
68
|
-
}),
|
69
|
-
],
|
70
|
-
silent: config?.silent || false,
|
71
|
-
});
|
72
|
-
logger.addContextMetadata = config?.addContextMetadata || false;
|
73
|
-
return logger;
|
74
|
-
}
|
75
|
-
exports.createGlobalLogger = createGlobalLogger;
|
76
|
-
const consoleFormat = winston_1.format.combine(winston_1.format.errors({ stack: true }), winston_1.format.timestamp(), winston_1.format.colorize(),
|
77
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
78
|
-
winston_1.format.printf((info) => {
|
127
|
+
/***********************/
|
128
|
+
/* FORMAT & TRANSPORTS */
|
129
|
+
/***********************/
|
130
|
+
const consoleFormat = winston_1.format.combine(winston_1.format.errors({ stack: true }), winston_1.format.timestamp(), winston_1.format.colorize(), winston_1.format.printf((info) => {
|
79
131
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
80
|
-
const { timestamp, level, message, stack
|
132
|
+
const { timestamp, level, message, stack } = info;
|
81
133
|
const applicationVersion = (0, applicationVersion_1.getApplicationVersion)();
|
82
134
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment
|
83
135
|
const ts = timestamp.slice(0, 19).replace("T", " ");
|
84
136
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment
|
85
137
|
const formattedStack = stack?.split("\n").slice(1).join("\n");
|
138
|
+
const contextualMetadata = {
|
139
|
+
workflowUUID: info.workflowUUID,
|
140
|
+
authenticatedUser: info.authenticatedUser,
|
141
|
+
traceId: info.traceId,
|
142
|
+
spanId: info.spanId,
|
143
|
+
};
|
86
144
|
const messageString = typeof message === "string" ? message : JSON.stringify(message);
|
145
|
+
const fullMessageString = `${messageString}${info.includeContextMetadata ? ` ${JSON.stringify(contextualMetadata)}` : ""}`;
|
87
146
|
const versionString = applicationVersion ? ` [version ${applicationVersion}]` : "";
|
88
147
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
89
|
-
return `${ts}${versionString} [${level}]: ${
|
148
|
+
return `${ts}${versionString} [${level}]: ${fullMessageString} ${stack ? "\n" + formattedStack : ""}`;
|
90
149
|
}));
|
150
|
+
class OTLPLogQueueTransport extends TransportStream {
|
151
|
+
telemetryCollector;
|
152
|
+
name = "OTLPLogQueueTransport";
|
153
|
+
otelLogger;
|
154
|
+
constructor(telemetryCollector) {
|
155
|
+
super();
|
156
|
+
this.telemetryCollector = telemetryCollector;
|
157
|
+
// not sure if we need a more explicit name here
|
158
|
+
this.otelLogger = new sdk_logs_1.LoggerProvider().getLogger("default");
|
159
|
+
}
|
160
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
161
|
+
log(info, callback) {
|
162
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
163
|
+
const { level, message, stack } = info;
|
164
|
+
const contextualMetadata = {
|
165
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
166
|
+
workflowUUID: info.workflowUUID,
|
167
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
168
|
+
authenticatedUser: info.authenticatedUser,
|
169
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
170
|
+
traceId: info.traceId,
|
171
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
172
|
+
spanId: info.spanId,
|
173
|
+
};
|
174
|
+
const levelToSeverityNumber = {
|
175
|
+
error: api_logs_1.SeverityNumber.ERROR,
|
176
|
+
warn: api_logs_1.SeverityNumber.WARN,
|
177
|
+
info: api_logs_1.SeverityNumber.INFO,
|
178
|
+
debug: api_logs_1.SeverityNumber.DEBUG,
|
179
|
+
};
|
180
|
+
const log = {
|
181
|
+
severityNumber: levelToSeverityNumber[level],
|
182
|
+
severityText: level,
|
183
|
+
body: message,
|
184
|
+
timestamp: new Date().getTime(),
|
185
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
186
|
+
attributes: { ...contextualMetadata, stack },
|
187
|
+
// TODO as a nice-to-have, we could retrieve the operation current context, if we use a context manager, and inject the traceId/spanId in the LogRecord
|
188
|
+
// See https://opentelemetry.io/docs/instrumentation/js/context/#active-context
|
189
|
+
context: api_1.context.active(),
|
190
|
+
};
|
191
|
+
const logRecord = new sdk_logs_1.LogRecord(this.otelLogger, log);
|
192
|
+
this.telemetryCollector.push(logRecord);
|
193
|
+
callback();
|
194
|
+
}
|
195
|
+
}
|
91
196
|
//# sourceMappingURL=logs.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/telemetry/logs.ts"],"names":[],"mappings":";;;AAAA,qCAAqF;AACrF,2EAA2E;
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/telemetry/logs.ts"],"names":[],"mappings":"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"}
|
@@ -1,11 +1,6 @@
|
|
1
|
-
import {
|
1
|
+
import { Span } from "@opentelemetry/sdk-trace-base";
|
2
2
|
import { Attributes, SpanContext } from "@opentelemetry/api";
|
3
3
|
import { TelemetryCollector } from "./collector";
|
4
|
-
export interface TracerConfig {
|
5
|
-
enabled?: boolean;
|
6
|
-
endpoint?: string;
|
7
|
-
}
|
8
|
-
export declare function spanToString(span: ReadableSpan): string;
|
9
4
|
export declare class Tracer {
|
10
5
|
private readonly telemetryCollector;
|
11
6
|
private readonly tracer;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"traces.d.ts","sourceRoot":"","sources":["../../../src/telemetry/traces.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"traces.d.ts","sourceRoot":"","sources":["../../../src/telemetry/traces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAExF,OAAsB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,qBAAa,MAAM;IAEL,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAD/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;gBAChB,kBAAkB,EAAE,kBAAkB;IASnE,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;IAM3F,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI;IAUzE,OAAO,CAAC,IAAI,EAAE,IAAI;CAInB"}
|