@oxygen-agent/cli 1.45.4
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 +25 -0
- package/dist/browser-login.d.ts +8 -0
- package/dist/browser-login.d.ts.map +1 -0
- package/dist/browser-login.js +181 -0
- package/dist/browser-login.js.map +1 -0
- package/dist/credentials.d.ts +28 -0
- package/dist/credentials.d.ts.map +1 -0
- package/dist/credentials.js +470 -0
- package/dist/credentials.js.map +1 -0
- package/dist/http-client.d.ts +12 -0
- package/dist/http-client.d.ts.map +1 -0
- package/dist/http-client.js +218 -0
- package/dist/http-client.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3523 -0
- package/dist/index.js.map +1 -0
- package/dist/local-custom-http-column.d.ts +9 -0
- package/dist/local-custom-http-column.d.ts.map +1 -0
- package/dist/local-custom-http-column.js +571 -0
- package/dist/local-custom-http-column.js.map +1 -0
- package/dist/session.d.ts +57 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +194 -0
- package/dist/session.js.map +1 -0
- package/node_modules/@oxygen/recipe-sdk/dist/index.d.ts +136 -0
- package/node_modules/@oxygen/recipe-sdk/dist/index.d.ts.map +1 -0
- package/node_modules/@oxygen/recipe-sdk/dist/index.js +43 -0
- package/node_modules/@oxygen/recipe-sdk/dist/index.js.map +1 -0
- package/node_modules/@oxygen/recipe-sdk/package.json +15 -0
- package/node_modules/@oxygen/shared/dist/billing.d.ts +124 -0
- package/node_modules/@oxygen/shared/dist/billing.d.ts.map +1 -0
- package/node_modules/@oxygen/shared/dist/billing.js +296 -0
- package/node_modules/@oxygen/shared/dist/billing.js.map +1 -0
- package/node_modules/@oxygen/shared/dist/column-types.d.ts +55 -0
- package/node_modules/@oxygen/shared/dist/column-types.d.ts.map +1 -0
- package/node_modules/@oxygen/shared/dist/column-types.js +161 -0
- package/node_modules/@oxygen/shared/dist/column-types.js.map +1 -0
- package/node_modules/@oxygen/shared/dist/credit-guidance.d.ts +15 -0
- package/node_modules/@oxygen/shared/dist/credit-guidance.d.ts.map +1 -0
- package/node_modules/@oxygen/shared/dist/credit-guidance.js +60 -0
- package/node_modules/@oxygen/shared/dist/credit-guidance.js.map +1 -0
- package/node_modules/@oxygen/shared/dist/file-import.d.ts +22 -0
- package/node_modules/@oxygen/shared/dist/file-import.d.ts.map +1 -0
- package/node_modules/@oxygen/shared/dist/file-import.js +232 -0
- package/node_modules/@oxygen/shared/dist/file-import.js.map +1 -0
- package/node_modules/@oxygen/shared/dist/index.d.ts +45 -0
- package/node_modules/@oxygen/shared/dist/index.d.ts.map +1 -0
- package/node_modules/@oxygen/shared/dist/index.js +49 -0
- package/node_modules/@oxygen/shared/dist/index.js.map +1 -0
- package/node_modules/@oxygen/shared/dist/log.d.ts +22 -0
- package/node_modules/@oxygen/shared/dist/log.d.ts.map +1 -0
- package/node_modules/@oxygen/shared/dist/log.js +58 -0
- package/node_modules/@oxygen/shared/dist/log.js.map +1 -0
- package/node_modules/@oxygen/shared/dist/redaction.d.ts +4 -0
- package/node_modules/@oxygen/shared/dist/redaction.d.ts.map +1 -0
- package/node_modules/@oxygen/shared/dist/redaction.js +106 -0
- package/node_modules/@oxygen/shared/dist/redaction.js.map +1 -0
- package/node_modules/@oxygen/shared/dist/telemetry.d.ts +9 -0
- package/node_modules/@oxygen/shared/dist/telemetry.d.ts.map +1 -0
- package/node_modules/@oxygen/shared/dist/telemetry.js +98 -0
- package/node_modules/@oxygen/shared/dist/telemetry.js.map +1 -0
- package/node_modules/@oxygen/shared/dist/version.d.ts +2 -0
- package/node_modules/@oxygen/shared/dist/version.d.ts.map +1 -0
- package/node_modules/@oxygen/shared/dist/version.js +2 -0
- package/node_modules/@oxygen/shared/dist/version.js.map +1 -0
- package/node_modules/@oxygen/shared/package.json +21 -0
- package/node_modules/@oxygen/workflows/dist/index.d.ts +680 -0
- package/node_modules/@oxygen/workflows/dist/index.d.ts.map +1 -0
- package/node_modules/@oxygen/workflows/dist/index.js +983 -0
- package/node_modules/@oxygen/workflows/dist/index.js.map +1 -0
- package/node_modules/@oxygen/workflows/package.json +15 -0
- package/package.json +44 -0
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import { extname } from "node:path";
|
|
2
|
+
import readXlsxFile from "read-excel-file/node";
|
|
3
|
+
import { inferImportColumnDataType, parseDateValueToIso, } from "./column-types.js";
|
|
4
|
+
import { OxygenError } from "./index.js";
|
|
5
|
+
const MAX_IDENTIFIER_LENGTH = 63;
|
|
6
|
+
export function inferRowsFileFormat(path) {
|
|
7
|
+
const extension = extname(path).toLowerCase();
|
|
8
|
+
if (extension === ".jsonl" || extension === ".ndjson")
|
|
9
|
+
return "jsonl";
|
|
10
|
+
if (extension === ".csv")
|
|
11
|
+
return "csv";
|
|
12
|
+
if (extension === ".xlsx" || extension === ".xlsm")
|
|
13
|
+
return "xlsx";
|
|
14
|
+
return "json";
|
|
15
|
+
}
|
|
16
|
+
export function normalizeRowsFormat(value, fallback) {
|
|
17
|
+
const normalized = value?.trim().toLowerCase() || fallback;
|
|
18
|
+
if (normalized === "json"
|
|
19
|
+
|| normalized === "jsonl"
|
|
20
|
+
|| normalized === "csv"
|
|
21
|
+
|| normalized === "xlsx") {
|
|
22
|
+
return normalized;
|
|
23
|
+
}
|
|
24
|
+
throw new OxygenError("invalid_format", "Format must be json, jsonl, csv, or xlsx.", {
|
|
25
|
+
details: { format: value },
|
|
26
|
+
exitCode: 1,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
export async function parseRowsFileBuffer(buffer, format, options = {}) {
|
|
30
|
+
if (format === "xlsx")
|
|
31
|
+
return await parseXlsxRows(buffer, options);
|
|
32
|
+
return parseRowsText(buffer.toString("utf8"), format);
|
|
33
|
+
}
|
|
34
|
+
export function parseRowsText(text, format) {
|
|
35
|
+
if (format === "json")
|
|
36
|
+
return normalizeRowObjects(parseJsonArray(text));
|
|
37
|
+
if (format === "jsonl") {
|
|
38
|
+
return normalizeRowObjects(text
|
|
39
|
+
.split(/\r?\n/)
|
|
40
|
+
.filter((line) => line.trim())
|
|
41
|
+
.map((line) => JSON.parse(line)));
|
|
42
|
+
}
|
|
43
|
+
return parseCsvRows(text);
|
|
44
|
+
}
|
|
45
|
+
export function inferImportColumnLabels(rows) {
|
|
46
|
+
const labels = [];
|
|
47
|
+
const seen = new Set();
|
|
48
|
+
for (const row of rows) {
|
|
49
|
+
for (const key of Object.keys(row)) {
|
|
50
|
+
if (key.startsWith("_") || seen.has(key))
|
|
51
|
+
continue;
|
|
52
|
+
seen.add(key);
|
|
53
|
+
labels.push(key);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return labels;
|
|
57
|
+
}
|
|
58
|
+
export function normalizeRowsForNewTable(rows) {
|
|
59
|
+
const labels = inferImportColumnLabels(rows);
|
|
60
|
+
if (labels.length === 0) {
|
|
61
|
+
throw new OxygenError("invalid_rows", "Import rows did not contain any writable columns.", {
|
|
62
|
+
exitCode: 1,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
const taken = new Set(["_row_id", "_created_at", "_updated_at"]);
|
|
66
|
+
const keyBySource = {};
|
|
67
|
+
const columns = labels.map((label) => {
|
|
68
|
+
const key = makeUniqueImportKey(label, taken);
|
|
69
|
+
keyBySource[label] = key;
|
|
70
|
+
const dataType = inferImportColumnDataType(label, rows.map((row) => row[label]));
|
|
71
|
+
return { label, key, data_type: dataType };
|
|
72
|
+
});
|
|
73
|
+
const dateColumnKeys = new Set(columns.filter((column) => column.data_type === "timestamptz").map((column) => column.key));
|
|
74
|
+
return {
|
|
75
|
+
columns,
|
|
76
|
+
keyBySource,
|
|
77
|
+
rows: rows.map((row) => {
|
|
78
|
+
const normalized = {};
|
|
79
|
+
for (const label of labels) {
|
|
80
|
+
if (!Object.hasOwn(row, label))
|
|
81
|
+
continue;
|
|
82
|
+
const key = keyBySource[label] ?? label;
|
|
83
|
+
const value = row[label];
|
|
84
|
+
normalized[key] = dateColumnKeys.has(key)
|
|
85
|
+
? parseDateValueToIso(value, { allowExcelSerial: true })
|
|
86
|
+
: value;
|
|
87
|
+
}
|
|
88
|
+
return normalized;
|
|
89
|
+
}),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
export function normalizeImportColumnKey(value) {
|
|
93
|
+
const normalized = value
|
|
94
|
+
.normalize("NFKD")
|
|
95
|
+
.replace(/[\u0300-\u036f]/g, "")
|
|
96
|
+
.toLowerCase()
|
|
97
|
+
.replace(/[^a-z0-9]+/g, "_")
|
|
98
|
+
.replace(/^_+|_+$/g, "")
|
|
99
|
+
.replace(/_+/g, "_");
|
|
100
|
+
const base = normalized || "column";
|
|
101
|
+
const prefixed = /^[0-9]/.test(base) ? `c_${base}` : base;
|
|
102
|
+
return prefixed.slice(0, MAX_IDENTIFIER_LENGTH);
|
|
103
|
+
}
|
|
104
|
+
async function parseXlsxRows(buffer, options) {
|
|
105
|
+
let rows;
|
|
106
|
+
try {
|
|
107
|
+
rows = await readXlsxFile(buffer, options.sheet ? { sheet: options.sheet } : {});
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
throw new OxygenError("invalid_rows", "XLSX sheet was not found.", {
|
|
111
|
+
details: {
|
|
112
|
+
sheet: options.sheet ?? null,
|
|
113
|
+
reason: error instanceof Error ? error.message : String(error),
|
|
114
|
+
},
|
|
115
|
+
exitCode: 1,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
const [header, ...body] = rows;
|
|
119
|
+
if (!header || header.length === 0)
|
|
120
|
+
return [];
|
|
121
|
+
const labels = header
|
|
122
|
+
.map((cell, index) => ({
|
|
123
|
+
index,
|
|
124
|
+
label: cell === null || cell === undefined ? "" : String(cell).trim(),
|
|
125
|
+
}))
|
|
126
|
+
.filter((entry) => entry.label);
|
|
127
|
+
return body
|
|
128
|
+
.filter((row) => row.some((cell) => cell !== null && cell !== undefined && String(cell).trim()))
|
|
129
|
+
.map((row) => Object.fromEntries(labels.map((entry) => [entry.label, normalizeXlsxImportCell(row[entry.index])])));
|
|
130
|
+
}
|
|
131
|
+
function normalizeXlsxImportCell(value) {
|
|
132
|
+
if (value === undefined || value === null || value === "")
|
|
133
|
+
return null;
|
|
134
|
+
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean")
|
|
135
|
+
return value;
|
|
136
|
+
if (value instanceof Date)
|
|
137
|
+
return value.toISOString();
|
|
138
|
+
return String(value);
|
|
139
|
+
}
|
|
140
|
+
function parseJsonArray(text) {
|
|
141
|
+
const parsed = JSON.parse(text);
|
|
142
|
+
if (!Array.isArray(parsed)) {
|
|
143
|
+
throw new OxygenError("invalid_json", "Expected a JSON array.", { exitCode: 1 });
|
|
144
|
+
}
|
|
145
|
+
return parsed;
|
|
146
|
+
}
|
|
147
|
+
function normalizeRowObjects(rows) {
|
|
148
|
+
return rows.map((row) => {
|
|
149
|
+
if (!row || typeof row !== "object" || Array.isArray(row)) {
|
|
150
|
+
throw new OxygenError("invalid_rows", "Rows must be JSON objects.", { exitCode: 1 });
|
|
151
|
+
}
|
|
152
|
+
return row;
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
function parseCsvRows(text) {
|
|
156
|
+
const records = parseCsvRecords(text);
|
|
157
|
+
const [header, ...rows] = records;
|
|
158
|
+
if (!header || header.length === 0)
|
|
159
|
+
return [];
|
|
160
|
+
return rows
|
|
161
|
+
.filter((row) => row.some((cell) => cell.trim()))
|
|
162
|
+
.map((row) => Object.fromEntries(header.map((key, index) => [key, normalizeCsvImportCell(row[index])])));
|
|
163
|
+
}
|
|
164
|
+
function normalizeCsvImportCell(value) {
|
|
165
|
+
if (value === undefined || value === "")
|
|
166
|
+
return null;
|
|
167
|
+
return value;
|
|
168
|
+
}
|
|
169
|
+
function parseCsvRecords(text) {
|
|
170
|
+
const records = [];
|
|
171
|
+
let record = [];
|
|
172
|
+
let field = "";
|
|
173
|
+
let inQuotes = false;
|
|
174
|
+
for (let index = 0; index < text.length; index += 1) {
|
|
175
|
+
const char = text[index];
|
|
176
|
+
const next = text[index + 1];
|
|
177
|
+
if (inQuotes) {
|
|
178
|
+
if (char === "\"" && next === "\"") {
|
|
179
|
+
field += "\"";
|
|
180
|
+
index += 1;
|
|
181
|
+
}
|
|
182
|
+
else if (char === "\"") {
|
|
183
|
+
inQuotes = false;
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
field += char;
|
|
187
|
+
}
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
if (char === "\"") {
|
|
191
|
+
inQuotes = true;
|
|
192
|
+
}
|
|
193
|
+
else if (char === ",") {
|
|
194
|
+
record.push(field);
|
|
195
|
+
field = "";
|
|
196
|
+
}
|
|
197
|
+
else if (char === "\n") {
|
|
198
|
+
record.push(field);
|
|
199
|
+
records.push(record);
|
|
200
|
+
record = [];
|
|
201
|
+
field = "";
|
|
202
|
+
}
|
|
203
|
+
else if (char !== "\r") {
|
|
204
|
+
field += char;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
if (field || record.length > 0) {
|
|
208
|
+
record.push(field);
|
|
209
|
+
records.push(record);
|
|
210
|
+
}
|
|
211
|
+
return records;
|
|
212
|
+
}
|
|
213
|
+
function makeUniqueImportKey(label, taken) {
|
|
214
|
+
const normalized = normalizeImportColumnKey(label);
|
|
215
|
+
if (!taken.has(normalized)) {
|
|
216
|
+
taken.add(normalized);
|
|
217
|
+
return normalized;
|
|
218
|
+
}
|
|
219
|
+
for (let index = 2; index < 10_000; index += 1) {
|
|
220
|
+
const suffix = `_${index}`;
|
|
221
|
+
const candidate = `${normalized.slice(0, MAX_IDENTIFIER_LENGTH - suffix.length)}${suffix}`;
|
|
222
|
+
if (!taken.has(candidate)) {
|
|
223
|
+
taken.add(candidate);
|
|
224
|
+
return candidate;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
throw new OxygenError("identifier_exhausted", "Unable to create a unique column key.", {
|
|
228
|
+
details: { label },
|
|
229
|
+
exitCode: 1,
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=file-import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-import.js","sourceRoot":"","sources":["../src/file-import.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export { OXYGEN_VERSION } from "./version.js";
|
|
2
|
+
export * from "./billing.js";
|
|
3
|
+
export * from "./column-types.js";
|
|
4
|
+
export * from "./credit-guidance.js";
|
|
5
|
+
export * from "./log.js";
|
|
6
|
+
export * from "./telemetry.js";
|
|
7
|
+
export type JsonValue = string | number | boolean | null | JsonValue[] | {
|
|
8
|
+
[key: string]: JsonValue;
|
|
9
|
+
};
|
|
10
|
+
export type CliMeta = {
|
|
11
|
+
command: string;
|
|
12
|
+
version: string;
|
|
13
|
+
};
|
|
14
|
+
export type CliSuccess<T> = {
|
|
15
|
+
ok: true;
|
|
16
|
+
data: T;
|
|
17
|
+
meta: CliMeta;
|
|
18
|
+
};
|
|
19
|
+
export type CliFailure = {
|
|
20
|
+
ok: false;
|
|
21
|
+
error: {
|
|
22
|
+
code: string;
|
|
23
|
+
message: string;
|
|
24
|
+
details?: unknown;
|
|
25
|
+
};
|
|
26
|
+
meta: CliMeta;
|
|
27
|
+
};
|
|
28
|
+
export type CliResult<T> = CliSuccess<T> | CliFailure;
|
|
29
|
+
export declare class OxygenError extends Error {
|
|
30
|
+
readonly code: string;
|
|
31
|
+
readonly details?: unknown;
|
|
32
|
+
readonly exitCode: number;
|
|
33
|
+
constructor(code: string, message: string, options?: {
|
|
34
|
+
details?: unknown;
|
|
35
|
+
exitCode?: number;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
export declare function success<T>(command: string, data: T, version?: string): CliSuccess<T>;
|
|
39
|
+
export declare function failure(command: string, error: {
|
|
40
|
+
code: string;
|
|
41
|
+
message: string;
|
|
42
|
+
details?: unknown;
|
|
43
|
+
}, version?: string): CliFailure;
|
|
44
|
+
export declare function toFailure(command: string, error: unknown, version?: string): CliFailure;
|
|
45
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAE/B,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEjC,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;AAEtD,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO;CAOlG;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,SAAiB,GAAG,UAAU,CAAC,CAAC,CAAC,CAS5F;AAED,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAC3D,OAAO,SAAiB,GACvB,UAAU,CASZ;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,SAAiB,GAAG,UAAU,CAU/F"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { OXYGEN_VERSION } from "./version.js";
|
|
2
|
+
export { OXYGEN_VERSION } from "./version.js";
|
|
3
|
+
export * from "./billing.js";
|
|
4
|
+
export * from "./column-types.js";
|
|
5
|
+
export * from "./credit-guidance.js";
|
|
6
|
+
export * from "./log.js";
|
|
7
|
+
export * from "./telemetry.js";
|
|
8
|
+
export class OxygenError extends Error {
|
|
9
|
+
code;
|
|
10
|
+
details;
|
|
11
|
+
exitCode;
|
|
12
|
+
constructor(code, message, options = {}) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = "OxygenError";
|
|
15
|
+
this.code = code;
|
|
16
|
+
this.details = options.details;
|
|
17
|
+
this.exitCode = options.exitCode ?? 1;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function success(command, data, version = OXYGEN_VERSION) {
|
|
21
|
+
return {
|
|
22
|
+
ok: true,
|
|
23
|
+
data,
|
|
24
|
+
meta: {
|
|
25
|
+
command,
|
|
26
|
+
version
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export function failure(command, error, version = OXYGEN_VERSION) {
|
|
31
|
+
return {
|
|
32
|
+
ok: false,
|
|
33
|
+
error,
|
|
34
|
+
meta: {
|
|
35
|
+
command,
|
|
36
|
+
version
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export function toFailure(command, error, version = OXYGEN_VERSION) {
|
|
41
|
+
if (error instanceof OxygenError) {
|
|
42
|
+
return failure(command, { code: error.code, message: error.message, details: error.details }, version);
|
|
43
|
+
}
|
|
44
|
+
if (error instanceof Error) {
|
|
45
|
+
return failure(command, { code: "unexpected_error", message: error.message }, version);
|
|
46
|
+
}
|
|
47
|
+
return failure(command, { code: "unexpected_error", message: "An unexpected error occurred." }, version);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAiC/B,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,CAAS;IACb,OAAO,CAAW;IAClB,QAAQ,CAAS;IAE1B,YAAY,IAAY,EAAE,OAAe,EAAE,UAAoD,EAAE;QAC/F,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IACxC,CAAC;CACF;AAED,MAAM,UAAU,OAAO,CAAI,OAAe,EAAE,IAAO,EAAE,OAAO,GAAG,cAAc;IAC3E,OAAO;QACL,EAAE,EAAE,IAAI;QACR,IAAI;QACJ,IAAI,EAAE;YACJ,OAAO;YACP,OAAO;SACR;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,OAAe,EACf,KAA2D,EAC3D,OAAO,GAAG,cAAc;IAExB,OAAO;QACL,EAAE,EAAE,KAAK;QACT,KAAK;QACL,IAAI,EAAE;YACJ,OAAO;YACP,OAAO;SACR;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,KAAc,EAAE,OAAO,GAAG,cAAc;IACjF,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACzG,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACzF,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,+BAA+B,EAAE,EAAE,OAAO,CAAC,CAAC;AAC3G,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type LogLevel = "debug" | "info" | "warn" | "error";
|
|
2
|
+
export type LogContext = {
|
|
3
|
+
request_id?: string | undefined;
|
|
4
|
+
trace_id?: string | undefined;
|
|
5
|
+
org_id?: string | undefined;
|
|
6
|
+
user_id?: string | undefined;
|
|
7
|
+
tool_name?: string | undefined;
|
|
8
|
+
provider?: string | undefined;
|
|
9
|
+
operation?: string | undefined;
|
|
10
|
+
tenant_database_id?: string | undefined;
|
|
11
|
+
run_id?: string | undefined;
|
|
12
|
+
chunk_id?: string | undefined;
|
|
13
|
+
item_id?: string | undefined;
|
|
14
|
+
worker_id?: string | undefined;
|
|
15
|
+
surface?: "mcp" | "cli" | "web" | "worker" | undefined;
|
|
16
|
+
};
|
|
17
|
+
export declare function withLogContext<T>(ctx: LogContext, fn: () => T): T;
|
|
18
|
+
export declare function getLogContext(): LogContext;
|
|
19
|
+
export declare function log(level: LogLevel, msg: string, fields?: Record<string, unknown>): void;
|
|
20
|
+
export declare function errorId(err: unknown): string;
|
|
21
|
+
export declare function errorFields(err: unknown): Record<string, unknown>;
|
|
22
|
+
//# sourceMappingURL=log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;CACxD,CAAC;AAIF,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAGjE;AAED,wBAAgB,aAAa,IAAI,UAAU,CAE1C;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAoBxF;AAKD,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAO5C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUjE"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
3
|
+
import { sanitizeLogFields } from "./redaction.js";
|
|
4
|
+
import { OXYGEN_VERSION } from "./version.js";
|
|
5
|
+
const store = new AsyncLocalStorage();
|
|
6
|
+
export function withLogContext(ctx, fn) {
|
|
7
|
+
const merged = { ...(store.getStore() ?? {}), ...ctx };
|
|
8
|
+
return store.run(merged, fn);
|
|
9
|
+
}
|
|
10
|
+
export function getLogContext() {
|
|
11
|
+
return store.getStore() ?? {};
|
|
12
|
+
}
|
|
13
|
+
export function log(level, msg, fields) {
|
|
14
|
+
const line = JSON.stringify({
|
|
15
|
+
ts: new Date().toISOString(),
|
|
16
|
+
level,
|
|
17
|
+
msg,
|
|
18
|
+
service_name: process.env.OTEL_SERVICE_NAME ?? process.env.OXYGEN_SERVICE_NAME ?? null,
|
|
19
|
+
oxygen_version: OXYGEN_VERSION,
|
|
20
|
+
sha: process.env.VERCEL_GIT_COMMIT_SHA ?? null,
|
|
21
|
+
region: process.env.VERCEL_REGION ?? null,
|
|
22
|
+
env: process.env.VERCEL_ENV ?? process.env.NODE_ENV ?? null,
|
|
23
|
+
...sanitizeLogFields({
|
|
24
|
+
...getLogContext(),
|
|
25
|
+
...fields,
|
|
26
|
+
}),
|
|
27
|
+
});
|
|
28
|
+
if (level === "error" || level === "warn") {
|
|
29
|
+
console.error(line);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
console.log(line);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// Short, deterministic id grouping similar errors. Hashes name + message +
|
|
36
|
+
// the first stack frame so the same TypeError at the same location dedupes
|
|
37
|
+
// to one bucket in your log drain queries.
|
|
38
|
+
export function errorId(err) {
|
|
39
|
+
if (!(err instanceof Error))
|
|
40
|
+
return "non_error";
|
|
41
|
+
const firstFrame = (err.stack ?? "").split("\n").slice(1, 2).join("");
|
|
42
|
+
return createHash("sha256")
|
|
43
|
+
.update(`${err.name}:${err.message}:${firstFrame}`)
|
|
44
|
+
.digest("hex")
|
|
45
|
+
.slice(0, 12);
|
|
46
|
+
}
|
|
47
|
+
export function errorFields(err) {
|
|
48
|
+
if (err instanceof Error) {
|
|
49
|
+
return {
|
|
50
|
+
error_id: errorId(err),
|
|
51
|
+
error_name: err.name,
|
|
52
|
+
error_message: err.message,
|
|
53
|
+
error_stack: err.stack,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return { error_id: "non_error", error_message: String(err) };
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAoB9C,MAAM,KAAK,GAAG,IAAI,iBAAiB,EAAc,CAAC;AAElD,MAAM,UAAU,cAAc,CAAI,GAAe,EAAE,EAAW;IAC5D,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC;IACvD,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,KAAe,EAAE,GAAW,EAAE,MAAgC;IAChF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,KAAK;QACL,GAAG;QACH,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI;QACtF,cAAc,EAAE,cAAc;QAC9B,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,IAAI;QAC9C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI;QACzC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI;QAC3D,GAAG,iBAAiB,CAAC;YACnB,GAAG,aAAa,EAAE;YAClB,GAAG,MAAM;SACV,CAAC;KACH,CAAC,CAAC;IACH,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,2EAA2E;AAC3E,2CAA2C;AAC3C,MAAM,UAAU,OAAO,CAAC,GAAY;IAClC,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC;QAAE,OAAO,WAAW,CAAC;IAChD,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtE,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;SAClD,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC;YACtB,UAAU,EAAE,GAAG,CAAC,IAAI;YACpB,aAAa,EAAE,GAAG,CAAC,OAAO;YAC1B,WAAW,EAAE,GAAG,CAAC,KAAK;SACvB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AAC/D,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type PrimitiveTelemetryAttribute = string | number | boolean | string[] | number[] | boolean[];
|
|
2
|
+
export declare function sanitizeLogFields(fields: Record<string, unknown> | undefined): Record<string, unknown>;
|
|
3
|
+
export declare function normalizeTelemetryAttributes(attributes: Record<string, unknown> | undefined): Record<string, PrimitiveTelemetryAttribute>;
|
|
4
|
+
//# sourceMappingURL=redaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../src/redaction.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,2BAA2B,GACnC,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,EAAE,GACR,MAAM,EAAE,GACR,OAAO,EAAE,CAAC;AAEd,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC1C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC9C,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAU7C"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
const SECRET_KEY_PATTERN = /(api[_-]?key|x[_-]?key|authorization|bearer|cookie|password|secret|token|ciphertext|connection[_-]?string|connection[_-]?uri|database[_-]?url|dsn)/i;
|
|
2
|
+
const OMITTED_KEY_PATTERN = /^(body|payload|prompt|prompts|raw_prompt|raw_prompts|row|rows|input|inputs|output|outputs|request|response|provider_payload|provider_response|customer_data)$/i;
|
|
3
|
+
const MAX_LOG_STRING_LENGTH = 8_000;
|
|
4
|
+
const MAX_TELEMETRY_STRING_LENGTH = 500;
|
|
5
|
+
const MAX_ARRAY_LENGTH = 20;
|
|
6
|
+
const MAX_OBJECT_KEYS = 40;
|
|
7
|
+
const MAX_REDACTION_DEPTH = 5;
|
|
8
|
+
export function sanitizeLogFields(fields) {
|
|
9
|
+
if (!fields)
|
|
10
|
+
return {};
|
|
11
|
+
const output = {};
|
|
12
|
+
for (const [key, value] of Object.entries(fields).slice(0, MAX_OBJECT_KEYS)) {
|
|
13
|
+
output[key] = sanitizeValueForLog(value, key, 0);
|
|
14
|
+
}
|
|
15
|
+
return output;
|
|
16
|
+
}
|
|
17
|
+
export function normalizeTelemetryAttributes(attributes) {
|
|
18
|
+
if (!attributes)
|
|
19
|
+
return {};
|
|
20
|
+
const output = {};
|
|
21
|
+
for (const [rawKey, value] of Object.entries(attributes).slice(0, MAX_OBJECT_KEYS)) {
|
|
22
|
+
const key = sanitizeAttributeKey(rawKey);
|
|
23
|
+
if (!key || value === undefined || value === null)
|
|
24
|
+
continue;
|
|
25
|
+
const normalized = normalizeTelemetryValue(value, rawKey);
|
|
26
|
+
if (normalized !== undefined)
|
|
27
|
+
output[key] = normalized;
|
|
28
|
+
}
|
|
29
|
+
return output;
|
|
30
|
+
}
|
|
31
|
+
function sanitizeValueForLog(value, key, depth) {
|
|
32
|
+
if (SECRET_KEY_PATTERN.test(key))
|
|
33
|
+
return "[redacted]";
|
|
34
|
+
if (OMITTED_KEY_PATTERN.test(key))
|
|
35
|
+
return "[omitted]";
|
|
36
|
+
if (value === null || value === undefined)
|
|
37
|
+
return value;
|
|
38
|
+
if (typeof value === "string")
|
|
39
|
+
return truncateString(value, MAX_LOG_STRING_LENGTH);
|
|
40
|
+
if (typeof value === "number")
|
|
41
|
+
return Number.isFinite(value) ? value : null;
|
|
42
|
+
if (typeof value === "boolean")
|
|
43
|
+
return value;
|
|
44
|
+
if (value instanceof Date)
|
|
45
|
+
return value.toISOString();
|
|
46
|
+
if (Array.isArray(value)) {
|
|
47
|
+
if (depth >= MAX_REDACTION_DEPTH)
|
|
48
|
+
return "[truncated]";
|
|
49
|
+
return value
|
|
50
|
+
.slice(0, MAX_ARRAY_LENGTH)
|
|
51
|
+
.map((entry) => sanitizeValueForLog(entry, key, depth + 1));
|
|
52
|
+
}
|
|
53
|
+
if (typeof value === "object") {
|
|
54
|
+
if (depth >= MAX_REDACTION_DEPTH)
|
|
55
|
+
return "[truncated]";
|
|
56
|
+
const output = {};
|
|
57
|
+
for (const [childKey, childValue] of Object.entries(value).slice(0, MAX_OBJECT_KEYS)) {
|
|
58
|
+
output[childKey] = sanitizeValueForLog(childValue, childKey, depth + 1);
|
|
59
|
+
}
|
|
60
|
+
return output;
|
|
61
|
+
}
|
|
62
|
+
return String(value);
|
|
63
|
+
}
|
|
64
|
+
function normalizeTelemetryValue(value, key) {
|
|
65
|
+
if (SECRET_KEY_PATTERN.test(key))
|
|
66
|
+
return "[redacted]";
|
|
67
|
+
if (OMITTED_KEY_PATTERN.test(key))
|
|
68
|
+
return "[omitted]";
|
|
69
|
+
if (typeof value === "string")
|
|
70
|
+
return truncateString(value, MAX_TELEMETRY_STRING_LENGTH);
|
|
71
|
+
if (typeof value === "number")
|
|
72
|
+
return Number.isFinite(value) ? value : undefined;
|
|
73
|
+
if (typeof value === "boolean")
|
|
74
|
+
return value;
|
|
75
|
+
if (value instanceof Date)
|
|
76
|
+
return value.toISOString();
|
|
77
|
+
if (Array.isArray(value)) {
|
|
78
|
+
const primitive = value
|
|
79
|
+
.slice(0, MAX_ARRAY_LENGTH)
|
|
80
|
+
.filter((entry) => typeof entry === "string" || typeof entry === "number" || typeof entry === "boolean");
|
|
81
|
+
if (primitive.length === 0)
|
|
82
|
+
return undefined;
|
|
83
|
+
if (primitive.every((entry) => typeof entry === "string")) {
|
|
84
|
+
return primitive.map((entry) => truncateString(String(entry), MAX_TELEMETRY_STRING_LENGTH));
|
|
85
|
+
}
|
|
86
|
+
if (primitive.every((entry) => typeof entry === "number" && Number.isFinite(entry))) {
|
|
87
|
+
return primitive;
|
|
88
|
+
}
|
|
89
|
+
if (primitive.every((entry) => typeof entry === "boolean")) {
|
|
90
|
+
return primitive;
|
|
91
|
+
}
|
|
92
|
+
return primitive.map((entry) => truncateString(String(entry), MAX_TELEMETRY_STRING_LENGTH));
|
|
93
|
+
}
|
|
94
|
+
if (typeof value === "object" && value) {
|
|
95
|
+
return truncateString(JSON.stringify(sanitizeValueForLog(value, key, 0)), MAX_TELEMETRY_STRING_LENGTH);
|
|
96
|
+
}
|
|
97
|
+
return truncateString(String(value), MAX_TELEMETRY_STRING_LENGTH);
|
|
98
|
+
}
|
|
99
|
+
function sanitizeAttributeKey(key) {
|
|
100
|
+
const normalized = key.trim().replace(/[^A-Za-z0-9_.-]/g, "_").slice(0, 120);
|
|
101
|
+
return normalized || null;
|
|
102
|
+
}
|
|
103
|
+
function truncateString(value, maxLength) {
|
|
104
|
+
return value.length > maxLength ? `${value.slice(0, maxLength)}...` : value;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=redaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redaction.js","sourceRoot":"","sources":["../src/redaction.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GACtB,qJAAqJ,CAAC;AACxJ,MAAM,mBAAmB,GACvB,gKAAgK,CAAC;AACnK,MAAM,qBAAqB,GAAG,KAAK,CAAC;AACpC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AACxC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAU9B,MAAM,UAAU,iBAAiB,CAC/B,MAA2C;IAE3C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC;QAC5E,MAAM,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,UAA+C;IAE/C,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAgD,EAAE,CAAC;IAC/D,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC;QACnF,MAAM,GAAG,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QAC5D,MAAM,UAAU,GAAG,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,UAAU,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;IACzD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,GAAW,EAAE,KAAa;IACrE,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC;IACtD,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,WAAW,CAAC;IACtD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;IACnF,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,KAAK,IAAI,mBAAmB;YAAE,OAAO,aAAa,CAAC;QACvD,OAAO,KAAK;aACT,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC;aAC1B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,IAAI,mBAAmB;YAAE,OAAO,aAAa,CAAC;QACvD,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC;YACrF,MAAM,CAAC,QAAQ,CAAC,GAAG,mBAAmB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,uBAAuB,CAC9B,KAAc,EACd,GAAW;IAEX,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC;IACtD,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,WAAW,CAAC;IACtD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;IACzF,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,KAAK;aACpB,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC;aAC1B,MAAM,CAAC,CAAC,KAAK,EAAsC,EAAE,CACpD,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,CACrF,CAAC;QACJ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC7C,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC1D,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,2BAA2B,CAAC,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACpF,OAAO,SAAqB,CAAC;QAC/B,CAAC;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC;YAC3D,OAAO,SAAsB,CAAC;QAChC,CAAC;QACD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,EAAE,CAAC;QACvC,OAAO,cAAc,CACnB,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAClD,2BAA2B,CAC5B,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,2BAA2B,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACvC,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7E,OAAO,UAAU,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,SAAiB;IACtD,OAAO,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type TelemetryAttributes = Record<string, unknown>;
|
|
2
|
+
export declare function withTelemetrySpan<T>(tracerName: string, name: string, attributes: TelemetryAttributes | undefined, fn: () => Promise<T>): Promise<T>;
|
|
3
|
+
export declare function setActiveTelemetryAttributes(attributes: TelemetryAttributes): void;
|
|
4
|
+
export declare function markActiveTelemetryError(message: string, attributes?: TelemetryAttributes): void;
|
|
5
|
+
export declare function addTelemetryEvent(name: string, attributes?: TelemetryAttributes): void;
|
|
6
|
+
export declare function recordTelemetryCounter(name: string, value?: number, attributes?: TelemetryAttributes): void;
|
|
7
|
+
export declare function recordTelemetryHistogram(name: string, value: number, attributes?: TelemetryAttributes): void;
|
|
8
|
+
export declare function commonTelemetryAttributes(attributes?: TelemetryAttributes): TelemetryAttributes;
|
|
9
|
+
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAK1D,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,mBAAmB,GAAG,SAAS,EAC3C,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAkBZ;AAED,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAIlF;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,mBAAmB,GAC/B,IAAI,CAON;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAItF;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,KAAK,SAAI,EACT,UAAU,CAAC,EAAE,mBAAmB,GAC/B,IAAI,CAIN;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,mBAAmB,GAC/B,IAAI,CAIN;AAED,wBAAgB,yBAAyB,CACvC,UAAU,CAAC,EAAE,mBAAmB,GAC/B,mBAAmB,CAQrB"}
|