@loglayer/transport-dynatrace 2.1.6 → 2.1.7

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/index.cjs CHANGED
@@ -1,50 +1,68 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/DynatraceTransport.ts
2
- var _transport = require('@loglayer/transport');
3
- var DynatraceTransport = class extends _transport.LoggerlessTransport {
4
-
5
-
6
-
7
- constructor(config) {
8
- super(config);
9
- this.url = config.url;
10
- this.onError = config.onError;
11
- this.ingestToken = config.ingestToken;
12
- }
13
- shipToLogger({ logLevel, messages, data, hasData }) {
14
- const stringMessages = messages.filter((msg) => typeof msg === "string");
15
- const message = stringMessages.join(" ");
16
- const payload = {
17
- content: message,
18
- severity: logLevel,
19
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
20
- ...data && hasData ? data : {}
21
- };
22
- const content = JSON.stringify(payload);
23
- fetch(this.url, {
24
- method: "POST",
25
- headers: {
26
- "Content-Type": "application/json; charset=utf-8",
27
- Authorization: `Api-Token ${this.ingestToken}`
28
- },
29
- body: content
30
- }).then((response) => {
31
- if (!response.ok) {
32
- const error = `Failed to send log to Dynatrace: ${response.statusText}`;
33
- if (this.onError) {
34
- this.onError(error);
35
- }
36
- }
37
- }).catch((error) => {
38
- if (this.onError) {
39
- this.onError(error);
40
- } else {
41
- console.error("Error sending log to Dynatrace:", error);
42
- }
43
- });
44
- return messages;
45
- }
1
+ //#region rolldown:runtime
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
10
+ key = keys[i];
11
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
+ get: ((k) => from[k]).bind(null, key),
13
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
+ });
15
+ }
16
+ return to;
46
17
  };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
19
+ value: mod,
20
+ enumerable: true
21
+ }) : target, mod));
47
22
 
23
+ //#endregion
24
+ let __loglayer_transport = require("@loglayer/transport");
25
+ __loglayer_transport = __toESM(__loglayer_transport);
48
26
 
27
+ //#region src/DynatraceTransport.ts
28
+ var DynatraceTransport = class extends __loglayer_transport.LoggerlessTransport {
29
+ url;
30
+ onError;
31
+ ingestToken;
32
+ constructor(config) {
33
+ super(config);
34
+ this.url = config.url;
35
+ this.onError = config.onError;
36
+ this.ingestToken = config.ingestToken;
37
+ }
38
+ shipToLogger({ logLevel, messages, data, hasData }) {
39
+ const payload = {
40
+ content: messages.filter((msg) => typeof msg === "string").join(" "),
41
+ severity: logLevel,
42
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
43
+ ...data && hasData ? data : {}
44
+ };
45
+ const content = JSON.stringify(payload);
46
+ fetch(this.url, {
47
+ method: "POST",
48
+ headers: {
49
+ "Content-Type": "application/json; charset=utf-8",
50
+ Authorization: `Api-Token ${this.ingestToken}`
51
+ },
52
+ body: content
53
+ }).then((response) => {
54
+ if (!response.ok) {
55
+ const error = `Failed to send log to Dynatrace: ${response.statusText}`;
56
+ if (this.onError) this.onError(error);
57
+ }
58
+ }).catch((error) => {
59
+ if (this.onError) this.onError(error);
60
+ else console.error("Error sending log to Dynatrace:", error);
61
+ });
62
+ return messages;
63
+ }
64
+ };
65
+
66
+ //#endregion
49
67
  exports.DynatraceTransport = DynatraceTransport;
50
68
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/loglayer/loglayer/packages/transports/dynatrace/dist/index.cjs","../src/DynatraceTransport.ts"],"names":[],"mappings":"AAAA;ACAA,gDAAkG;AAqB3F,IAAM,mBAAA,EAAN,MAAA,QAAiC,+BAAoB;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EAER,WAAA,CAAY,MAAA,EAAkC;AAC5C,IAAA,KAAA,CAAM,MAAM,CAAA;AACZ,IAAA,IAAA,CAAK,IAAA,EAAM,MAAA,CAAO,GAAA;AAClB,IAAA,IAAA,CAAK,QAAA,EAAU,MAAA,CAAO,OAAA;AACtB,IAAA,IAAA,CAAK,YAAA,EAAc,MAAA,CAAO,WAAA;AAAA,EAC5B;AAAA,EAEA,YAAA,CAAa,EAAE,QAAA,EAAU,QAAA,EAAU,IAAA,EAAM,QAAQ,CAAA,EAAmC;AAElF,IAAA,MAAM,eAAA,EAAiB,QAAA,CAAS,MAAA,CAAO,CAAC,GAAA,EAAA,GAAQ,OAAO,IAAA,IAAQ,QAAQ,CAAA;AACvE,IAAA,MAAM,QAAA,EAAU,cAAA,CAAe,IAAA,CAAK,GAAG,CAAA;AAEvC,IAAA,MAAM,QAAA,EAA+B;AAAA,MACnC,OAAA,EAAS,OAAA;AAAA,MACT,QAAA,EAAU,QAAA;AAAA,MACV,SAAA,EAAA,iBAAW,IAAI,IAAA,CAAK,CAAA,CAAA,CAAE,WAAA,CAAY,CAAA;AAAA,MAClC,GAAI,KAAA,GAAQ,QAAA,EAAU,KAAA,EAAO,CAAC;AAAA,IAChC,CAAA;AAEA,IAAA,MAAM,QAAA,EAAU,IAAA,CAAK,SAAA,CAAU,OAAO,CAAA;AAEtC,IAAA,KAAA,CAAM,IAAA,CAAK,GAAA,EAAK;AAAA,MACd,MAAA,EAAQ,MAAA;AAAA,MACR,OAAA,EAAS;AAAA,QACP,cAAA,EAAgB,iCAAA;AAAA,QAChB,aAAA,EAAe,CAAA,UAAA,EAAa,IAAA,CAAK,WAAW,CAAA;AAAA,MAAA;AAC9C,MAAA;AACM,IAAA;AAGJ,MAAA;AACE,QAAA;AACA,QAAA;AACE,UAAA;AAAkB,QAAA;AACpB,MAAA;AACF,IAAA;AAGA,MAAA;AACE,QAAA;AAAkB,MAAA;AAElB,QAAA;AAAsD,MAAA;AACxD,IAAA;AAGJ,IAAA;AAAO,EAAA;AAEX;AD3BA;AACA;AACA","file":"/home/runner/work/loglayer/loglayer/packages/transports/dynatrace/dist/index.cjs","sourcesContent":[null,"import { LoggerlessTransport, type LoggerlessTransportConfig, type LogLayerTransportParams } from \"@loglayer/transport\";\n\nexport interface DynatraceTransportConfig extends LoggerlessTransportConfig {\n /**\n * The URL to post logs to. Should be in the format of:\n * - https://<env-id>.live.dynatrace.com/api/v2/logs/ingest\n * - https://{your-activegate-domain}:9999/e/{your-environment-id}/api/v2/logs/ingest\n */\n url: string;\n\n /**\n * An access token with the logs.ingest scope\n */\n ingestToken: string;\n\n /**\n * Optional callback for error handling\n */\n onError?: (error: Error | string) => void;\n}\n\nexport class DynatraceTransport extends LoggerlessTransport {\n private url: string;\n private onError?: (error: Error | string) => void;\n private ingestToken: string;\n\n constructor(config: DynatraceTransportConfig) {\n super(config);\n this.url = config.url;\n this.onError = config.onError;\n this.ingestToken = config.ingestToken;\n }\n\n shipToLogger({ logLevel, messages, data, hasData }: LogLayerTransportParams): any[] {\n // Only use the string messages for content\n const stringMessages = messages.filter((msg) => typeof msg === \"string\");\n const message = stringMessages.join(\" \");\n\n const payload: Record<string, any> = {\n content: message,\n severity: logLevel,\n timestamp: new Date().toISOString(),\n ...(data && hasData ? data : {}),\n };\n\n const content = JSON.stringify(payload);\n\n fetch(this.url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n Authorization: `Api-Token ${this.ingestToken}`,\n },\n body: content,\n })\n .then((response) => {\n if (!response.ok) {\n const error = `Failed to send log to Dynatrace: ${response.statusText}`;\n if (this.onError) {\n this.onError(error);\n }\n }\n })\n .catch((error) => {\n if (this.onError) {\n this.onError(error);\n } else {\n console.error(\"Error sending log to Dynatrace:\", error);\n }\n });\n\n return messages;\n }\n}\n"]}
1
+ {"version":3,"file":"index.cjs","names":["LoggerlessTransport","payload: Record<string, any>"],"sources":["../src/DynatraceTransport.ts"],"sourcesContent":["import { LoggerlessTransport, type LoggerlessTransportConfig, type LogLayerTransportParams } from \"@loglayer/transport\";\n\nexport interface DynatraceTransportConfig extends LoggerlessTransportConfig {\n /**\n * The URL to post logs to. Should be in the format of:\n * - https://<env-id>.live.dynatrace.com/api/v2/logs/ingest\n * - https://{your-activegate-domain}:9999/e/{your-environment-id}/api/v2/logs/ingest\n */\n url: string;\n\n /**\n * An access token with the logs.ingest scope\n */\n ingestToken: string;\n\n /**\n * Optional callback for error handling\n */\n onError?: (error: Error | string) => void;\n}\n\nexport class DynatraceTransport extends LoggerlessTransport {\n private url: string;\n private onError?: (error: Error | string) => void;\n private ingestToken: string;\n\n constructor(config: DynatraceTransportConfig) {\n super(config);\n this.url = config.url;\n this.onError = config.onError;\n this.ingestToken = config.ingestToken;\n }\n\n shipToLogger({ logLevel, messages, data, hasData }: LogLayerTransportParams): any[] {\n // Only use the string messages for content\n const stringMessages = messages.filter((msg) => typeof msg === \"string\");\n const message = stringMessages.join(\" \");\n\n const payload: Record<string, any> = {\n content: message,\n severity: logLevel,\n timestamp: new Date().toISOString(),\n ...(data && hasData ? data : {}),\n };\n\n const content = JSON.stringify(payload);\n\n fetch(this.url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n Authorization: `Api-Token ${this.ingestToken}`,\n },\n body: content,\n })\n .then((response) => {\n if (!response.ok) {\n const error = `Failed to send log to Dynatrace: ${response.statusText}`;\n if (this.onError) {\n this.onError(error);\n }\n }\n })\n .catch((error) => {\n if (this.onError) {\n this.onError(error);\n } else {\n console.error(\"Error sending log to Dynatrace:\", error);\n }\n });\n\n return messages;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,IAAa,qBAAb,cAAwCA,yCAAoB;CAC1D,AAAQ;CACR,AAAQ;CACR,AAAQ;CAER,YAAY,QAAkC;AAC5C,QAAM,OAAO;AACb,OAAK,MAAM,OAAO;AAClB,OAAK,UAAU,OAAO;AACtB,OAAK,cAAc,OAAO;;CAG5B,aAAa,EAAE,UAAU,UAAU,MAAM,WAA2C;EAKlF,MAAMC,UAA+B;GACnC,SAJqB,SAAS,QAAQ,QAAQ,OAAO,QAAQ,SAAS,CACzC,KAAK,IAAI;GAItC,UAAU;GACV,4BAAW,IAAI,MAAM,EAAC,aAAa;GACnC,GAAI,QAAQ,UAAU,OAAO,EAAE;GAChC;EAED,MAAM,UAAU,KAAK,UAAU,QAAQ;AAEvC,QAAM,KAAK,KAAK;GACd,QAAQ;GACR,SAAS;IACP,gBAAgB;IAChB,eAAe,aAAa,KAAK;IAClC;GACD,MAAM;GACP,CAAC,CACC,MAAM,aAAa;AAClB,OAAI,CAAC,SAAS,IAAI;IAChB,MAAM,QAAQ,oCAAoC,SAAS;AAC3D,QAAI,KAAK,QACP,MAAK,QAAQ,MAAM;;IAGvB,CACD,OAAO,UAAU;AAChB,OAAI,KAAK,QACP,MAAK,QAAQ,MAAM;OAEnB,SAAQ,MAAM,mCAAmC,MAAM;IAEzD;AAEJ,SAAO"}
package/dist/index.d.cts CHANGED
@@ -1,27 +1,34 @@
1
- import { LoggerlessTransport, LoggerlessTransportConfig, LogLayerTransportParams } from '@loglayer/transport';
1
+ import { LogLayerTransportParams, LoggerlessTransport, LoggerlessTransportConfig } from "@loglayer/transport";
2
2
 
3
+ //#region src/DynatraceTransport.d.ts
3
4
  interface DynatraceTransportConfig extends LoggerlessTransportConfig {
4
- /**
5
- * The URL to post logs to. Should be in the format of:
6
- * - https://<env-id>.live.dynatrace.com/api/v2/logs/ingest
7
- * - https://{your-activegate-domain}:9999/e/{your-environment-id}/api/v2/logs/ingest
8
- */
9
- url: string;
10
- /**
11
- * An access token with the logs.ingest scope
12
- */
13
- ingestToken: string;
14
- /**
15
- * Optional callback for error handling
16
- */
17
- onError?: (error: Error | string) => void;
5
+ /**
6
+ * The URL to post logs to. Should be in the format of:
7
+ * - https://<env-id>.live.dynatrace.com/api/v2/logs/ingest
8
+ * - https://{your-activegate-domain}:9999/e/{your-environment-id}/api/v2/logs/ingest
9
+ */
10
+ url: string;
11
+ /**
12
+ * An access token with the logs.ingest scope
13
+ */
14
+ ingestToken: string;
15
+ /**
16
+ * Optional callback for error handling
17
+ */
18
+ onError?: (error: Error | string) => void;
18
19
  }
19
20
  declare class DynatraceTransport extends LoggerlessTransport {
20
- private url;
21
- private onError?;
22
- private ingestToken;
23
- constructor(config: DynatraceTransportConfig);
24
- shipToLogger({ logLevel, messages, data, hasData }: LogLayerTransportParams): any[];
21
+ private url;
22
+ private onError?;
23
+ private ingestToken;
24
+ constructor(config: DynatraceTransportConfig);
25
+ shipToLogger({
26
+ logLevel,
27
+ messages,
28
+ data,
29
+ hasData
30
+ }: LogLayerTransportParams): any[];
25
31
  }
26
-
32
+ //#endregion
27
33
  export { DynatraceTransport, type DynatraceTransportConfig };
34
+ //# sourceMappingURL=index.d.cts.map
package/dist/index.d.ts CHANGED
@@ -1,27 +1,34 @@
1
- import { LoggerlessTransport, LoggerlessTransportConfig, LogLayerTransportParams } from '@loglayer/transport';
1
+ import { LogLayerTransportParams, LoggerlessTransport, LoggerlessTransportConfig } from "@loglayer/transport";
2
2
 
3
+ //#region src/DynatraceTransport.d.ts
3
4
  interface DynatraceTransportConfig extends LoggerlessTransportConfig {
4
- /**
5
- * The URL to post logs to. Should be in the format of:
6
- * - https://<env-id>.live.dynatrace.com/api/v2/logs/ingest
7
- * - https://{your-activegate-domain}:9999/e/{your-environment-id}/api/v2/logs/ingest
8
- */
9
- url: string;
10
- /**
11
- * An access token with the logs.ingest scope
12
- */
13
- ingestToken: string;
14
- /**
15
- * Optional callback for error handling
16
- */
17
- onError?: (error: Error | string) => void;
5
+ /**
6
+ * The URL to post logs to. Should be in the format of:
7
+ * - https://<env-id>.live.dynatrace.com/api/v2/logs/ingest
8
+ * - https://{your-activegate-domain}:9999/e/{your-environment-id}/api/v2/logs/ingest
9
+ */
10
+ url: string;
11
+ /**
12
+ * An access token with the logs.ingest scope
13
+ */
14
+ ingestToken: string;
15
+ /**
16
+ * Optional callback for error handling
17
+ */
18
+ onError?: (error: Error | string) => void;
18
19
  }
19
20
  declare class DynatraceTransport extends LoggerlessTransport {
20
- private url;
21
- private onError?;
22
- private ingestToken;
23
- constructor(config: DynatraceTransportConfig);
24
- shipToLogger({ logLevel, messages, data, hasData }: LogLayerTransportParams): any[];
21
+ private url;
22
+ private onError?;
23
+ private ingestToken;
24
+ constructor(config: DynatraceTransportConfig);
25
+ shipToLogger({
26
+ logLevel,
27
+ messages,
28
+ data,
29
+ hasData
30
+ }: LogLayerTransportParams): any[];
25
31
  }
26
-
32
+ //#endregion
27
33
  export { DynatraceTransport, type DynatraceTransportConfig };
34
+ //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,50 +1,44 @@
1
- // src/DynatraceTransport.ts
2
1
  import { LoggerlessTransport } from "@loglayer/transport";
2
+
3
+ //#region src/DynatraceTransport.ts
3
4
  var DynatraceTransport = class extends LoggerlessTransport {
4
- url;
5
- onError;
6
- ingestToken;
7
- constructor(config) {
8
- super(config);
9
- this.url = config.url;
10
- this.onError = config.onError;
11
- this.ingestToken = config.ingestToken;
12
- }
13
- shipToLogger({ logLevel, messages, data, hasData }) {
14
- const stringMessages = messages.filter((msg) => typeof msg === "string");
15
- const message = stringMessages.join(" ");
16
- const payload = {
17
- content: message,
18
- severity: logLevel,
19
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
20
- ...data && hasData ? data : {}
21
- };
22
- const content = JSON.stringify(payload);
23
- fetch(this.url, {
24
- method: "POST",
25
- headers: {
26
- "Content-Type": "application/json; charset=utf-8",
27
- Authorization: `Api-Token ${this.ingestToken}`
28
- },
29
- body: content
30
- }).then((response) => {
31
- if (!response.ok) {
32
- const error = `Failed to send log to Dynatrace: ${response.statusText}`;
33
- if (this.onError) {
34
- this.onError(error);
35
- }
36
- }
37
- }).catch((error) => {
38
- if (this.onError) {
39
- this.onError(error);
40
- } else {
41
- console.error("Error sending log to Dynatrace:", error);
42
- }
43
- });
44
- return messages;
45
- }
46
- };
47
- export {
48
- DynatraceTransport
5
+ url;
6
+ onError;
7
+ ingestToken;
8
+ constructor(config) {
9
+ super(config);
10
+ this.url = config.url;
11
+ this.onError = config.onError;
12
+ this.ingestToken = config.ingestToken;
13
+ }
14
+ shipToLogger({ logLevel, messages, data, hasData }) {
15
+ const payload = {
16
+ content: messages.filter((msg) => typeof msg === "string").join(" "),
17
+ severity: logLevel,
18
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
19
+ ...data && hasData ? data : {}
20
+ };
21
+ const content = JSON.stringify(payload);
22
+ fetch(this.url, {
23
+ method: "POST",
24
+ headers: {
25
+ "Content-Type": "application/json; charset=utf-8",
26
+ Authorization: `Api-Token ${this.ingestToken}`
27
+ },
28
+ body: content
29
+ }).then((response) => {
30
+ if (!response.ok) {
31
+ const error = `Failed to send log to Dynatrace: ${response.statusText}`;
32
+ if (this.onError) this.onError(error);
33
+ }
34
+ }).catch((error) => {
35
+ if (this.onError) this.onError(error);
36
+ else console.error("Error sending log to Dynatrace:", error);
37
+ });
38
+ return messages;
39
+ }
49
40
  };
41
+
42
+ //#endregion
43
+ export { DynatraceTransport };
50
44
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/DynatraceTransport.ts"],"sourcesContent":["import { LoggerlessTransport, type LoggerlessTransportConfig, type LogLayerTransportParams } from \"@loglayer/transport\";\n\nexport interface DynatraceTransportConfig extends LoggerlessTransportConfig {\n /**\n * The URL to post logs to. Should be in the format of:\n * - https://<env-id>.live.dynatrace.com/api/v2/logs/ingest\n * - https://{your-activegate-domain}:9999/e/{your-environment-id}/api/v2/logs/ingest\n */\n url: string;\n\n /**\n * An access token with the logs.ingest scope\n */\n ingestToken: string;\n\n /**\n * Optional callback for error handling\n */\n onError?: (error: Error | string) => void;\n}\n\nexport class DynatraceTransport extends LoggerlessTransport {\n private url: string;\n private onError?: (error: Error | string) => void;\n private ingestToken: string;\n\n constructor(config: DynatraceTransportConfig) {\n super(config);\n this.url = config.url;\n this.onError = config.onError;\n this.ingestToken = config.ingestToken;\n }\n\n shipToLogger({ logLevel, messages, data, hasData }: LogLayerTransportParams): any[] {\n // Only use the string messages for content\n const stringMessages = messages.filter((msg) => typeof msg === \"string\");\n const message = stringMessages.join(\" \");\n\n const payload: Record<string, any> = {\n content: message,\n severity: logLevel,\n timestamp: new Date().toISOString(),\n ...(data && hasData ? data : {}),\n };\n\n const content = JSON.stringify(payload);\n\n fetch(this.url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n Authorization: `Api-Token ${this.ingestToken}`,\n },\n body: content,\n })\n .then((response) => {\n if (!response.ok) {\n const error = `Failed to send log to Dynatrace: ${response.statusText}`;\n if (this.onError) {\n this.onError(error);\n }\n }\n })\n .catch((error) => {\n if (this.onError) {\n this.onError(error);\n } else {\n console.error(\"Error sending log to Dynatrace:\", error);\n }\n });\n\n return messages;\n }\n}\n"],"mappings":";AAAA,SAAS,2BAAyF;AAqB3F,IAAM,qBAAN,cAAiC,oBAAoB;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EAER,YAAY,QAAkC;AAC5C,UAAM,MAAM;AACZ,SAAK,MAAM,OAAO;AAClB,SAAK,UAAU,OAAO;AACtB,SAAK,cAAc,OAAO;AAAA,EAC5B;AAAA,EAEA,aAAa,EAAE,UAAU,UAAU,MAAM,QAAQ,GAAmC;AAElF,UAAM,iBAAiB,SAAS,OAAO,CAAC,QAAQ,OAAO,QAAQ,QAAQ;AACvE,UAAM,UAAU,eAAe,KAAK,GAAG;AAEvC,UAAM,UAA+B;AAAA,MACnC,SAAS;AAAA,MACT,UAAU;AAAA,MACV,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,MAClC,GAAI,QAAQ,UAAU,OAAO,CAAC;AAAA,IAChC;AAEA,UAAM,UAAU,KAAK,UAAU,OAAO;AAEtC,UAAM,KAAK,KAAK;AAAA,MACd,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,eAAe,aAAa,KAAK,WAAW;AAAA,MAC9C;AAAA,MACA,MAAM;AAAA,IACR,CAAC,EACE,KAAK,CAAC,aAAa;AAClB,UAAI,CAAC,SAAS,IAAI;AAChB,cAAM,QAAQ,oCAAoC,SAAS,UAAU;AACrE,YAAI,KAAK,SAAS;AAChB,eAAK,QAAQ,KAAK;AAAA,QACpB;AAAA,MACF;AAAA,IACF,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,UAAI,KAAK,SAAS;AAChB,aAAK,QAAQ,KAAK;AAAA,MACpB,OAAO;AACL,gBAAQ,MAAM,mCAAmC,KAAK;AAAA,MACxD;AAAA,IACF,CAAC;AAEH,WAAO;AAAA,EACT;AACF;","names":[]}
1
+ {"version":3,"file":"index.js","names":["payload: Record<string, any>"],"sources":["../src/DynatraceTransport.ts"],"sourcesContent":["import { LoggerlessTransport, type LoggerlessTransportConfig, type LogLayerTransportParams } from \"@loglayer/transport\";\n\nexport interface DynatraceTransportConfig extends LoggerlessTransportConfig {\n /**\n * The URL to post logs to. Should be in the format of:\n * - https://<env-id>.live.dynatrace.com/api/v2/logs/ingest\n * - https://{your-activegate-domain}:9999/e/{your-environment-id}/api/v2/logs/ingest\n */\n url: string;\n\n /**\n * An access token with the logs.ingest scope\n */\n ingestToken: string;\n\n /**\n * Optional callback for error handling\n */\n onError?: (error: Error | string) => void;\n}\n\nexport class DynatraceTransport extends LoggerlessTransport {\n private url: string;\n private onError?: (error: Error | string) => void;\n private ingestToken: string;\n\n constructor(config: DynatraceTransportConfig) {\n super(config);\n this.url = config.url;\n this.onError = config.onError;\n this.ingestToken = config.ingestToken;\n }\n\n shipToLogger({ logLevel, messages, data, hasData }: LogLayerTransportParams): any[] {\n // Only use the string messages for content\n const stringMessages = messages.filter((msg) => typeof msg === \"string\");\n const message = stringMessages.join(\" \");\n\n const payload: Record<string, any> = {\n content: message,\n severity: logLevel,\n timestamp: new Date().toISOString(),\n ...(data && hasData ? data : {}),\n };\n\n const content = JSON.stringify(payload);\n\n fetch(this.url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n Authorization: `Api-Token ${this.ingestToken}`,\n },\n body: content,\n })\n .then((response) => {\n if (!response.ok) {\n const error = `Failed to send log to Dynatrace: ${response.statusText}`;\n if (this.onError) {\n this.onError(error);\n }\n }\n })\n .catch((error) => {\n if (this.onError) {\n this.onError(error);\n } else {\n console.error(\"Error sending log to Dynatrace:\", error);\n }\n });\n\n return messages;\n }\n}\n"],"mappings":";;;AAqBA,IAAa,qBAAb,cAAwC,oBAAoB;CAC1D,AAAQ;CACR,AAAQ;CACR,AAAQ;CAER,YAAY,QAAkC;AAC5C,QAAM,OAAO;AACb,OAAK,MAAM,OAAO;AAClB,OAAK,UAAU,OAAO;AACtB,OAAK,cAAc,OAAO;;CAG5B,aAAa,EAAE,UAAU,UAAU,MAAM,WAA2C;EAKlF,MAAMA,UAA+B;GACnC,SAJqB,SAAS,QAAQ,QAAQ,OAAO,QAAQ,SAAS,CACzC,KAAK,IAAI;GAItC,UAAU;GACV,4BAAW,IAAI,MAAM,EAAC,aAAa;GACnC,GAAI,QAAQ,UAAU,OAAO,EAAE;GAChC;EAED,MAAM,UAAU,KAAK,UAAU,QAAQ;AAEvC,QAAM,KAAK,KAAK;GACd,QAAQ;GACR,SAAS;IACP,gBAAgB;IAChB,eAAe,aAAa,KAAK;IAClC;GACD,MAAM;GACP,CAAC,CACC,MAAM,aAAa;AAClB,OAAI,CAAC,SAAS,IAAI;IAChB,MAAM,QAAQ,oCAAoC,SAAS;AAC3D,QAAI,KAAK,QACP,MAAK,QAAQ,MAAM;;IAGvB,CACD,OAAO,UAAU;AAChB,OAAI,KAAK,QACP,MAAK,QAAQ,MAAM;OAEnB,SAAQ,MAAM,mCAAmC,MAAM;IAEzD;AAEJ,SAAO"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@loglayer/transport-dynatrace",
3
3
  "description": "Dynatrace transport for the LogLayer logging library.",
4
- "version": "2.1.6",
4
+ "version": "2.1.7",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
7
7
  "module": "./dist/index.js",
@@ -31,17 +31,17 @@
31
31
  "transport"
32
32
  ],
33
33
  "dependencies": {
34
- "@loglayer/transport": "2.3.3"
34
+ "@loglayer/transport": "2.3.4"
35
35
  },
36
36
  "devDependencies": {
37
- "@types/node": "24.6.1",
37
+ "@types/node": "24.7.2",
38
38
  "serialize-error": "12.0.0",
39
- "tsup": "8.5.0",
39
+ "tsdown": "0.15.7",
40
+ "tsx": "4.20.6",
40
41
  "typescript": "5.9.3",
41
42
  "vitest": "3.2.4",
42
- "tsx": "4.20.6",
43
- "loglayer": "6.8.2",
44
- "@internal/tsconfig": "2.1.0"
43
+ "@internal/tsconfig": "2.1.0",
44
+ "loglayer": "6.9.1"
45
45
  },
46
46
  "bugs": "https://github.com/loglayer/loglayer/issues",
47
47
  "engines": {
@@ -52,7 +52,7 @@
52
52
  ],
53
53
  "homepage": "https://loglayer.dev",
54
54
  "scripts": {
55
- "build": "tsup src/index.ts",
55
+ "build": "tsdown src/index.ts",
56
56
  "test": "vitest --run",
57
57
  "clean": "rm -rf .turbo node_modules dist",
58
58
  "lint": "biome check --no-errors-on-unmatched --write --unsafe src",