@loglayer/transport-central 0.0.3 → 0.2.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 +2 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +1 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +8 -8
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
let _loglayer_transport = require("@loglayer/transport");
|
|
3
3
|
let _loglayer_transport_http = require("@loglayer/transport-http");
|
|
4
|
-
|
|
5
4
|
//#region src/LogLayerCentralTransport.ts
|
|
6
5
|
/**
|
|
7
6
|
* LogLayer transport for sending logs to the Central log aggregation server.
|
|
@@ -71,9 +70,9 @@ var LogLayerCentralTransport = class extends _loglayer_transport_http.HttpTransp
|
|
|
71
70
|
});
|
|
72
71
|
}
|
|
73
72
|
};
|
|
74
|
-
|
|
75
73
|
//#endregion
|
|
76
74
|
exports.DEFAULT_BASE_URL = DEFAULT_BASE_URL;
|
|
77
75
|
exports.DEFAULT_PORT = DEFAULT_PORT;
|
|
78
76
|
exports.LogLayerCentralTransport = LogLayerCentralTransport;
|
|
77
|
+
|
|
79
78
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["HttpTransport","LogLevelPriority","LogLevel"],"sources":["../src/LogLayerCentralTransport.ts"],"sourcesContent":["/**\n * LogLayer transport for sending logs to the Central log aggregation server.\n * @module\n */\n\nimport { LogLevel, LogLevelPriority } from \"@loglayer/transport\";\nimport { HttpTransport, type HttpTransportConfig } from \"@loglayer/transport-http\";\n\n/** Default port for the Central log aggregation server */\nexport const DEFAULT_PORT = 9800;\n\n/** Default base URL for the Central log aggregation server */\nexport const DEFAULT_BASE_URL = `http://localhost:${DEFAULT_PORT}`;\n\n/**\n * Configuration options for the Central transport.\n * All HttpTransport options (batching, retries, compression, etc.) are supported\n * via the `httpOptions` field.\n */\nexport interface LogLayerCentralTransportConfig\n extends Omit<HttpTransportConfig, \"url\" | \"payloadTemplate\" | \"batchMode\"> {\n /**\n * The base URL of the Central log aggregation server.\n * @default \"http://localhost:9800\"\n */\n baseUrl?: string;\n\n /**\n * The service name to attach to all logs.\n * This identifies the source application in the Central server.\n */\n service: string;\n\n /**\n * Optional instance ID to differentiate between multiple instances\n * of the same service.\n */\n instanceId?: string;\n\n /**\n * Static tags to attach to all logs sent through this transport.\n * Tags are key:value strings (e.g., [\\\"env:prod\\\", \\\"region:us-east\\\"]).\n */\n tags?: string[];\n}\n\n/** Extracts metadata from the data object (everything except context, err, and error keys). */\nfunction extractMetadata(data: Record<string, unknown>): Record<string, unknown> | undefined {\n const { context, err, error, ...metadata } = data;\n return Object.keys(metadata).length > 0 ? metadata : undefined;\n}\n\n/** Extracts the context object from the data object. */\nfunction extractContext(data: Record<string, unknown>): Record<string, unknown> | undefined {\n const context = data.context;\n if (context && typeof context === \"object\" && !Array.isArray(context)) {\n return context as Record<string, unknown>;\n }\n return undefined;\n}\n\n/**\n * LogLayer transport that sends logs to the Central log aggregation server.\n * Extends HttpTransport so batching, retries, compression, and rate-limiting\n * work out of the box.\n *\n * @example\n * ```typescript\n * import { LogLayer } from \"loglayer\";\n * import { LogLayerCentralTransport } from \"@loglayer/transport-central\";\n *\n * const log = new LogLayer({\n * transport: new LogLayerCentralTransport({\n * baseUrl: \"http://localhost:9800\",\n * service: \"my-app\",\n * instanceId: \"instance-1\",\n * }),\n * });\n *\n * log.info(\"Application started\");\n * log.withMetadata({ userId: 123 }).error(\"User not found\");\n * ```\n */\nexport class LogLayerCentralTransport extends HttpTransport {\n constructor(config: LogLayerCentralTransportConfig) {\n const { baseUrl, service, instanceId, tags, ...httpOptions } = config;\n\n super({\n ...httpOptions,\n url: `${baseUrl ?? DEFAULT_BASE_URL}/api/logs`,\n // Central's POST /api/logs accepts both a single object and a JSON array.\n batchMode: \"array\",\n payloadTemplate: ({ logLevel, message, data, hasData, error, groups }) => {\n return JSON.stringify({\n service,\n message,\n level: logLevel in LogLevelPriority ? logLevel : LogLevel.info,\n timestamp: new Date().toISOString(),\n instanceId,\n metadata: hasData && data ? extractMetadata(data) : undefined,\n context: hasData && data ? extractContext(data) : undefined,\n error: error ? { name: error.name, message: error.message, stack: error.stack } : undefined,\n groups: groups && groups.length > 0 ? groups : undefined,\n tags: tags && tags.length > 0 ? tags : undefined,\n });\n },\n });\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["HttpTransport","LogLevelPriority","LogLevel"],"sources":["../src/LogLayerCentralTransport.ts"],"sourcesContent":["/**\n * LogLayer transport for sending logs to the Central log aggregation server.\n * @module\n */\n\nimport { LogLevel, LogLevelPriority } from \"@loglayer/transport\";\nimport { HttpTransport, type HttpTransportConfig } from \"@loglayer/transport-http\";\n\n/** Default port for the Central log aggregation server */\nexport const DEFAULT_PORT = 9800;\n\n/** Default base URL for the Central log aggregation server */\nexport const DEFAULT_BASE_URL = `http://localhost:${DEFAULT_PORT}`;\n\n/**\n * Configuration options for the Central transport.\n * All HttpTransport options (batching, retries, compression, etc.) are supported\n * via the `httpOptions` field.\n */\nexport interface LogLayerCentralTransportConfig\n extends Omit<HttpTransportConfig, \"url\" | \"payloadTemplate\" | \"batchMode\"> {\n /**\n * The base URL of the Central log aggregation server.\n * @default \"http://localhost:9800\"\n */\n baseUrl?: string;\n\n /**\n * The service name to attach to all logs.\n * This identifies the source application in the Central server.\n */\n service: string;\n\n /**\n * Optional instance ID to differentiate between multiple instances\n * of the same service.\n */\n instanceId?: string;\n\n /**\n * Static tags to attach to all logs sent through this transport.\n * Tags are key:value strings (e.g., [\\\"env:prod\\\", \\\"region:us-east\\\"]).\n */\n tags?: string[];\n}\n\n/** Extracts metadata from the data object (everything except context, err, and error keys). */\nfunction extractMetadata(data: Record<string, unknown>): Record<string, unknown> | undefined {\n const { context, err, error, ...metadata } = data;\n return Object.keys(metadata).length > 0 ? metadata : undefined;\n}\n\n/** Extracts the context object from the data object. */\nfunction extractContext(data: Record<string, unknown>): Record<string, unknown> | undefined {\n const context = data.context;\n if (context && typeof context === \"object\" && !Array.isArray(context)) {\n return context as Record<string, unknown>;\n }\n return undefined;\n}\n\n/**\n * LogLayer transport that sends logs to the Central log aggregation server.\n * Extends HttpTransport so batching, retries, compression, and rate-limiting\n * work out of the box.\n *\n * @example\n * ```typescript\n * import { LogLayer } from \"loglayer\";\n * import { LogLayerCentralTransport } from \"@loglayer/transport-central\";\n *\n * const log = new LogLayer({\n * transport: new LogLayerCentralTransport({\n * baseUrl: \"http://localhost:9800\",\n * service: \"my-app\",\n * instanceId: \"instance-1\",\n * }),\n * });\n *\n * log.info(\"Application started\");\n * log.withMetadata({ userId: 123 }).error(\"User not found\");\n * ```\n */\nexport class LogLayerCentralTransport extends HttpTransport {\n constructor(config: LogLayerCentralTransportConfig) {\n const { baseUrl, service, instanceId, tags, ...httpOptions } = config;\n\n super({\n ...httpOptions,\n url: `${baseUrl ?? DEFAULT_BASE_URL}/api/logs`,\n // Central's POST /api/logs accepts both a single object and a JSON array.\n batchMode: \"array\",\n payloadTemplate: ({ logLevel, message, data, hasData, error, groups }) => {\n return JSON.stringify({\n service,\n message,\n level: logLevel in LogLevelPriority ? logLevel : LogLevel.info,\n timestamp: new Date().toISOString(),\n instanceId,\n metadata: hasData && data ? extractMetadata(data) : undefined,\n context: hasData && data ? extractContext(data) : undefined,\n error: error ? { name: error.name, message: error.message, stack: error.stack } : undefined,\n groups: groups && groups.length > 0 ? groups : undefined,\n tags: tags && tags.length > 0 ? tags : undefined,\n });\n },\n });\n }\n}\n"],"mappings":";;;;;;;;;AASA,MAAa,eAAe;;AAG5B,MAAa,mBAAmB,oBAAoB;;AAmCpD,SAAS,gBAAgB,MAAoE;CAC3F,MAAM,EAAE,SAAS,KAAK,OAAO,GAAG,aAAa;CAC7C,OAAO,OAAO,KAAK,QAAQ,EAAE,SAAS,IAAI,WAAW,KAAA;AACvD;;AAGA,SAAS,eAAe,MAAoE;CAC1F,MAAM,UAAU,KAAK;CACrB,IAAI,WAAW,OAAO,YAAY,YAAY,CAAC,MAAM,QAAQ,OAAO,GAClE,OAAO;AAGX;;;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAa,2BAAb,cAA8CA,yBAAAA,cAAc;CAC1D,YAAY,QAAwC;EAClD,MAAM,EAAE,SAAS,SAAS,YAAY,MAAM,GAAG,gBAAgB;EAE/D,MAAM;GACJ,GAAG;GACH,KAAK,GAAG,WAAW,iBAAiB;GAEpC,WAAW;GACX,kBAAkB,EAAE,UAAU,SAAS,MAAM,SAAS,OAAO,aAAa;IACxE,OAAO,KAAK,UAAU;KACpB;KACA;KACA,OAAO,YAAYC,oBAAAA,mBAAmB,WAAWC,oBAAAA,SAAS;KAC1D,4BAAW,IAAI,KAAK,GAAE,YAAY;KAClC;KACA,UAAU,WAAW,OAAO,gBAAgB,IAAI,IAAI,KAAA;KACpD,SAAS,WAAW,OAAO,eAAe,IAAI,IAAI,KAAA;KAClD,OAAO,QAAQ;MAAE,MAAM,MAAM;MAAM,SAAS,MAAM;MAAS,OAAO,MAAM;KAAM,IAAI,KAAA;KAClF,QAAQ,UAAU,OAAO,SAAS,IAAI,SAAS,KAAA;KAC/C,MAAM,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAA;IACzC,CAAC;GACH;EACF,CAAC;CACH;AACF"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { LogLevel, LogLevelPriority } from "@loglayer/transport";
|
|
2
2
|
import { HttpTransport } from "@loglayer/transport-http";
|
|
3
|
-
|
|
4
3
|
//#region src/LogLayerCentralTransport.ts
|
|
5
4
|
/**
|
|
6
5
|
* LogLayer transport for sending logs to the Central log aggregation server.
|
|
@@ -70,7 +69,7 @@ var LogLayerCentralTransport = class extends HttpTransport {
|
|
|
70
69
|
});
|
|
71
70
|
}
|
|
72
71
|
};
|
|
73
|
-
|
|
74
72
|
//#endregion
|
|
75
73
|
export { DEFAULT_BASE_URL, DEFAULT_PORT, LogLayerCentralTransport };
|
|
74
|
+
|
|
76
75
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../src/LogLayerCentralTransport.ts"],"sourcesContent":["/**\n * LogLayer transport for sending logs to the Central log aggregation server.\n * @module\n */\n\nimport { LogLevel, LogLevelPriority } from \"@loglayer/transport\";\nimport { HttpTransport, type HttpTransportConfig } from \"@loglayer/transport-http\";\n\n/** Default port for the Central log aggregation server */\nexport const DEFAULT_PORT = 9800;\n\n/** Default base URL for the Central log aggregation server */\nexport const DEFAULT_BASE_URL = `http://localhost:${DEFAULT_PORT}`;\n\n/**\n * Configuration options for the Central transport.\n * All HttpTransport options (batching, retries, compression, etc.) are supported\n * via the `httpOptions` field.\n */\nexport interface LogLayerCentralTransportConfig\n extends Omit<HttpTransportConfig, \"url\" | \"payloadTemplate\" | \"batchMode\"> {\n /**\n * The base URL of the Central log aggregation server.\n * @default \"http://localhost:9800\"\n */\n baseUrl?: string;\n\n /**\n * The service name to attach to all logs.\n * This identifies the source application in the Central server.\n */\n service: string;\n\n /**\n * Optional instance ID to differentiate between multiple instances\n * of the same service.\n */\n instanceId?: string;\n\n /**\n * Static tags to attach to all logs sent through this transport.\n * Tags are key:value strings (e.g., [\\\"env:prod\\\", \\\"region:us-east\\\"]).\n */\n tags?: string[];\n}\n\n/** Extracts metadata from the data object (everything except context, err, and error keys). */\nfunction extractMetadata(data: Record<string, unknown>): Record<string, unknown> | undefined {\n const { context, err, error, ...metadata } = data;\n return Object.keys(metadata).length > 0 ? metadata : undefined;\n}\n\n/** Extracts the context object from the data object. */\nfunction extractContext(data: Record<string, unknown>): Record<string, unknown> | undefined {\n const context = data.context;\n if (context && typeof context === \"object\" && !Array.isArray(context)) {\n return context as Record<string, unknown>;\n }\n return undefined;\n}\n\n/**\n * LogLayer transport that sends logs to the Central log aggregation server.\n * Extends HttpTransport so batching, retries, compression, and rate-limiting\n * work out of the box.\n *\n * @example\n * ```typescript\n * import { LogLayer } from \"loglayer\";\n * import { LogLayerCentralTransport } from \"@loglayer/transport-central\";\n *\n * const log = new LogLayer({\n * transport: new LogLayerCentralTransport({\n * baseUrl: \"http://localhost:9800\",\n * service: \"my-app\",\n * instanceId: \"instance-1\",\n * }),\n * });\n *\n * log.info(\"Application started\");\n * log.withMetadata({ userId: 123 }).error(\"User not found\");\n * ```\n */\nexport class LogLayerCentralTransport extends HttpTransport {\n constructor(config: LogLayerCentralTransportConfig) {\n const { baseUrl, service, instanceId, tags, ...httpOptions } = config;\n\n super({\n ...httpOptions,\n url: `${baseUrl ?? DEFAULT_BASE_URL}/api/logs`,\n // Central's POST /api/logs accepts both a single object and a JSON array.\n batchMode: \"array\",\n payloadTemplate: ({ logLevel, message, data, hasData, error, groups }) => {\n return JSON.stringify({\n service,\n message,\n level: logLevel in LogLevelPriority ? logLevel : LogLevel.info,\n timestamp: new Date().toISOString(),\n instanceId,\n metadata: hasData && data ? extractMetadata(data) : undefined,\n context: hasData && data ? extractContext(data) : undefined,\n error: error ? { name: error.name, message: error.message, stack: error.stack } : undefined,\n groups: groups && groups.length > 0 ? groups : undefined,\n tags: tags && tags.length > 0 ? tags : undefined,\n });\n },\n });\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/LogLayerCentralTransport.ts"],"sourcesContent":["/**\n * LogLayer transport for sending logs to the Central log aggregation server.\n * @module\n */\n\nimport { LogLevel, LogLevelPriority } from \"@loglayer/transport\";\nimport { HttpTransport, type HttpTransportConfig } from \"@loglayer/transport-http\";\n\n/** Default port for the Central log aggregation server */\nexport const DEFAULT_PORT = 9800;\n\n/** Default base URL for the Central log aggregation server */\nexport const DEFAULT_BASE_URL = `http://localhost:${DEFAULT_PORT}`;\n\n/**\n * Configuration options for the Central transport.\n * All HttpTransport options (batching, retries, compression, etc.) are supported\n * via the `httpOptions` field.\n */\nexport interface LogLayerCentralTransportConfig\n extends Omit<HttpTransportConfig, \"url\" | \"payloadTemplate\" | \"batchMode\"> {\n /**\n * The base URL of the Central log aggregation server.\n * @default \"http://localhost:9800\"\n */\n baseUrl?: string;\n\n /**\n * The service name to attach to all logs.\n * This identifies the source application in the Central server.\n */\n service: string;\n\n /**\n * Optional instance ID to differentiate between multiple instances\n * of the same service.\n */\n instanceId?: string;\n\n /**\n * Static tags to attach to all logs sent through this transport.\n * Tags are key:value strings (e.g., [\\\"env:prod\\\", \\\"region:us-east\\\"]).\n */\n tags?: string[];\n}\n\n/** Extracts metadata from the data object (everything except context, err, and error keys). */\nfunction extractMetadata(data: Record<string, unknown>): Record<string, unknown> | undefined {\n const { context, err, error, ...metadata } = data;\n return Object.keys(metadata).length > 0 ? metadata : undefined;\n}\n\n/** Extracts the context object from the data object. */\nfunction extractContext(data: Record<string, unknown>): Record<string, unknown> | undefined {\n const context = data.context;\n if (context && typeof context === \"object\" && !Array.isArray(context)) {\n return context as Record<string, unknown>;\n }\n return undefined;\n}\n\n/**\n * LogLayer transport that sends logs to the Central log aggregation server.\n * Extends HttpTransport so batching, retries, compression, and rate-limiting\n * work out of the box.\n *\n * @example\n * ```typescript\n * import { LogLayer } from \"loglayer\";\n * import { LogLayerCentralTransport } from \"@loglayer/transport-central\";\n *\n * const log = new LogLayer({\n * transport: new LogLayerCentralTransport({\n * baseUrl: \"http://localhost:9800\",\n * service: \"my-app\",\n * instanceId: \"instance-1\",\n * }),\n * });\n *\n * log.info(\"Application started\");\n * log.withMetadata({ userId: 123 }).error(\"User not found\");\n * ```\n */\nexport class LogLayerCentralTransport extends HttpTransport {\n constructor(config: LogLayerCentralTransportConfig) {\n const { baseUrl, service, instanceId, tags, ...httpOptions } = config;\n\n super({\n ...httpOptions,\n url: `${baseUrl ?? DEFAULT_BASE_URL}/api/logs`,\n // Central's POST /api/logs accepts both a single object and a JSON array.\n batchMode: \"array\",\n payloadTemplate: ({ logLevel, message, data, hasData, error, groups }) => {\n return JSON.stringify({\n service,\n message,\n level: logLevel in LogLevelPriority ? logLevel : LogLevel.info,\n timestamp: new Date().toISOString(),\n instanceId,\n metadata: hasData && data ? extractMetadata(data) : undefined,\n context: hasData && data ? extractContext(data) : undefined,\n error: error ? { name: error.name, message: error.message, stack: error.stack } : undefined,\n groups: groups && groups.length > 0 ? groups : undefined,\n tags: tags && tags.length > 0 ? tags : undefined,\n });\n },\n });\n }\n}\n"],"mappings":";;;;;;;;AASA,MAAa,eAAe;;AAG5B,MAAa,mBAAmB,oBAAoB;;AAmCpD,SAAS,gBAAgB,MAAoE;CAC3F,MAAM,EAAE,SAAS,KAAK,OAAO,GAAG,aAAa;CAC7C,OAAO,OAAO,KAAK,QAAQ,EAAE,SAAS,IAAI,WAAW,KAAA;AACvD;;AAGA,SAAS,eAAe,MAAoE;CAC1F,MAAM,UAAU,KAAK;CACrB,IAAI,WAAW,OAAO,YAAY,YAAY,CAAC,MAAM,QAAQ,OAAO,GAClE,OAAO;AAGX;;;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAa,2BAAb,cAA8C,cAAc;CAC1D,YAAY,QAAwC;EAClD,MAAM,EAAE,SAAS,SAAS,YAAY,MAAM,GAAG,gBAAgB;EAE/D,MAAM;GACJ,GAAG;GACH,KAAK,GAAG,WAAW,iBAAiB;GAEpC,WAAW;GACX,kBAAkB,EAAE,UAAU,SAAS,MAAM,SAAS,OAAO,aAAa;IACxE,OAAO,KAAK,UAAU;KACpB;KACA;KACA,OAAO,YAAY,mBAAmB,WAAW,SAAS;KAC1D,4BAAW,IAAI,KAAK,GAAE,YAAY;KAClC;KACA,UAAU,WAAW,OAAO,gBAAgB,IAAI,IAAI,KAAA;KACpD,SAAS,WAAW,OAAO,eAAe,IAAI,IAAI,KAAA;KAClD,OAAO,QAAQ;MAAE,MAAM,MAAM;MAAM,SAAS,MAAM;MAAS,OAAO,MAAM;KAAM,IAAI,KAAA;KAClF,QAAQ,UAAU,OAAO,SAAS,IAAI,SAAS,KAAA;KAC/C,MAAM,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAA;IACzC,CAAC;GACH;EACF,CAAC;CACH;AACF"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loglayer/transport-central",
|
|
3
3
|
"description": "LogLayer Central transport for the LogLayer logging library.",
|
|
4
|
-
"version": "0.0
|
|
4
|
+
"version": "0.2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
7
7
|
"module": "./dist/index.mjs",
|
|
@@ -33,16 +33,16 @@
|
|
|
33
33
|
"transport"
|
|
34
34
|
],
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@loglayer/transport": "3.0
|
|
37
|
-
"@loglayer/transport
|
|
36
|
+
"@loglayer/transport-http": "2.3.0",
|
|
37
|
+
"@loglayer/transport": "3.2.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@types/node": "25.
|
|
41
|
-
"tsdown": "0.
|
|
42
|
-
"typescript": "
|
|
43
|
-
"vitest": "4.
|
|
40
|
+
"@types/node": "25.9.1",
|
|
41
|
+
"tsdown": "0.22.1",
|
|
42
|
+
"typescript": "6.0.3",
|
|
43
|
+
"vitest": "4.1.7",
|
|
44
44
|
"@internal/tsconfig": "2.1.0",
|
|
45
|
-
"loglayer": "9.
|
|
45
|
+
"loglayer": "9.3.0"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
48
|
"loglayer": ">=9.1.0"
|