@loglayer/transport-dynatrace 3.1.0 → 3.3.0

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,6 +1,5 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  let _loglayer_transport = require("@loglayer/transport");
3
-
4
3
  //#region src/DynatraceTransport.ts
5
4
  var DynatraceTransport = class extends _loglayer_transport.LoggerlessTransport {
6
5
  url;
@@ -39,7 +38,7 @@ var DynatraceTransport = class extends _loglayer_transport.LoggerlessTransport {
39
38
  return messages;
40
39
  }
41
40
  };
42
-
43
41
  //#endregion
44
42
  exports.DynatraceTransport = DynatraceTransport;
43
+
45
44
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["LoggerlessTransport"],"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,wCAAoB;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,MAAM,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"}
1
+ {"version":3,"file":"index.cjs","names":["LoggerlessTransport"],"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,oBAAAA,oBAAoB;CAC1D;CACA;CACA;CAEA,YAAY,QAAkC;EAC5C,MAAM,MAAM;EACZ,KAAK,MAAM,OAAO;EAClB,KAAK,UAAU,OAAO;EACtB,KAAK,cAAc,OAAO;CAC5B;CAEA,aAAa,EAAE,UAAU,UAAU,MAAM,WAA2C;EAKlF,MAAM,UAA+B;GACnC,SAJqB,SAAS,QAAQ,QAAQ,OAAO,QAAQ,QAClC,EAAE,KAAK,GAGnB;GACf,UAAU;GACV,4BAAW,IAAI,KAAK,GAAE,YAAY;GAClC,GAAI,QAAQ,UAAU,OAAO,CAAC;EAChC;EAEA,MAAM,UAAU,KAAK,UAAU,OAAO;EAEtC,MAAM,KAAK,KAAK;GACd,QAAQ;GACR,SAAS;IACP,gBAAgB;IAChB,eAAe,aAAa,KAAK;GACnC;GACA,MAAM;EACR,CAAC,EACE,MAAM,aAAa;GAClB,IAAI,CAAC,SAAS,IAAI;IAChB,MAAM,QAAQ,oCAAoC,SAAS;IAC3D,IAAI,KAAK,SACP,KAAK,QAAQ,KAAK;GAEtB;EACF,CAAC,EACA,OAAO,UAAU;GAChB,IAAI,KAAK,SACP,KAAK,QAAQ,KAAK;QAElB,QAAQ,MAAM,mCAAmC,KAAK;EAE1D,CAAC;EAEH,OAAO;CACT;AACF"}
package/dist/index.mjs CHANGED
@@ -1,5 +1,4 @@
1
1
  import { LoggerlessTransport } from "@loglayer/transport";
2
-
3
2
  //#region src/DynatraceTransport.ts
4
3
  var DynatraceTransport = class extends LoggerlessTransport {
5
4
  url;
@@ -38,7 +37,7 @@ var DynatraceTransport = class extends LoggerlessTransport {
38
37
  return messages;
39
38
  }
40
39
  };
41
-
42
40
  //#endregion
43
41
  export { DynatraceTransport };
42
+
44
43
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"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,MAAM,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"}
1
+ {"version":3,"file":"index.mjs","names":[],"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;CACA;CACA;CAEA,YAAY,QAAkC;EAC5C,MAAM,MAAM;EACZ,KAAK,MAAM,OAAO;EAClB,KAAK,UAAU,OAAO;EACtB,KAAK,cAAc,OAAO;CAC5B;CAEA,aAAa,EAAE,UAAU,UAAU,MAAM,WAA2C;EAKlF,MAAM,UAA+B;GACnC,SAJqB,SAAS,QAAQ,QAAQ,OAAO,QAAQ,QAClC,EAAE,KAAK,GAGnB;GACf,UAAU;GACV,4BAAW,IAAI,KAAK,GAAE,YAAY;GAClC,GAAI,QAAQ,UAAU,OAAO,CAAC;EAChC;EAEA,MAAM,UAAU,KAAK,UAAU,OAAO;EAEtC,MAAM,KAAK,KAAK;GACd,QAAQ;GACR,SAAS;IACP,gBAAgB;IAChB,eAAe,aAAa,KAAK;GACnC;GACA,MAAM;EACR,CAAC,EACE,MAAM,aAAa;GAClB,IAAI,CAAC,SAAS,IAAI;IAChB,MAAM,QAAQ,oCAAoC,SAAS;IAC3D,IAAI,KAAK,SACP,KAAK,QAAQ,KAAK;GAEtB;EACF,CAAC,EACA,OAAO,UAAU;GAChB,IAAI,KAAK,SACP,KAAK,QAAQ,KAAK;QAElB,QAAQ,MAAM,mCAAmC,KAAK;EAE1D,CAAC;EAEH,OAAO;CACT;AACF"}
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": "3.1.0",
4
+ "version": "3.3.0",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
7
7
  "module": "./dist/index.mjs",
@@ -32,17 +32,17 @@
32
32
  "transport"
33
33
  ],
34
34
  "dependencies": {
35
- "@loglayer/transport": "3.1.0"
35
+ "@loglayer/transport": "3.3.0"
36
36
  },
37
37
  "devDependencies": {
38
- "@types/node": "25.2.3",
38
+ "@types/node": "25.9.1",
39
39
  "serialize-error": "13.0.1",
40
- "tsdown": "0.20.3",
41
- "tsx": "4.21.0",
42
- "typescript": "5.9.3",
43
- "vitest": "4.0.18",
40
+ "tsdown": "0.22.1",
41
+ "tsx": "4.22.3",
42
+ "typescript": "6.0.3",
43
+ "vitest": "4.1.7",
44
44
  "@internal/tsconfig": "2.1.0",
45
- "loglayer": "9.2.0"
45
+ "loglayer": "9.4.0"
46
46
  },
47
47
  "bugs": "https://github.com/loglayer/loglayer/issues",
48
48
  "engines": {