logixia 2.0.4 → 2.0.6
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/README.md +172 -2614
- package/dist/{async-context-B05ArHgM.mjs → async-context-2mbUKhcl.mjs} +4 -6
- package/dist/async-context-2mbUKhcl.mjs.map +1 -0
- package/dist/{async-context-DTQgi8f7.js → async-context-DUFMDYAr.js} +4 -6
- package/dist/async-context-DUFMDYAr.js.map +1 -0
- package/dist/{azure-monitor.transport-CwbOLZHB.js → azure-monitor.transport-Bu4S2I2q.js} +5 -5
- package/dist/azure-monitor.transport-Bu4S2I2q.js.map +1 -0
- package/dist/{azure-monitor.transport-DV03Z5P4.d.ts → azure-monitor.transport-Bvf7Xegt.d.ts} +2 -2
- package/dist/{azure-monitor.transport-DV03Z5P4.d.ts.map → azure-monitor.transport-Bvf7Xegt.d.ts.map} +1 -1
- package/dist/{azure-monitor.transport-BPbgjATu.mjs → azure-monitor.transport-C1RWAumT.mjs} +5 -5
- package/dist/azure-monitor.transport-C1RWAumT.mjs.map +1 -0
- package/dist/{azure-monitor.transport-C7kYyZUW.d.mts → azure-monitor.transport-CbSHOnNX.d.mts} +2 -2
- package/dist/{azure-monitor.transport-C7kYyZUW.d.mts.map → azure-monitor.transport-CbSHOnNX.d.mts.map} +1 -1
- package/dist/azure.d.mts +1 -1
- package/dist/azure.d.ts +1 -1
- package/dist/azure.js +1 -1
- package/dist/azure.mjs +1 -1
- package/dist/{batch-buffer-0fgLmIPn.mjs → batch-buffer-BvXLDPlV.mjs} +3 -3
- package/dist/{batch-buffer-0fgLmIPn.mjs.map → batch-buffer-BvXLDPlV.mjs.map} +1 -1
- package/dist/{batch-buffer-DT4gdXmf.js → batch-buffer-C7Am4Mw-.js} +3 -3
- package/dist/{batch-buffer-DT4gdXmf.js.map → batch-buffer-C7Am4Mw-.js.map} +1 -1
- package/dist/browser.d.mts +5 -5
- package/dist/browser.d.mts.map +1 -1
- package/dist/browser.d.ts +5 -5
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +47 -12
- package/dist/browser.js.map +1 -1
- package/dist/browser.mjs +47 -12
- package/dist/browser.mjs.map +1 -1
- package/dist/{builder-D70z6kjj.mjs → builder-DhNhvOkt.mjs} +106 -153
- package/dist/builder-DhNhvOkt.mjs.map +1 -0
- package/dist/{builder-M7NoaugM.js → builder-yFvJrz7o.js} +109 -179
- package/dist/builder-yFvJrz7o.js.map +1 -0
- package/dist/cli/index.js +157 -66
- package/dist/cloudwatch.d.mts +1 -1
- package/dist/cloudwatch.d.ts +1 -1
- package/dist/cloudwatch.js +1 -1
- package/dist/cloudwatch.mjs +1 -1
- package/dist/{cloudwatch.transport-Bf7L4I59.d.ts → cloudwatch.transport-CQyT6U91.d.ts} +2 -2
- package/dist/{cloudwatch.transport-Bf7L4I59.d.ts.map → cloudwatch.transport-CQyT6U91.d.ts.map} +1 -1
- package/dist/{cloudwatch.transport-B2wKQFF7.js → cloudwatch.transport-Ch1Uae-0.js} +6 -6
- package/dist/cloudwatch.transport-Ch1Uae-0.js.map +1 -0
- package/dist/{cloudwatch.transport-Rj4yTpRn.d.mts → cloudwatch.transport-CjVrI6S4.d.mts} +2 -2
- package/dist/{cloudwatch.transport-Rj4yTpRn.d.mts.map → cloudwatch.transport-CjVrI6S4.d.mts.map} +1 -1
- package/dist/{cloudwatch.transport-BTvYfLs9.mjs → cloudwatch.transport-DZqF2xZO.mjs} +6 -6
- package/dist/cloudwatch.transport-DZqF2xZO.mjs.map +1 -0
- package/dist/correlation.d.mts +4 -55
- package/dist/correlation.d.mts.map +1 -1
- package/dist/correlation.d.ts +4 -55
- package/dist/correlation.d.ts.map +1 -1
- package/dist/correlation.js +13 -13
- package/dist/correlation.js.map +1 -1
- package/dist/correlation.mjs +13 -13
- package/dist/correlation.mjs.map +1 -1
- package/dist/{entry-fields-RLd1jCoR.js → entry-fields-BSLkzw18.js} +8 -3
- package/dist/entry-fields-BSLkzw18.js.map +1 -0
- package/dist/{entry-fields-CGuvT2R0.mjs → entry-fields-J1OBi24o.mjs} +8 -3
- package/dist/entry-fields-J1OBi24o.mjs.map +1 -0
- package/dist/gcp.d.mts +1 -1
- package/dist/gcp.d.ts +1 -1
- package/dist/gcp.js +1 -1
- package/dist/gcp.mjs +1 -1
- package/dist/{gcp.transport-CFQfdAOK.d.ts → gcp.transport-BCIvdFV-.d.ts} +4 -4
- package/dist/{gcp.transport-CFQfdAOK.d.ts.map → gcp.transport-BCIvdFV-.d.ts.map} +1 -1
- package/dist/{gcp.transport-C5D72b1g.d.mts → gcp.transport-D9SdLPwP.d.mts} +4 -4
- package/dist/{gcp.transport-C5D72b1g.d.mts.map → gcp.transport-D9SdLPwP.d.mts.map} +1 -1
- package/dist/{gcp.transport-CGKopAhQ.mjs → gcp.transport-DVCmnA3b.mjs} +20 -16
- package/dist/gcp.transport-DVCmnA3b.mjs.map +1 -0
- package/dist/{gcp.transport-KZe9hCAR.js → gcp.transport-Dy2Lf8FI.js} +20 -16
- package/dist/gcp.transport-Dy2Lf8FI.js.map +1 -0
- package/dist/http-shapes-BnBkJcid.d.mts +32 -0
- package/dist/http-shapes-BnBkJcid.d.mts.map +1 -0
- package/dist/http-shapes-BnBkJcid.d.ts +32 -0
- package/dist/http-shapes-BnBkJcid.d.ts.map +1 -0
- package/dist/{index-xqaJtAZn.d.mts → index-BSTtFcQ6.d.mts} +142 -8
- package/dist/index-BSTtFcQ6.d.mts.map +1 -0
- package/dist/{index-DwozbmB4.d.ts → index-CFDGkI8n.d.ts} +142 -8
- package/dist/index-CFDGkI8n.d.ts.map +1 -0
- package/dist/index.d.mts +21 -65
- package/dist/index.d.mts.map +1 -1
- package/dist/index.d.ts +21 -65
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -26
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +21 -21
- package/dist/index.mjs.map +1 -1
- package/dist/{internal-log-uCSd1PMc.mjs → internal-log-Bg4V1cPg.mjs} +30 -2
- package/dist/internal-log-Bg4V1cPg.mjs.map +1 -0
- package/dist/{internal-log-b0Vp4qrB.js → internal-log-By4Govmu.js} +41 -1
- package/dist/internal-log-By4Govmu.js.map +1 -0
- package/dist/{logitron-logger-D2B75Oc7.d.ts → logitron-logger-D22Yb61K.d.mts} +13 -100
- package/dist/logitron-logger-D22Yb61K.d.mts.map +1 -0
- package/dist/{logitron-logger-oEd6wNhf.d.mts → logitron-logger-D_MYYrQt.d.ts} +13 -100
- package/dist/logitron-logger-D_MYYrQt.d.ts.map +1 -0
- package/dist/middleware.d.mts +4 -17
- package/dist/middleware.d.mts.map +1 -1
- package/dist/middleware.d.ts +4 -17
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +9 -39
- package/dist/middleware.js.map +1 -1
- package/dist/middleware.mjs +7 -37
- package/dist/middleware.mjs.map +1 -1
- package/dist/nest.d.mts +14 -7
- package/dist/nest.d.mts.map +1 -1
- package/dist/nest.d.ts +14 -7
- package/dist/nest.d.ts.map +1 -1
- package/dist/nest.js +15 -10
- package/dist/nest.js.map +1 -1
- package/dist/nest.mjs +15 -10
- package/dist/nest.mjs.map +1 -1
- package/dist/{transport.manager-eZ_EeC00.mjs → otel-Dt5riXuE.mjs} +173 -24
- package/dist/otel-Dt5riXuE.mjs.map +1 -0
- package/dist/{transport.manager-DkcEOlqV.js → otel-DyeH6DVR.js} +214 -23
- package/dist/otel-DyeH6DVR.js.map +1 -0
- package/dist/own-property-BWkibepN.js +40 -0
- package/dist/own-property-BWkibepN.js.map +1 -0
- package/dist/own-property-CjFw9qwZ.mjs +29 -0
- package/dist/own-property-CjFw9qwZ.mjs.map +1 -0
- package/dist/{request-trace-C_fvIDv4.mjs → request-trace-BgNykH9M.mjs} +1 -5
- package/dist/{request-trace-C_fvIDv4.mjs.map → request-trace-BgNykH9M.mjs.map} +1 -1
- package/dist/{request-trace-wTJdKp6-.js → request-trace-ByujsUZk.js} +1 -5
- package/dist/{request-trace-wTJdKp6-.js.map → request-trace-ByujsUZk.js.map} +1 -1
- package/dist/{safe-stringify-BMRl3EX3.mjs → safe-stringify-B5p5ktFe.mjs} +37 -12
- package/dist/safe-stringify-B5p5ktFe.mjs.map +1 -0
- package/dist/{safe-stringify-DLz1Kz3o.js → safe-stringify-J3sh-7YM.js} +37 -12
- package/dist/safe-stringify-J3sh-7YM.js.map +1 -0
- package/dist/{search-DUfWuzFP.js → search-CRjhHxe9.js} +269 -25
- package/dist/search-CRjhHxe9.js.map +1 -0
- package/dist/{search-CazwyX5Z.d.ts → search-DA3ft3X5.d.mts} +5 -2
- package/dist/search-DA3ft3X5.d.mts.map +1 -0
- package/dist/{search-CWMVYC-R.mjs → search-DAXKE-P9.mjs} +269 -25
- package/dist/search-DAXKE-P9.mjs.map +1 -0
- package/dist/{search-BH33XhuU.d.mts → search-DEl3Pe47.d.ts} +5 -2
- package/dist/search-DEl3Pe47.d.ts.map +1 -0
- package/dist/search.d.mts +1 -1
- package/dist/search.d.ts +1 -1
- package/dist/search.js +1 -1
- package/dist/search.mjs +1 -1
- package/dist/{secret-config-CBZBs0p1.js → secret-config-CmK2wVkr.js} +6 -5
- package/dist/secret-config-CmK2wVkr.js.map +1 -0
- package/dist/{secret-config-BegMLkYl.mjs → secret-config-Dhb6pqTU.mjs} +6 -5
- package/dist/secret-config-Dhb6pqTU.mjs.map +1 -0
- package/dist/{slack.transport-DxHOXlLu.d.mts → slack.transport-BDyENuR0.d.mts} +2 -2
- package/dist/{slack.transport-DxHOXlLu.d.mts.map → slack.transport-BDyENuR0.d.mts.map} +1 -1
- package/dist/{slack.transport-Ce96JBDk.mjs → slack.transport-BTEwsREY.mjs} +66 -15
- package/dist/slack.transport-BTEwsREY.mjs.map +1 -0
- package/dist/{slack.transport-DrirgDNy.d.ts → slack.transport-C6E0l4kw.d.ts} +2 -2
- package/dist/{slack.transport-DrirgDNy.d.ts.map → slack.transport-C6E0l4kw.d.ts.map} +1 -1
- package/dist/{slack.transport-Dlx3xvb7.js → slack.transport-UbYvOdKx.js} +67 -16
- package/dist/slack.transport-UbYvOdKx.js.map +1 -0
- package/dist/testing.d.mts +11 -4
- package/dist/testing.d.mts.map +1 -1
- package/dist/testing.d.ts +11 -4
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +38 -3
- package/dist/testing.js.map +1 -1
- package/dist/testing.mjs +38 -3
- package/dist/testing.mjs.map +1 -1
- package/dist/{transport.types-BJVL1QQl.d.ts → transport.types-CzJq4IrF.d.mts} +14 -3
- package/dist/transport.types-CzJq4IrF.d.mts.map +1 -0
- package/dist/{transport.types-BJVL1QQl.d.mts → transport.types-CzJq4IrF.d.ts} +14 -3
- package/dist/transport.types-CzJq4IrF.d.ts.map +1 -0
- package/dist/transports.d.mts +25 -13
- package/dist/transports.d.mts.map +1 -1
- package/dist/transports.d.ts +25 -13
- package/dist/transports.d.ts.map +1 -1
- package/dist/transports.js +15 -15
- package/dist/transports.mjs +6 -6
- package/dist/worker-entry.js +105 -24
- package/dist/worker.d.mts +1 -1
- package/dist/worker.d.ts +1 -1
- package/dist/worker.js +1 -1
- package/dist/worker.mjs +1 -1
- package/dist/{worker.transport-BuPwBi3d.d.ts → worker.transport-B9mCQSM1.d.ts} +7 -2
- package/dist/worker.transport-B9mCQSM1.d.ts.map +1 -0
- package/dist/{worker.transport-hJay1wxA.d.mts → worker.transport-Bl8lFRck.d.mts} +7 -2
- package/dist/worker.transport-Bl8lFRck.d.mts.map +1 -0
- package/dist/{worker.transport-DLVA4y2e.mjs → worker.transport-BmmOKb1-.mjs} +13 -10
- package/dist/worker.transport-BmmOKb1-.mjs.map +1 -0
- package/dist/{worker.transport-C6GNl_r2.js → worker.transport-DxxbqQCG.js} +13 -10
- package/dist/worker.transport-DxxbqQCG.js.map +1 -0
- package/package.json +33 -65
- package/dist/async-context-B05ArHgM.mjs.map +0 -1
- package/dist/async-context-DTQgi8f7.js.map +0 -1
- package/dist/azure-monitor.transport-BPbgjATu.mjs.map +0 -1
- package/dist/azure-monitor.transport-CwbOLZHB.js.map +0 -1
- package/dist/builder-D70z6kjj.mjs.map +0 -1
- package/dist/builder-M7NoaugM.js.map +0 -1
- package/dist/cloudwatch.transport-B2wKQFF7.js.map +0 -1
- package/dist/cloudwatch.transport-BTvYfLs9.mjs.map +0 -1
- package/dist/entry-fields-CGuvT2R0.mjs.map +0 -1
- package/dist/entry-fields-RLd1jCoR.js.map +0 -1
- package/dist/gcp.transport-CGKopAhQ.mjs.map +0 -1
- package/dist/gcp.transport-KZe9hCAR.js.map +0 -1
- package/dist/index-DwozbmB4.d.ts.map +0 -1
- package/dist/index-xqaJtAZn.d.mts.map +0 -1
- package/dist/internal-log-b0Vp4qrB.js.map +0 -1
- package/dist/internal-log-uCSd1PMc.mjs.map +0 -1
- package/dist/logitron-logger-D2B75Oc7.d.ts.map +0 -1
- package/dist/logitron-logger-oEd6wNhf.d.mts.map +0 -1
- package/dist/safe-stringify-BMRl3EX3.mjs.map +0 -1
- package/dist/safe-stringify-DLz1Kz3o.js.map +0 -1
- package/dist/search-BH33XhuU.d.mts.map +0 -1
- package/dist/search-CWMVYC-R.mjs.map +0 -1
- package/dist/search-CazwyX5Z.d.ts.map +0 -1
- package/dist/search-DUfWuzFP.js.map +0 -1
- package/dist/secret-config-BegMLkYl.mjs.map +0 -1
- package/dist/secret-config-CBZBs0p1.js.map +0 -1
- package/dist/slack.transport-Ce96JBDk.mjs.map +0 -1
- package/dist/slack.transport-Dlx3xvb7.js.map +0 -1
- package/dist/transport.manager-DkcEOlqV.js.map +0 -1
- package/dist/transport.manager-eZ_EeC00.mjs.map +0 -1
- package/dist/transport.types-BJVL1QQl.d.mts.map +0 -1
- package/dist/transport.types-BJVL1QQl.d.ts.map +0 -1
- package/dist/worker.transport-BuPwBi3d.d.ts.map +0 -1
- package/dist/worker.transport-C6GNl_r2.js.map +0 -1
- package/dist/worker.transport-DLVA4y2e.mjs.map +0 -1
- package/dist/worker.transport-hJay1wxA.d.mts.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as __require } from "./rolldown-runtime-D3PmRqjj.mjs";
|
|
2
|
-
import { n as internalLog, r as internalWarn, t as internalError } from "./internal-log-
|
|
3
|
-
import { n as protectSecrets, o as urlSecrets, r as scrubError, t as collectSecrets } from "./secret-config-
|
|
2
|
+
import { n as internalLog, r as internalWarn, t as internalError } from "./internal-log-Bg4V1cPg.mjs";
|
|
3
|
+
import { n as protectSecrets, o as urlSecrets, r as scrubError, t as collectSecrets } from "./secret-config-Dhb6pqTU.mjs";
|
|
4
4
|
import { t as safeToString } from "./coerce.utils-B_rEudCn.mjs";
|
|
5
|
-
import { i as stringifyForLog } from "./safe-stringify-
|
|
6
|
-
import { t as mergeCoreFields } from "./entry-fields-
|
|
5
|
+
import { i as stringifyForLog } from "./safe-stringify-B5p5ktFe.mjs";
|
|
6
|
+
import { t as mergeCoreFields } from "./entry-fields-J1OBi24o.mjs";
|
|
7
7
|
import { EventEmitter } from "node:events";
|
|
8
8
|
import { promisify } from "node:util";
|
|
9
9
|
import { createGzip, gzip } from "node:zlib";
|
|
@@ -42,6 +42,7 @@ var ConsoleTransport = class ConsoleTransport {
|
|
|
42
42
|
constructor(config = {}) {
|
|
43
43
|
this.config = config;
|
|
44
44
|
this.name = "console";
|
|
45
|
+
this.level = config.level;
|
|
45
46
|
if (config.filter) this.filter = config.filter;
|
|
46
47
|
}
|
|
47
48
|
write(entry) {
|
|
@@ -279,6 +280,7 @@ var DatabaseTransport = class {
|
|
|
279
280
|
this.batchSize = config.batchSize || 100;
|
|
280
281
|
this.flushInterval = config.flushInterval || 5e3;
|
|
281
282
|
this.cap = new BufferCap("DatabaseTransport", config.maxBufferSize, this.batchSize);
|
|
283
|
+
this.level = config.level;
|
|
282
284
|
if (config.filter) this.filter = config.filter;
|
|
283
285
|
if (config.table) validateSqlIdentifier(config.table, "table");
|
|
284
286
|
this.setupFlushTimer();
|
|
@@ -985,8 +987,12 @@ function tag(key, value) {
|
|
|
985
987
|
*
|
|
986
988
|
* The API key is transmitted via the `DD-API-KEY` request header — never in the URL.
|
|
987
989
|
*
|
|
990
|
+
* Metric names keep the legacy `logitron.logs.<level>` prefix (kept for
|
|
991
|
+
* dashboards and monitors that already query it; renaming would be a breaking
|
|
992
|
+
* change). Query `logitron.logs.error`, not `logixia.logs.error`.
|
|
993
|
+
*
|
|
988
994
|
* @example
|
|
989
|
-
*
|
|
995
|
+
* analytics: { datadog: { apiKey: process.env.DD_API_KEY, service: 'api', env: 'production' } }
|
|
990
996
|
*/
|
|
991
997
|
var DataDogTransport = class extends AnalyticsTransport {
|
|
992
998
|
constructor(config) {
|
|
@@ -1675,7 +1681,7 @@ var FileTransport = class {
|
|
|
1675
1681
|
* Sends log entries as Google Analytics 4 Measurement Protocol events.
|
|
1676
1682
|
*
|
|
1677
1683
|
* @example
|
|
1678
|
-
*
|
|
1684
|
+
* analytics: {
|
|
1679
1685
|
* googleAnalytics: { measurementId: 'G-XXXXXXX', apiSecret: process.env.GA_API_SECRET }
|
|
1680
1686
|
* }
|
|
1681
1687
|
*/
|
|
@@ -1897,12 +1903,42 @@ var GoogleAnalyticsTransport = class extends AnalyticsTransport {
|
|
|
1897
1903
|
await this.sendEvent(event);
|
|
1898
1904
|
}
|
|
1899
1905
|
};
|
|
1906
|
+
// src/transports/level-filter.ts
|
|
1907
|
+
/** Severity values of the built-in levels; lower is more severe (same scale as the logger). */
|
|
1908
|
+
const BUILTIN_LEVEL_VALUES = {
|
|
1909
|
+
error: 0,
|
|
1910
|
+
warn: 1,
|
|
1911
|
+
info: 2,
|
|
1912
|
+
debug: 3,
|
|
1913
|
+
trace: 4,
|
|
1914
|
+
verbose: 5
|
|
1915
|
+
};
|
|
1916
|
+
/** Built-in levels plus the logger's custom `levelOptions.levels`. */
|
|
1917
|
+
function buildLevelValues(custom) {
|
|
1918
|
+
return new Map([...Object.entries(BUILTIN_LEVEL_VALUES), ...Object.entries(custom ?? {})]);
|
|
1919
|
+
}
|
|
1920
|
+
function lookup(values, level) {
|
|
1921
|
+
return values.get(level) ?? values.get(level.toLowerCase());
|
|
1922
|
+
}
|
|
1923
|
+
/**
|
|
1924
|
+
* Whether an entry at `level` passes a transport's minimum `threshold`, using the
|
|
1925
|
+
* logger's scale (an entry passes when its value is <= the threshold's value).
|
|
1926
|
+
* The logger has already rejected unknown entry levels, so an unknown entry level
|
|
1927
|
+
* or threshold here does not filter.
|
|
1928
|
+
*/
|
|
1929
|
+
function meetsTransportLevel(threshold, level, values) {
|
|
1930
|
+
if (!threshold) return true;
|
|
1931
|
+
const min = lookup(values, threshold);
|
|
1932
|
+
const actual = lookup(values, level);
|
|
1933
|
+
if (min === void 0 || actual === void 0) return true;
|
|
1934
|
+
return actual <= min;
|
|
1935
|
+
}
|
|
1900
1936
|
// src/transports/mixpanel.transport.ts
|
|
1901
1937
|
/**
|
|
1902
1938
|
* Sends log entries as Mixpanel events via the Track and Engage HTTP APIs.
|
|
1903
1939
|
*
|
|
1904
1940
|
* @example
|
|
1905
|
-
*
|
|
1941
|
+
* analytics: { mixpanel: { token: process.env.MIXPANEL_TOKEN } }
|
|
1906
1942
|
*/
|
|
1907
1943
|
var MixpanelTransport = class extends AnalyticsTransport {
|
|
1908
1944
|
constructor(config) {
|
|
@@ -2049,7 +2085,7 @@ const LOGIXIA_VERSION = "1.12.0";
|
|
|
2049
2085
|
* Sends log entries as Segment track/identify events via the HTTP Tracking API.
|
|
2050
2086
|
*
|
|
2051
2087
|
* @example
|
|
2052
|
-
*
|
|
2088
|
+
* analytics: { segment: { writeKey: process.env.SEGMENT_WRITE_KEY } }
|
|
2053
2089
|
*/
|
|
2054
2090
|
var SegmentTransport = class extends AnalyticsTransport {
|
|
2055
2091
|
constructor(config) {
|
|
@@ -2316,13 +2352,19 @@ function _sleep(ms) {
|
|
|
2316
2352
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
2317
2353
|
}
|
|
2318
2354
|
var TransportManager = class extends EventEmitter {
|
|
2319
|
-
|
|
2355
|
+
/**
|
|
2356
|
+
* @param config Transport configuration.
|
|
2357
|
+
* @param levels The logger's `levelOptions.levels`; used with the built-in levels
|
|
2358
|
+
* to compare entries against each transport's `level`.
|
|
2359
|
+
*/
|
|
2360
|
+
constructor(config = {}, levels) {
|
|
2320
2361
|
super();
|
|
2321
2362
|
this.transports = /* @__PURE__ */ new Map();
|
|
2322
2363
|
this.metrics = /* @__PURE__ */ new Map();
|
|
2323
2364
|
this.isShuttingDown = false;
|
|
2324
2365
|
this.transportLevelPreferences = /* @__PURE__ */ new Map();
|
|
2325
2366
|
this.warnedPromptDeprecated = false;
|
|
2367
|
+
this.levelValues = buildLevelValues(levels);
|
|
2326
2368
|
this.setupTransports(config);
|
|
2327
2369
|
}
|
|
2328
2370
|
setupTransports(config) {
|
|
@@ -2524,19 +2566,7 @@ var TransportManager = class extends EventEmitter {
|
|
|
2524
2566
|
}
|
|
2525
2567
|
shouldTransportHandle(transport, level, transportId) {
|
|
2526
2568
|
if (transportId && this.transportLevelPreferences.has(transportId)) return this.transportLevelPreferences.get(transportId).includes(level.toLowerCase());
|
|
2527
|
-
|
|
2528
|
-
const levels = [
|
|
2529
|
-
"error",
|
|
2530
|
-
"warn",
|
|
2531
|
-
"info",
|
|
2532
|
-
"debug",
|
|
2533
|
-
"trace",
|
|
2534
|
-
"verbose"
|
|
2535
|
-
];
|
|
2536
|
-
const transportLevelIndex = levels.indexOf(transport.level.toLowerCase());
|
|
2537
|
-
const entryLevelIndex = levels.indexOf(level.toLowerCase());
|
|
2538
|
-
if (transportLevelIndex === -1 || entryLevelIndex === -1) return true;
|
|
2539
|
-
return entryLevelIndex <= transportLevelIndex;
|
|
2569
|
+
return meetsTransportLevel(transport.level, level, this.levelValues);
|
|
2540
2570
|
}
|
|
2541
2571
|
getTransportType(transport) {
|
|
2542
2572
|
if (transport.name === "console") return "console";
|
|
@@ -2659,6 +2689,125 @@ var TransportManager = class extends EventEmitter {
|
|
|
2659
2689
|
internalLog("Transport level preferences cleared");
|
|
2660
2690
|
}
|
|
2661
2691
|
};
|
|
2662
|
-
|
|
2692
|
+
// src/utils/otel.ts
|
|
2693
|
+
/** W3C trace-flags bit 0: the span is sampled (`TraceFlags.SAMPLED` in the OTel API). */
|
|
2694
|
+
const TRACE_FLAG_SAMPLED = 1;
|
|
2695
|
+
let _otelApi;
|
|
2696
|
+
function tryLoadOtelApi() {
|
|
2697
|
+
if (_otelApi !== void 0) return _otelApi;
|
|
2698
|
+
try {
|
|
2699
|
+
_otelApi = __require("@opentelemetry/api");
|
|
2700
|
+
return _otelApi;
|
|
2701
|
+
} catch {
|
|
2702
|
+
_otelApi = null;
|
|
2703
|
+
return null;
|
|
2704
|
+
}
|
|
2705
|
+
}
|
|
2706
|
+
/**
|
|
2707
|
+
* Read the currently active OTel span context (if any) and return its fields
|
|
2708
|
+
* in a plain object suitable for spreading into a log entry.
|
|
2709
|
+
*
|
|
2710
|
+
* Returns `undefined` when:
|
|
2711
|
+
* - `@opentelemetry/api` is not installed
|
|
2712
|
+
* - No active span exists (root context)
|
|
2713
|
+
* - The span context is invalid (all-zeros)
|
|
2714
|
+
*/
|
|
2715
|
+
function getActiveOtelContext(opts = {}) {
|
|
2716
|
+
const api = tryLoadOtelApi();
|
|
2717
|
+
if (!api) return void 0;
|
|
2718
|
+
try {
|
|
2719
|
+
const ctx = api.context.active();
|
|
2720
|
+
const sc = api.trace.getSpanContext(ctx);
|
|
2721
|
+
if (!sc || !api.trace.isSpanContextValid(sc)) return void 0;
|
|
2722
|
+
const isSampled = (sc.traceFlags & TRACE_FLAG_SAMPLED) === TRACE_FLAG_SAMPLED;
|
|
2723
|
+
if (opts.sampledOnly && !isSampled) return void 0;
|
|
2724
|
+
return {
|
|
2725
|
+
traceId: sc.traceId,
|
|
2726
|
+
spanId: sc.spanId,
|
|
2727
|
+
traceFlags: sc.traceFlags,
|
|
2728
|
+
isSampled
|
|
2729
|
+
};
|
|
2730
|
+
} catch {
|
|
2731
|
+
return;
|
|
2732
|
+
}
|
|
2733
|
+
}
|
|
2734
|
+
/**
|
|
2735
|
+
* Returns a metadata object with OTel context fields ready to merge into a log call,
|
|
2736
|
+
* using the configured field names.
|
|
2737
|
+
*
|
|
2738
|
+
* Returns `{}` when no active span exists (safe to spread unconditionally).
|
|
2739
|
+
*
|
|
2740
|
+
* @example
|
|
2741
|
+
* ```ts
|
|
2742
|
+
* await logger.info('Payment processed', {
|
|
2743
|
+
* ...getOtelMetaFields(),
|
|
2744
|
+
* orderId: 'ord_123',
|
|
2745
|
+
* });
|
|
2746
|
+
* ```
|
|
2747
|
+
*/
|
|
2748
|
+
function getOtelMetaFields(opts = {}) {
|
|
2749
|
+
const { traceIdField = "traceId", spanIdField = "spanId", traceFlagsField = "traceFlags" } = opts;
|
|
2750
|
+
const ctx = getActiveOtelContext(opts);
|
|
2751
|
+
if (!ctx) return {};
|
|
2752
|
+
return {
|
|
2753
|
+
[traceIdField]: ctx.traceId,
|
|
2754
|
+
[spanIdField]: ctx.spanId,
|
|
2755
|
+
[traceFlagsField]: ctx.traceFlags
|
|
2756
|
+
};
|
|
2757
|
+
}
|
|
2758
|
+
let _bridgeOptions = null;
|
|
2759
|
+
/**
|
|
2760
|
+
* Initialise the global OTel bridge.
|
|
2761
|
+
*
|
|
2762
|
+
* Once called, logixia's internal log pipeline checks for an active OTel span
|
|
2763
|
+
* on **every** log call and automatically merges the span context into the
|
|
2764
|
+
* entry's metadata — no per-call wiring needed.
|
|
2765
|
+
*
|
|
2766
|
+
* Call once at app startup, **after** the OTel SDK has been initialised:
|
|
2767
|
+
* ```ts
|
|
2768
|
+
* import { initOtelBridge } from 'logixia';
|
|
2769
|
+
* initOtelBridge();
|
|
2770
|
+
* ```
|
|
2771
|
+
*/
|
|
2772
|
+
function initOtelBridge(opts = {}) {
|
|
2773
|
+
_bridgeOptions = opts;
|
|
2774
|
+
}
|
|
2775
|
+
/**
|
|
2776
|
+
* @internal
|
|
2777
|
+
* True when initOtelBridge() has been called. Lets the logger hot path skip the
|
|
2778
|
+
* `_getOtelPayloadIfEnabled()` call (and its `{}` allocation + Object.keys) on
|
|
2779
|
+
* every log when the bridge is off — the overwhelmingly common case.
|
|
2780
|
+
*/
|
|
2781
|
+
function _isOtelBridgeEnabled() {
|
|
2782
|
+
return _bridgeOptions !== null;
|
|
2783
|
+
}
|
|
2784
|
+
/**
|
|
2785
|
+
* @internal
|
|
2786
|
+
* Used by the core logger to inject OTel context when the bridge is active.
|
|
2787
|
+
* Returns `{}` when the bridge is not initialised or no active span exists.
|
|
2788
|
+
*/
|
|
2789
|
+
function _getOtelPayloadIfEnabled() {
|
|
2790
|
+
if (!_bridgeOptions) return {};
|
|
2791
|
+
return getOtelMetaFields(_bridgeOptions);
|
|
2792
|
+
}
|
|
2793
|
+
/**
|
|
2794
|
+
* @internal
|
|
2795
|
+
* Payload field names the active bridge writes the trace and span ids to, or
|
|
2796
|
+
* `undefined` when the bridge is not initialised.
|
|
2797
|
+
*/
|
|
2798
|
+
function _getOtelBridgeFieldNames() {
|
|
2799
|
+
if (!_bridgeOptions) return void 0;
|
|
2800
|
+
return {
|
|
2801
|
+
traceIdField: _bridgeOptions.traceIdField ?? "traceId",
|
|
2802
|
+
spanIdField: _bridgeOptions.spanIdField ?? "spanId"
|
|
2803
|
+
};
|
|
2804
|
+
}
|
|
2805
|
+
/**
|
|
2806
|
+
* Disable the OTel bridge (useful for tests).
|
|
2807
|
+
*/
|
|
2808
|
+
function disableOtelBridge() {
|
|
2809
|
+
_bridgeOptions = null;
|
|
2810
|
+
}
|
|
2811
|
+
export { ConsoleTransport as _, getActiveOtelContext as a, TransportManager as c, GoogleAnalyticsTransport as d, FileTransport as f, BufferCap as g, DatabaseTransport as h, disableOtelBridge as i, SegmentTransport as l, AnalyticsTransport as m, _getOtelPayloadIfEnabled as n, getOtelMetaFields as o, DataDogTransport as p, _isOtelBridgeEnabled as r, initOtelBridge as s, _getOtelBridgeFieldNames as t, MixpanelTransport as u, stripControlChars as v };
|
|
2663
2812
|
|
|
2664
|
-
//# sourceMappingURL=
|
|
2813
|
+
//# sourceMappingURL=otel-Dt5riXuE.mjs.map
|