@beeverlabs/auralogger 1.0.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.
Files changed (62) hide show
  1. package/dist/aura-log.d.ts +3 -0
  2. package/dist/aura-log.d.ts.map +1 -0
  3. package/dist/aura-log.js +418 -0
  4. package/dist/aura-log.js.map +1 -0
  5. package/dist/backend-origin.d.ts +9 -0
  6. package/dist/backend-origin.d.ts.map +1 -0
  7. package/dist/backend-origin.js +39 -0
  8. package/dist/backend-origin.js.map +1 -0
  9. package/dist/bin/auralogger.d.ts +3 -0
  10. package/dist/bin/auralogger.d.ts.map +1 -0
  11. package/dist/bin/auralogger.js +49 -0
  12. package/dist/bin/auralogger.js.map +1 -0
  13. package/dist/config.d.ts +12 -0
  14. package/dist/config.d.ts.map +1 -0
  15. package/dist/config.js +108 -0
  16. package/dist/config.js.map +1 -0
  17. package/dist/get-logs-filters.d.ts +9 -0
  18. package/dist/get-logs-filters.d.ts.map +1 -0
  19. package/dist/get-logs-filters.js +72 -0
  20. package/dist/get-logs-filters.js.map +1 -0
  21. package/dist/get-logs.d.ts +2 -0
  22. package/dist/get-logs.d.ts.map +1 -0
  23. package/dist/get-logs.js +65 -0
  24. package/dist/get-logs.js.map +1 -0
  25. package/dist/http-utils.d.ts +2 -0
  26. package/dist/http-utils.d.ts.map +1 -0
  27. package/dist/http-utils.js +19 -0
  28. package/dist/http-utils.js.map +1 -0
  29. package/dist/index.d.ts +13 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +26 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/init.d.ts +7 -0
  34. package/dist/init.d.ts.map +1 -0
  35. package/dist/init.js +150 -0
  36. package/dist/init.js.map +1 -0
  37. package/dist/log-print.d.ts +9 -0
  38. package/dist/log-print.d.ts.map +1 -0
  39. package/dist/log-print.js +14 -0
  40. package/dist/log-print.js.map +1 -0
  41. package/dist/log-styles.d.ts +42 -0
  42. package/dist/log-styles.d.ts.map +1 -0
  43. package/dist/log-styles.js +88 -0
  44. package/dist/log-styles.js.map +1 -0
  45. package/dist/parser.d.ts +14 -0
  46. package/dist/parser.d.ts.map +1 -0
  47. package/dist/parser.js +51 -0
  48. package/dist/parser.js.map +1 -0
  49. package/dist/reset.d.ts +2 -0
  50. package/dist/reset.d.ts.map +1 -0
  51. package/dist/reset.js +61 -0
  52. package/dist/reset.js.map +1 -0
  53. package/dist/server-check.d.ts +2 -0
  54. package/dist/server-check.d.ts.map +1 -0
  55. package/dist/server-check.js +47 -0
  56. package/dist/server-check.js.map +1 -0
  57. package/dist/test-logger.d.ts +2 -0
  58. package/dist/test-logger.d.ts.map +1 -0
  59. package/dist/test-logger.js +57 -0
  60. package/dist/test-logger.js.map +1 -0
  61. package/package.json +52 -0
  62. package/readme.md +19 -0
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_LOG_STYLE_SPEC = void 0;
4
+ exports.buildStyleEntriesFromApi = buildStyleEntriesFromApi;
5
+ exports.styleMapFromConfigEntries = styleMapFromConfigEntries;
6
+ exports.resolveLogStyleSpec = resolveLogStyleSpec;
7
+ exports.DEFAULT_LOG_STYLE_SPEC = {
8
+ icon: "🗒️",
9
+ "type-color": [23, 230, 154],
10
+ background: [0, 0, 0],
11
+ borderColor: [255, 255, 255],
12
+ "location-color": [63, 102, 191],
13
+ "time-color": [129, 68, 235],
14
+ "message-color": [235, 68, 210],
15
+ "text-color": [255, 255, 255],
16
+ };
17
+ function cloneDefaultSpec() {
18
+ return JSON.parse(JSON.stringify(exports.DEFAULT_LOG_STYLE_SPEC));
19
+ }
20
+ function isPlainObject(value) {
21
+ return typeof value === "object" && value !== null && !Array.isArray(value);
22
+ }
23
+ /**
24
+ * Builds `styles` for `auralogger.config.json` after init.
25
+ * Shape: array of objects, each with a single key (log type string) and a style spec object as value.
26
+ * Always includes `default`; server rows override or add types (by `importance` ascending).
27
+ */
28
+ function buildStyleEntriesFromApi(rows) {
29
+ const map = {
30
+ default: cloneDefaultSpec(),
31
+ };
32
+ const list = Array.isArray(rows) ? rows : [];
33
+ const sorted = [...list].sort((a, b) => Number(isPlainObject(a) ? a.importance ?? 0 : 0) -
34
+ Number(isPlainObject(b) ? b.importance ?? 0 : 0));
35
+ for (const row of sorted) {
36
+ if (!isPlainObject(row))
37
+ continue;
38
+ const r = row;
39
+ const t = typeof r.type === "string" ? r.type.trim() : "";
40
+ if (!t)
41
+ continue;
42
+ const inner = isPlainObject(r.styles) ? r.styles : {};
43
+ if (t === "default") {
44
+ Object.assign(map.default, inner);
45
+ }
46
+ else if (Object.keys(inner).length > 0) {
47
+ map[t] = inner;
48
+ }
49
+ }
50
+ return Object.entries(map).map(([type, spec]) => ({ [type]: spec }));
51
+ }
52
+ /**
53
+ * Flattens config `styles` into one object per type.
54
+ */
55
+ function styleMapFromConfigEntries(entries) {
56
+ const byType = {};
57
+ if (!Array.isArray(entries)) {
58
+ byType.default = cloneDefaultSpec();
59
+ return byType;
60
+ }
61
+ for (const item of entries) {
62
+ if (!isPlainObject(item))
63
+ continue;
64
+ for (const [k, v] of Object.entries(item)) {
65
+ if (isPlainObject(v)) {
66
+ byType[k] = v;
67
+ }
68
+ }
69
+ }
70
+ if (!byType.default) {
71
+ byType.default = cloneDefaultSpec();
72
+ }
73
+ return byType;
74
+ }
75
+ /**
76
+ * Resolved spec for a log line: per-type fields merged over `default`, then default alone if unknown type.
77
+ */
78
+ function resolveLogStyleSpec(logType, configStyles) {
79
+ const map = styleMapFromConfigEntries(configStyles);
80
+ const base = map.default ?? cloneDefaultSpec();
81
+ const t = typeof logType === "string" && logType.trim() ? logType.trim() : "unknown";
82
+ const specific = map[t];
83
+ if (!specific) {
84
+ return { ...base };
85
+ }
86
+ return { ...base, ...specific };
87
+ }
88
+ //# sourceMappingURL=log-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-styles.js","sourceRoot":"","sources":["../src/log-styles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export interface ParsedFilter {
2
+ field: string;
3
+ op: string | null;
4
+ value: unknown;
5
+ }
6
+ export interface ParsedGetLogsCommand {
7
+ filters: ParsedFilter[];
8
+ }
9
+ /**
10
+ * Parses `get-logs` argv after the subcommand (first token must be `get-logs`).
11
+ * See `docs/infra/bin/get_logs.md`.
12
+ */
13
+ export declare function parseCommand(tokens: string[]): ParsedGetLogsCommand;
14
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAiDnE"}
package/dist/parser.js ADDED
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseCommand = parseCommand;
4
+ /**
5
+ * Parses `get-logs` argv after the subcommand (first token must be `get-logs`).
6
+ * See `docs/infra/bin/get_logs.md`.
7
+ */
8
+ function parseCommand(tokens) {
9
+ if (tokens[0] !== "get-logs") {
10
+ throw new Error("Expected 'get-logs'");
11
+ }
12
+ const filters = [];
13
+ let i = 1;
14
+ while (i < tokens.length) {
15
+ const fieldToken = tokens[i];
16
+ if (!fieldToken?.startsWith("-")) {
17
+ throw new Error(`Expected field at position ${i}`);
18
+ }
19
+ const field = fieldToken.slice(1);
20
+ i++;
21
+ let op = null;
22
+ if (tokens[i]?.startsWith("--")) {
23
+ op = tokens[i].slice(2);
24
+ i++;
25
+ }
26
+ const valueToken = tokens[i];
27
+ if (!valueToken) {
28
+ throw new Error(`Missing value for field '${field}'`);
29
+ }
30
+ let value;
31
+ try {
32
+ value = JSON.parse(valueToken);
33
+ }
34
+ catch {
35
+ throw new Error(`Invalid JSON for field '${field}'`);
36
+ }
37
+ const numericField = field === "maxcount" || field === "skip";
38
+ if (numericField) {
39
+ if (typeof value !== "number" || !Number.isFinite(value)) {
40
+ throw new Error(`Field '${field}' expects a JSON number token (e.g. 50)`);
41
+ }
42
+ }
43
+ else if (!Array.isArray(value)) {
44
+ throw new Error(`Field '${field}' expects a JSON array token (e.g. ["a"])`);
45
+ }
46
+ i++;
47
+ filters.push({ field, op, value });
48
+ }
49
+ return { filters };
50
+ }
51
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":";;AAcA,oCAiDC;AArDD;;;GAGG;AACH,SAAgB,YAAY,CAAC,MAAgB;IAC3C,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC,EAAE,CAAC;QAEJ,IAAI,EAAE,GAAkB,IAAI,CAAC;QAC7B,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC,EAAE,CAAC;QACN,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,GAAG,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,GAAG,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,MAAM,CAAC;QAC9D,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,yCAAyC,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,2CAA2C,CAAC,CAAC;QAC9E,CAAC;QAED,CAAC,EAAE,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function runReset(): Promise<void>;
2
+ //# sourceMappingURL=reset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../src/reset.ts"],"names":[],"mappings":"AAcA,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAc9C"}
package/dist/reset.js ADDED
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.runReset = runReset;
37
+ const fs = __importStar(require("node:fs/promises"));
38
+ const path = __importStar(require("node:path"));
39
+ const config_1 = require("./config");
40
+ function isEnoent(err) {
41
+ return (typeof err === "object" &&
42
+ err !== null &&
43
+ "code" in err &&
44
+ err.code === "ENOENT");
45
+ }
46
+ async function runReset() {
47
+ const cwd = process.cwd();
48
+ const configPath = path.join(cwd, config_1.CONFIG_FILE_NAME);
49
+ try {
50
+ await fs.unlink(configPath);
51
+ console.log(`Removed ${config_1.CONFIG_FILE_NAME} from ${cwd}.`);
52
+ }
53
+ catch (error) {
54
+ if (isEnoent(error)) {
55
+ console.log(`No ${config_1.CONFIG_FILE_NAME} in ${cwd}; nothing to remove.`);
56
+ return;
57
+ }
58
+ throw error;
59
+ }
60
+ }
61
+ //# sourceMappingURL=reset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.js","sourceRoot":"","sources":["../src/reset.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,4BAcC;AA5BD,qDAAuC;AACvC,gDAAkC;AAElC,qCAA4C;AAE5C,SAAS,QAAQ,CAAC,GAAY;IAC5B,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,MAAM,IAAI,GAAG;QACZ,GAA6B,CAAC,IAAI,KAAK,QAAQ,CACjD,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,QAAQ;IAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,yBAAgB,CAAC,CAAC;IAEpD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,WAAW,yBAAgB,SAAS,GAAG,GAAG,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,MAAM,yBAAgB,OAAO,GAAG,sBAAsB,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function runServerCheck(): Promise<void>;
2
+ //# sourceMappingURL=server-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-check.d.ts","sourceRoot":"","sources":["../src/server-check.ts"],"names":[],"mappings":"AAWA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA4CpD"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runServerCheck = runServerCheck;
7
+ const ws_1 = __importDefault(require("ws"));
8
+ const backend_origin_1 = require("./backend-origin");
9
+ const config_1 = require("./config");
10
+ const CONNECT_TIMEOUT_MS = 5000;
11
+ function buildWsUrl(projectId) {
12
+ return `${(0, backend_origin_1.resolveWsBaseUrl)()}/${encodeURIComponent(projectId)}/create_log`;
13
+ }
14
+ async function runServerCheck() {
15
+ const cwd = process.cwd();
16
+ const config = await (0, config_1.readConfig)(cwd);
17
+ const projectId = (0, config_1.getConfigProjectId)(config);
18
+ if (!projectId) {
19
+ throw new Error('auralogger.config.json is missing a valid "project_id". Run "auralogger init".');
20
+ }
21
+ const secret = process.env.AURALOGGER_SECRET_KEY?.trim() || (0, config_1.getConfigSecret)(config);
22
+ if (!secret) {
23
+ throw new Error('auralogger.config.json is missing a valid "secret_key". Run "auralogger init" to set it.');
24
+ }
25
+ const wsUrl = buildWsUrl(projectId);
26
+ console.log(`Checking websocket server`);
27
+ await new Promise((resolve, reject) => {
28
+ const ws = new ws_1.default(wsUrl, {
29
+ headers: { secret },
30
+ });
31
+ const timeout = setTimeout(() => {
32
+ ws.terminate();
33
+ reject(new Error(`WebSocket connect timed out after ${CONNECT_TIMEOUT_MS}ms.`));
34
+ }, CONNECT_TIMEOUT_MS);
35
+ ws.once("open", () => {
36
+ clearTimeout(timeout);
37
+ console.log("auralogger: server is connectable.");
38
+ ws.close();
39
+ resolve();
40
+ });
41
+ ws.once("error", (error) => {
42
+ clearTimeout(timeout);
43
+ reject(new Error(`auralogger: server connect failed: ${error.message}`));
44
+ });
45
+ });
46
+ }
47
+ //# sourceMappingURL=server-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-check.js","sourceRoot":"","sources":["../src/server-check.ts"],"names":[],"mappings":";;;;;AAWA,wCA4CC;AAvDD,4CAA2B;AAE3B,qDAAoD;AACpD,qCAA2E;AAE3E,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,SAAS,UAAU,CAAC,SAAiB;IACnC,OAAO,GAAG,IAAA,iCAAgB,GAAE,IAAI,kBAAkB,CAAC,SAAS,CAAC,aAAa,CAAC;AAC7E,CAAC;AAEM,KAAK,UAAU,cAAc;IAClC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAU,EAAC,GAAG,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,IAAA,2BAAkB,EAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACpG,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,IAAA,wBAAe,EAAC,MAAM,CAAC,CAAC;IACpF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAEzC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,EAAE,GAAG,IAAI,YAAS,CAAC,KAAK,EAAE;YAC9B,OAAO,EAAE,EAAE,MAAM,EAAE;SACpB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,EAAE,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,CACJ,IAAI,KAAK,CACP,qCAAqC,kBAAkB,KAAK,CAC7D,CACF,CAAC;QACJ,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAEvB,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;YACnB,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YAClD,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YAChC,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=test-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-logger.d.ts","sourceRoot":"","sources":["../src/test-logger.ts"],"names":[],"mappings":""}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const aura_log_1 = require("./aura-log");
4
+ function sleep(ms) {
5
+ return new Promise((resolve) => setTimeout(resolve, ms));
6
+ }
7
+ async function run() {
8
+ const logs = [
9
+ {
10
+ type: "info",
11
+ message: "Test run started",
12
+ location: "test/logger",
13
+ data: { runId: Date.now(), phase: "start" },
14
+ },
15
+ {
16
+ type: "debug",
17
+ message: "Loading config for test sequence",
18
+ location: "test/config",
19
+ data: { source: "auralogger.config.json" },
20
+ },
21
+ {
22
+ type: "warn",
23
+ message: "This is a sample warning from npm test",
24
+ location: "test/warnings",
25
+ data: { retryable: true },
26
+ },
27
+ {
28
+ type: "error",
29
+ message: "Sample error log for transport verification",
30
+ location: "test/errors",
31
+ data: { code: "E_TEST_LOG", severity: "low" },
32
+ },
33
+ {
34
+ type: "info",
35
+ message: "Test run finished",
36
+ location: "test/logger",
37
+ data: { phase: "end" },
38
+ },
39
+ ];
40
+ for (const entry of logs) {
41
+ (0, aura_log_1.auraLog)(entry.type, entry.message, entry.location, entry.data);
42
+ await sleep(150);
43
+ }
44
+ // Let pending sends flush, then close socket cleanly.
45
+ await sleep(1000);
46
+ await (0, aura_log_1.closeAuraLogSocket)(3000);
47
+ }
48
+ void run()
49
+ .then(() => {
50
+ process.exit(0);
51
+ })
52
+ .catch((error) => {
53
+ const message = error instanceof Error ? error.message : String(error);
54
+ console.error(`auralogger test failed: ${message}`);
55
+ process.exit(1);
56
+ });
57
+ //# sourceMappingURL=test-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-logger.js","sourceRoot":"","sources":["../src/test-logger.ts"],"names":[],"mappings":";;AAAA,yCAAyD;AAEzD,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,GAAG;IAChB,MAAM,IAAI,GAAG;QACX;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,kBAAkB;YAC3B,QAAQ,EAAE,aAAa;YACvB,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;SAC5C;QACD;YACE,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,kCAAkC;YAC3C,QAAQ,EAAE,aAAa;YACvB,IAAI,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE;SAC3C;QACD;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,wCAAwC;YACjD,QAAQ,EAAE,eAAe;YACzB,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;SAC1B;QACD;YACE,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,6CAA6C;YACtD,QAAQ,EAAE,aAAa;YACvB,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE;SAC9C;QACD;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,mBAAmB;YAC5B,QAAQ,EAAE,aAAa;YACvB,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;SACvB;KACF,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,IAAA,kBAAO,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,sDAAsD;IACtD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IAClB,MAAM,IAAA,6BAAkB,EAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,KAAK,GAAG,EAAE;KACP,IAAI,CAAC,GAAG,EAAE;IACT,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@beeverlabs/auralogger",
3
+ "version": "1.0.0",
4
+ "description": "advanced logger for Agents and an experience for devs",
5
+ "keywords": [
6
+ "logger",
7
+ "logs",
8
+ "auralogger"
9
+ ],
10
+ "homepage": "https://auralogger.com",
11
+ "bugs": {
12
+ "url": "https://github.com/Beever-Labs/auralogger-node/issues"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/Beever-Labs/auralogger-node.git"
17
+ },
18
+ "license": "ISC",
19
+ "author": "Bhanu Vardhan Reddy Nanavala",
20
+ "type": "commonjs",
21
+ "main": "dist/index.js",
22
+ "types": "dist/index.d.ts",
23
+ "bin": {
24
+ "auralogger": "dist/bin/auralogger.js"
25
+ },
26
+ "directories": {
27
+ "doc": "docs"
28
+ },
29
+ "files": [
30
+ "dist"
31
+ ],
32
+ "scripts": {
33
+ "build": "tsc",
34
+ "prepare": "npm run build",
35
+ "test": "npm run build && node dist/test-logger.js"
36
+ },
37
+ "dependencies": {
38
+ "chalk": "^4.1.2",
39
+ "ws": "^8.20.0"
40
+ },
41
+ "devDependencies": {
42
+ "@types/node": "^25.5.0",
43
+ "@types/ws": "^8.18.1",
44
+ "typescript": "^5.9.3"
45
+ },
46
+ "engines": {
47
+ "node": ">=18"
48
+ },
49
+ "publishConfig": {
50
+ "access": "public"
51
+ }
52
+ }
package/readme.md ADDED
@@ -0,0 +1,19 @@
1
+ This is the **auralogger** Node package. It lets users add logging to their projects: logs appear in the terminal and are sent to Auralogger’s backend over websocket. CLI commands fetch filtered logs for tools and agents.
2
+
3
+ ---
4
+
5
+ **User flow**
6
+
7
+ 1. **Install** — User adds the package. They provide an API token via **`AURALOGGER_SECRET_KEY`** in `.env` or a one-time CLI prompt during **`auralogger init`**. The secret stays in the environment only; it is **not** saved to disk.
8
+ 2. **Init** — The CLI calls **`POST /api/proj_auth`** and writes **`auralogger.config.json`** with **`project_id`**, **`name`**, **`role`**, **`profile_id`**, **`styles`**, etc. There is no separate **`sync`** command; re-run **`init`** if you need to refresh config.
9
+ 3. **Runtime** — Each log is shown in the terminal (styled from config) and sent over websocket to **`/{project_id}/create_log`**. Failures are logged without crashing the app.
10
+ 4. **CLI** — Commands such as **`auralogger get-logs`** call the backend with the same **`secret`** header and print results for agents.
11
+
12
+ **Base URL:** production defaults to **`https://auralogger.com`** (and the API/WebSocket origins used by the client). For local development, override with env vars such as **`AURALOGGER_API_URL`** / **`AURALOGGER_WS_URL`** (see **`dev-docs/routes.md`**).
13
+
14
+ **Docs in this repo**
15
+
16
+ - End users: **`user-docs/commands.md`**
17
+ - Contributors: **`dev-docs/`** (`README.md`, `file-map.md`, `routes.md`)
18
+
19
+ **Source:** [github.com/Beever-Labs/auralogger-node](https://github.com/Beever-Labs/auralogger-node)