@trebired/logger 2.0.0 → 2.1.1

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 (98) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +15 -2
  3. package/dist/core/create_log.d.ts.map +1 -1
  4. package/dist/core/create_log.js +16 -0
  5. package/dist/core/create_log.js.map +1 -1
  6. package/dist/format/console.d.ts.map +1 -1
  7. package/dist/format/console.js +38 -4
  8. package/dist/format/console.js.map +1 -1
  9. package/dist/index.d.ts +2 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/storage/backend/index.d.ts +6 -0
  14. package/dist/storage/backend/index.d.ts.map +1 -0
  15. package/dist/storage/backend/index.js +19 -0
  16. package/dist/storage/backend/index.js.map +1 -0
  17. package/dist/storage/backend/js.d.ts +4 -0
  18. package/dist/storage/backend/js.d.ts.map +1 -0
  19. package/dist/storage/backend/js.js +179 -0
  20. package/dist/storage/backend/js.js.map +1 -0
  21. package/dist/storage/backend/native.d.ts +6 -0
  22. package/dist/storage/backend/native.d.ts.map +1 -0
  23. package/dist/storage/backend/native.js +89 -0
  24. package/dist/storage/backend/native.js.map +1 -0
  25. package/dist/storage/backend/types.d.ts +57 -0
  26. package/dist/storage/backend/types.d.ts.map +1 -0
  27. package/dist/storage/backend/types.js +2 -0
  28. package/dist/storage/backend/types.js.map +1 -0
  29. package/dist/storage/export.d.ts +5 -0
  30. package/dist/storage/export.d.ts.map +1 -0
  31. package/dist/storage/export.js +124 -0
  32. package/dist/storage/export.js.map +1 -0
  33. package/dist/storage/partitions/delete.d.ts +5 -0
  34. package/dist/storage/partitions/delete.d.ts.map +1 -0
  35. package/dist/storage/partitions/delete.js +121 -0
  36. package/dist/storage/partitions/delete.js.map +1 -0
  37. package/dist/storage/partitions/files.d.ts +12 -0
  38. package/dist/storage/partitions/files.d.ts.map +1 -0
  39. package/dist/storage/partitions/files.js +142 -0
  40. package/dist/storage/partitions/files.js.map +1 -0
  41. package/dist/storage/partitions/internal.d.ts +47 -0
  42. package/dist/storage/partitions/internal.d.ts.map +1 -0
  43. package/dist/storage/partitions/internal.js +35 -0
  44. package/dist/storage/partitions/internal.js.map +1 -0
  45. package/dist/storage/partitions/markers.d.ts +8 -0
  46. package/dist/storage/partitions/markers.d.ts.map +1 -0
  47. package/dist/storage/partitions/markers.js +88 -0
  48. package/dist/storage/partitions/markers.js.map +1 -0
  49. package/dist/storage/partitions/public.d.ts +11 -0
  50. package/dist/storage/partitions/public.d.ts.map +1 -0
  51. package/dist/storage/partitions/public.js +79 -0
  52. package/dist/storage/partitions/public.js.map +1 -0
  53. package/dist/storage/partitions/records.d.ts +9 -0
  54. package/dist/storage/partitions/records.d.ts.map +1 -0
  55. package/dist/storage/partitions/records.js +73 -0
  56. package/dist/storage/partitions/records.js.map +1 -0
  57. package/dist/storage/partitions/transforms.d.ts +6 -0
  58. package/dist/storage/partitions/transforms.d.ts.map +1 -0
  59. package/dist/storage/partitions/transforms.js +59 -0
  60. package/dist/storage/partitions/transforms.js.map +1 -0
  61. package/dist/storage/partitions.d.ts +3 -29
  62. package/dist/storage/partitions.d.ts.map +1 -1
  63. package/dist/storage/partitions.js +3 -563
  64. package/dist/storage/partitions.js.map +1 -1
  65. package/dist/types/browser.d.ts +54 -0
  66. package/dist/types/browser.d.ts.map +1 -0
  67. package/dist/types/browser.js +2 -0
  68. package/dist/types/browser.js.map +1 -0
  69. package/dist/types/common.d.ts +73 -0
  70. package/dist/types/common.d.ts.map +1 -0
  71. package/dist/types/common.js +2 -0
  72. package/dist/types/common.js.map +1 -0
  73. package/dist/types/export.d.ts +53 -0
  74. package/dist/types/export.d.ts.map +1 -0
  75. package/dist/types/export.js +2 -0
  76. package/dist/types/export.js.map +1 -0
  77. package/dist/types/index.d.ts +7 -0
  78. package/dist/types/index.d.ts.map +1 -0
  79. package/dist/types/index.js +2 -0
  80. package/dist/types/index.js.map +1 -0
  81. package/dist/types/partitions.d.ts +92 -0
  82. package/dist/types/partitions.d.ts.map +1 -0
  83. package/dist/types/partitions.js +2 -0
  84. package/dist/types/partitions.js.map +1 -0
  85. package/dist/types/query.d.ts +49 -0
  86. package/dist/types/query.d.ts.map +1 -0
  87. package/dist/types/query.js +2 -0
  88. package/dist/types/query.js.map +1 -0
  89. package/dist/types/server.d.ts +79 -0
  90. package/dist/types/server.d.ts.map +1 -0
  91. package/dist/types/server.js +2 -0
  92. package/dist/types/server.js.map +1 -0
  93. package/dist/types.d.ts +1 -326
  94. package/dist/types.d.ts.map +1 -1
  95. package/native/darwin-arm64.node +0 -0
  96. package/native/darwin-x64.node +0 -0
  97. package/native/linux-x64-gnu.node +0 -0
  98. package/package.json +16 -7
package/CHANGELOG.md CHANGED
@@ -4,6 +4,25 @@ All notable changes to `@trebired/logger` will be documented here.
4
4
 
5
5
  This project follows semantic versioning once published.
6
6
 
7
+ ## Unreleased
8
+
9
+ ## 2.1.1
10
+
11
+ - Changed `prepublishOnly` to build the host native addon before publish and verify the packed tarball contents.
12
+ - Added publish-time guards so full releases fail unless the expected Linux and macOS native `.node` files are present in the package tarball.
13
+ - Added npm packaging overrides for `native/*.node` so bundled binaries are not dropped from published archives.
14
+ - Changed the bundled native release matrix to publish Linux GNU and macOS binaries only, leaving musl targets on the JS fallback path for now.
15
+
16
+ ## 2.1.0
17
+
18
+ - Added partition export helpers for single-partition and multi-partition exports with `tar.gz` as the default format and `.zip` as an alternate format.
19
+ - Added export convenience methods on live logger instances that flush pending writes before archiving.
20
+ - Added export archives with a shared `manifest.json` while preserving raw exported log files byte-for-byte under `logs/<partition>/...`.
21
+ - Added a Rust native storage backend for partition scanning and archive creation, plus a JS fallback backend and Bun-safe native fallback behavior.
22
+ - Added platform-specific native binary loading so one `@trebired/logger` package can bundle prebuilt Linux and macOS `.node` files under `native/` and select the right binary at runtime.
23
+ - Reused the new storage scan backend for partition info totals so large partition summaries can share the same native/JS seam as export.
24
+ - Changed error console output to keep pretty log headers while emitting a plain `path:line:column` location line and raw stack frames for better terminal and IDE navigation.
25
+
7
26
  ## 2.0.0
8
27
 
9
28
  - Added `@trebired/logger/browser` for framework-neutral browser logging with the same levels, metadata conventions, grouping rules, and scoped logger behavior as the server logger.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @trebired/logger
2
2
 
3
- Structured logging for server and browser applications that want one event model, readable console output, and durable local logs without running a separate logging stack.
3
+ Local-first JSONL logger with human-browsable group folders, durable writes, retention, redaction, query helpers, and more.
4
4
 
5
5
  `@trebired/logger` writes JSONL logs into group-based folders on the server, supports optional partitioned storage, and now ships a framework-neutral browser runtime with an optional React adapter on top.
6
6
 
@@ -8,6 +8,19 @@ Structured logging for server and browser applications that want one event model
8
8
 
9
9
  Runtime support: Bun 1+ and Node.js 18+.
10
10
 
11
+ The package can use bundled native binaries for supported Linux and macOS targets to speed up large storage/export workloads. Consumers still install a single package:
12
+
13
+ ```txt
14
+ @trebired/logger
15
+ dist/
16
+ native/
17
+ linux-x64-gnu.node
18
+ darwin-arm64.node
19
+ darwin-x64.node
20
+ ```
21
+
22
+ At runtime the JS wrapper selects the matching `.node` file when one is bundled for the current platform, and falls back to the built-in JS backend otherwise. Bundled native binaries are currently published for Linux GNU and macOS targets. End users do not need Rust installed.
23
+
11
24
  ```sh
12
25
  npm install @trebired/logger
13
26
  ```
@@ -535,6 +548,6 @@ bun run typecheck
535
548
  bun run build
536
549
  ```
537
550
 
538
- `bun run demo` starts a small dummy system that keeps logging until interrupted. It exercises grouped and scoped loggers, custom levels, redaction, request middleware, live stream events, local querying, and write stats. It writes throwaway logs under the OS temp directory, such as `/tmp/@trebired-logger/dummy` on Linux and macOS. Microslop Windows is not supported.
551
+ `bun run demo` starts a small dummy system that keeps logging until interrupted. It exercises grouped and scoped loggers, custom levels, redaction, request middleware, live stream events, local querying, and write stats. It writes throwaway logs into the repo under `.demo-logs/dummy`. Microslop Windows is not supported.
539
552
 
540
553
  The npm package exports compiled files from `dist`. Publishing runs `typecheck`, tests, and `build` through `prepublishOnly`.
@@ -1 +1 @@
1
- {"version":3,"file":"create_log.d.ts","sourceRoot":"","sources":["../../src/core/create_log.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAYjE,iBAAS,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,WAAW,CAkJ9D;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"create_log.d.ts","sourceRoot":"","sources":["../../src/core/create_log.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAYjE,iBAAS,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,WAAW,CAgK9D;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -5,6 +5,7 @@ import { normalizeConsoleOptions } from "../format/options.js";
5
5
  import { normalizeLevels } from "../levels/index.js";
6
6
  import { buildRequestMiddleware } from "../middleware/request.js";
7
7
  import { logStream } from "../stream/index.js";
8
+ import { exportPartition as exportStoredPartition, exportPartitions as exportStoredPartitions } from "../storage/export.js";
8
9
  import { normalizePartitionKey, sanitizePartitionName } from "../storage/names.js";
9
10
  import { getPartitionInfo as getStoredPartitionInfo, listPartitions as listStoredPartitions, mergePartition, renamePartition, touchPartitionMarkerSync, } from "../storage/partitions.js";
10
11
  import { getLogsForDir } from "../storage/query.js";
@@ -130,6 +131,21 @@ function createLog(options = {}) {
130
131
  async listPartitions() {
131
132
  return listStoredPartitions(writer.getDir());
132
133
  },
134
+ async exportPartition(partitionOrOptions, maybeOptions) {
135
+ await writer.flush();
136
+ const hasPartitionArg = typeof partitionOrOptions === "string";
137
+ const partition = hasPartitionArg ? sanitizePartitionName(partitionOrOptions) : activePartition;
138
+ const options = (hasPartitionArg
139
+ ? maybeOptions
140
+ : (partitionOrOptions && typeof partitionOrOptions === "object" ? partitionOrOptions : maybeOptions)) || {};
141
+ if (!partition)
142
+ throw new Error("partition-not-set");
143
+ return exportStoredPartition(writer.getDir(), partition, options);
144
+ },
145
+ async exportPartitions(options) {
146
+ await writer.flush();
147
+ return exportStoredPartitions(writer.getDir(), options || {});
148
+ },
133
149
  async getPartitionInfo(partition) {
134
150
  const target = partition == null ? activePartition : sanitizePartitionName(partition);
135
151
  if (!target)
@@ -1 +1 @@
1
- {"version":3,"file":"create_log.js","sourceRoot":"","sources":["../../src/core/create_log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create_log.js","sourceRoot":"","sources":["../../src/core/create_log.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/format/console.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAGrG,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAmBvD,iBAAS,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoBhI;AAED,iBAAS,YAAY,CAAC,UAAU,EAAE,aAAa,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAO/E;AAED,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/format/console.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAGrG,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AA4CvD,iBAAS,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA+BhI;AAED,iBAAS,YAAY,CAAC,UAAU,EAAE,aAAa,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAO/E;AAED,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,YAAY,EAAE,CAAC"}
@@ -17,6 +17,30 @@ function color(options, hex, value, bold = false) {
17
17
  return text;
18
18
  return `${hexToAnsi(hex || "", bold)}${text}\x1b[0m`;
19
19
  }
20
+ function inlineMetadata(entry, includeStack) {
21
+ const metadata = entry.metadata;
22
+ if (!metadata || !Object.keys(metadata).length)
23
+ return null;
24
+ if (includeStack || !Object.prototype.hasOwnProperty.call(metadata, "stack"))
25
+ return metadata;
26
+ const trimmed = { ...metadata };
27
+ delete trimmed.stack;
28
+ return Object.keys(trimmed).length ? trimmed : null;
29
+ }
30
+ function extractStackLocation(stackText) {
31
+ for (const rawLine of String(stackText).split(/\r?\n/)) {
32
+ const line = rawLine.trim();
33
+ if (!line)
34
+ continue;
35
+ const parenMatch = line.match(/\(([^()]+:\d+:\d+)\)\s*$/);
36
+ if (parenMatch)
37
+ return parenMatch[1];
38
+ const directMatch = line.match(/^at\s+([^()]+:\d+:\d+)\s*$/);
39
+ if (directMatch)
40
+ return directMatch[1].trim();
41
+ }
42
+ return "";
43
+ }
20
44
  function formatConsole(entry, levelConfig, options, timeZone) {
21
45
  const levelText = color(options, levelConfig.color || "#ffffff", levelConfig.label || entry.level.toUpperCase(), levelConfig.bold === true);
22
46
  const bracketParts = [levelText];
@@ -27,11 +51,21 @@ function formatConsole(entry, levelConfig, options, timeZone) {
27
51
  const when = color(options, "#8e8e8e", `|${formatDisplayTimestamp(entry.recorded_at, options.locale, timeZone)}|`);
28
52
  line = `${when} ${line}`;
29
53
  }
30
- if (options.metadata && entry.metadata && Object.keys(entry.metadata).length) {
31
- line += ` ${color(options, "#5c5c5c", JSON.stringify(entry.metadata))}`;
54
+ const stackText = levelConfig.showStack === true && entry.metadata && entry.metadata.stack
55
+ ? String(entry.metadata.stack)
56
+ : "";
57
+ const metadata = options.metadata
58
+ ? inlineMetadata(entry, !stackText)
59
+ : null;
60
+ if (metadata) {
61
+ line += ` ${color(options, "#5c5c5c", JSON.stringify(metadata))}`;
62
+ }
63
+ if (stackText) {
64
+ const location = extractStackLocation(stackText);
65
+ if (location)
66
+ line += `\n${location}`;
67
+ line += `\n${stackText}`;
32
68
  }
33
- if (levelConfig.showStack === true && entry.metadata && entry.metadata.stack)
34
- line += `\n${String(entry.metadata.stack)}`;
35
69
  return line;
36
70
  }
37
71
  function writeConsole(streamName, line) {
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/format/console.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/format/console.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,7 +3,8 @@ export { createLog } from "./core/create_log.js";
3
3
  export { normalizeLevels } from "./levels/index.js";
4
4
  export { buildPartitionName, buildTemporaryPartitionName, formatPartitionTimePrefix, sanitizePartitionName, } from "./storage/names.js";
5
5
  export { copyPartition, createPartition, deleteLogs, deletePartition, deletePartitions, getPartitionInfo, listPartitions, mergePartition, movePartition, renamePartition, } from "./storage/partitions.js";
6
+ export { exportPartition, exportPartitions } from "./storage/export.js";
6
7
  export { getLogsForDir } from "./storage/query.js";
7
8
  export { logStream } from "./stream/index.js";
8
- export type { BrowserLogStreamContext, ConsoleOptions, CopyPartitionOptions, CreatePartitionOptions, CreateLogOptions, DeleteLogFileSummary, DeleteLogsOptions, DeleteLogsResult, DeletePartitionResult, DeletePartitionsOptions, LogEntry, LogInstance, LogLevelConfig, LogOrigin, LogQueryOptions, LogQueryResult, LogQueryTotals, LogPartitionTotals, LogPartitionSummary, LogStats, LogStreamContext, LogStreamHandler, LogStreamName, MergePartitionOptions, MovePartitionOptions, PartitionInfo, PartitionNameOptions, PartitionSanitizeOptions, PartitionSanitizer, PartitionTimeValue, PartitionTotals, PromotePartitionOptions, RedactOptions, RedactTransformArgs, RenamePartitionOptions, RequestLoggerOptions, RetentionOptions, ServerLogStreamContext, SetPartitionOptions, WriteOptions, } from "./types.js";
9
+ export type { BrowserLogStreamContext, ConsoleOptions, CopyPartitionOptions, CreatePartitionOptions, CreateLogOptions, DeleteLogFileSummary, DeleteLogsOptions, DeleteLogsResult, DeletePartitionResult, DeletePartitionsOptions, ExportFormat, ExportManifest, ExportManifestFile, ExportManifestPartition, ExportPartitionOptions, ExportPartitionsOptions, ExportResult, LogEntry, LogInstance, LogLevelConfig, LogOrigin, LogQueryOptions, LogQueryResult, LogQueryTotals, LogPartitionTotals, LogPartitionSummary, LogStats, LogStreamContext, LogStreamHandler, LogStreamName, MergePartitionOptions, MovePartitionOptions, PartitionInfo, PartitionNameOptions, PartitionSanitizeOptions, PartitionSanitizer, PartitionTimeValue, PartitionTotals, PromotePartitionOptions, RedactOptions, RedactTransformArgs, RenamePartitionOptions, RequestLoggerOptions, RetentionOptions, ServerLogStreamContext, SetPartitionOptions, WriteOptions, } from "./types.js";
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,kBAAkB,EAClB,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,eAAe,EACf,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,aAAa,EACb,eAAe,GAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,YAAY,EACV,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,QAAQ,EACR,WAAW,EACX,cAAc,EACd,SAAS,EACT,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,YAAY,GACb,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,kBAAkB,EAClB,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,eAAe,EACf,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,aAAa,EACb,eAAe,GAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,YAAY,EACV,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,cAAc,EACd,SAAS,EACT,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,YAAY,GACb,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ export { createLog } from "./core/create_log.js";
3
3
  export { normalizeLevels } from "./levels/index.js";
4
4
  export { buildPartitionName, buildTemporaryPartitionName, formatPartitionTimePrefix, sanitizePartitionName, } from "./storage/names.js";
5
5
  export { copyPartition, createPartition, deleteLogs, deletePartition, deletePartitions, getPartitionInfo, listPartitions, mergePartition, movePartition, renamePartition, } from "./storage/partitions.js";
6
+ export { exportPartition, exportPartitions } from "./storage/export.js";
6
7
  export { getLogsForDir } from "./storage/query.js";
7
8
  export { logStream } from "./stream/index.js";
8
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,kBAAkB,EAClB,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,eAAe,EACf,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,aAAa,EACb,eAAe,GAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACL,kBAAkB,EAClB,2BAA2B,EAC3B,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,eAAe,EACf,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,aAAa,EACb,eAAe,GAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { StorageBackend, StorageBackendName } from "./types.js";
2
+ declare function setStorageBackendPreferenceForTests(value: StorageBackendName | null): void;
3
+ declare function getStorageBackend(): StorageBackend;
4
+ export { getStorageBackend, setStorageBackendPreferenceForTests };
5
+ export type { StorageBackendName, StorageScanSnapshot } from "./types.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/backend/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIrE,iBAAS,mCAAmC,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAEnF;AAED,iBAAS,iBAAiB,IAAI,cAAc,CAQ3C;AAED,OAAO,EAAE,iBAAiB,EAAE,mCAAmC,EAAE,CAAC;AAClE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { jsStorageBackend } from "./js.js";
2
+ import { nativeStorageBackend } from "./native.js";
3
+ let preferredBackend = null;
4
+ function setStorageBackendPreferenceForTests(value) {
5
+ preferredBackend = value;
6
+ }
7
+ function getStorageBackend() {
8
+ const native = nativeStorageBackend();
9
+ if (preferredBackend === "native") {
10
+ if (!native)
11
+ throw new Error("native-storage-backend-unavailable");
12
+ return native;
13
+ }
14
+ if (preferredBackend === "js")
15
+ return jsStorageBackend;
16
+ return native || jsStorageBackend;
17
+ }
18
+ export { getStorageBackend, setStorageBackendPreferenceForTests };
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/backend/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGnD,IAAI,gBAAgB,GAA8B,IAAI,CAAC;AAEvD,SAAS,mCAAmC,CAAC,KAAgC;IAC3E,gBAAgB,GAAG,KAAK,CAAC;AAC3B,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,IAAI,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACnE,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,gBAAgB,KAAK,IAAI;QAAE,OAAO,gBAAgB,CAAC;IACvD,OAAO,MAAM,IAAI,gBAAgB,CAAC;AACpC,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,mCAAmC,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { StorageBackend } from "./types.js";
2
+ declare const jsStorageBackend: StorageBackend;
3
+ export { jsStorageBackend };
4
+ //# sourceMappingURL=js.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js.d.ts","sourceRoot":"","sources":["../../../src/storage/backend/js.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAsB,cAAc,EAA8D,MAAM,YAAY,CAAC;AAoLjI,QAAA,MAAM,gBAAgB,EAAE,cAIvB,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,179 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { finished } from "node:stream/promises";
4
+ import zlib from "node:zlib";
5
+ import { zipSync, strToU8 } from "fflate";
6
+ import tar from "tar-stream";
7
+ import { PARTITION_MARKER_FILE } from "../../constants.js";
8
+ import { walkedFileFromPath } from "../names.js";
9
+ import { readPartitionMarkerFromRoot } from "../partitions/markers.js";
10
+ import { resolveDir } from "../partitions/internal.js";
11
+ function countRows(text) {
12
+ if (!text.trim())
13
+ return 0;
14
+ return text
15
+ .split("\n")
16
+ .map((line) => line.trim())
17
+ .filter(Boolean)
18
+ .length;
19
+ }
20
+ async function countRowsInFile(filePath, compressed) {
21
+ const data = await fs.promises.readFile(filePath);
22
+ const text = compressed ? zlib.gunzipSync(data).toString("utf8") : data.toString("utf8");
23
+ return countRows(text);
24
+ }
25
+ async function collectPartitionFiles(baseDir, partition) {
26
+ const rootDir = path.join(baseDir, partition);
27
+ const out = [];
28
+ const stack = [rootDir];
29
+ while (stack.length) {
30
+ const current = stack.pop() || "";
31
+ let entries = [];
32
+ try {
33
+ entries = await fs.promises.readdir(current, { withFileTypes: true });
34
+ }
35
+ catch {
36
+ continue;
37
+ }
38
+ for (const entry of entries) {
39
+ const absPath = path.join(current, entry.name);
40
+ if (entry.isDirectory()) {
41
+ stack.push(absPath);
42
+ continue;
43
+ }
44
+ if (!entry.isFile() || entry.name === PARTITION_MARKER_FILE)
45
+ continue;
46
+ const walked = walkedFileFromPath(rootDir, absPath, partition, rootDir);
47
+ if (walked)
48
+ out.push(walked);
49
+ }
50
+ }
51
+ return out.sort((a, b) => a.absPath.localeCompare(b.absPath));
52
+ }
53
+ async function scanPartition(baseDir, partition) {
54
+ const rootDir = path.join(baseDir, partition);
55
+ const marker = await readPartitionMarkerFromRoot(rootDir, partition);
56
+ if (!marker)
57
+ throw new Error(`partition-not-found: ${partition}`);
58
+ const walked = await collectPartitionFiles(baseDir, partition);
59
+ const files = [];
60
+ const dirs = new Set();
61
+ let bytes = 0;
62
+ let logs = 0;
63
+ let lastActivityMs = 0;
64
+ for (const file of walked) {
65
+ let stat;
66
+ try {
67
+ stat = await fs.promises.stat(file.absPath);
68
+ }
69
+ catch {
70
+ continue;
71
+ }
72
+ const rows = await countRowsInFile(file.absPath, file.compressed);
73
+ files.push({
74
+ absPath: file.absPath,
75
+ path: path.posix.join(partition, file.groupDir ? file.groupDir.split(path.sep).join(path.posix.sep) : "", path.basename(file.absPath)),
76
+ partition,
77
+ groupKey: file.groupKey,
78
+ day: file.day,
79
+ hour: file.hour,
80
+ level: file.level,
81
+ compressed: file.compressed,
82
+ bytes: stat.size,
83
+ rows,
84
+ });
85
+ dirs.add(file.groupDir || ".");
86
+ bytes += stat.size;
87
+ logs += rows;
88
+ if (stat.mtimeMs > lastActivityMs)
89
+ lastActivityMs = stat.mtimeMs;
90
+ }
91
+ return {
92
+ files,
93
+ item: {
94
+ name: partition,
95
+ total: {
96
+ logs,
97
+ dirs: dirs.size,
98
+ files: files.length,
99
+ bytes,
100
+ },
101
+ lastActivityAt: lastActivityMs > 0 ? new Date(lastActivityMs).toISOString() : null,
102
+ },
103
+ };
104
+ }
105
+ async function scanPartitions(dir, partitions) {
106
+ const baseDir = resolveDir(dir);
107
+ if (!baseDir)
108
+ throw new Error("missing-log-dir");
109
+ const names = Array.from(new Set(partitions)).sort((a, b) => a.localeCompare(b));
110
+ const partitionItems = [];
111
+ let files = [];
112
+ for (const partition of names) {
113
+ const scanned = await scanPartition(baseDir, partition);
114
+ partitionItems.push(scanned.item);
115
+ files = files.concat(scanned.files);
116
+ }
117
+ files.sort((a, b) => a.path.localeCompare(b.path));
118
+ return {
119
+ partitions: partitionItems,
120
+ files,
121
+ total: {
122
+ partitions: partitionItems.length,
123
+ files: files.length,
124
+ logs: files.reduce((sum, file) => sum + file.rows, 0),
125
+ bytes: files.reduce((sum, file) => sum + file.bytes, 0),
126
+ },
127
+ };
128
+ }
129
+ async function writeZipArchive(input) {
130
+ const entries = {};
131
+ const items = [
132
+ ...input.generatedFiles.map((item) => ({ archivePath: item.archivePath, buffer: strToU8(item.content) })),
133
+ ...await Promise.all(input.sourceFiles.map(async (item) => ({
134
+ archivePath: item.archivePath,
135
+ buffer: new Uint8Array(await fs.promises.readFile(item.sourcePath)),
136
+ }))),
137
+ ].sort((a, b) => a.archivePath.localeCompare(b.archivePath));
138
+ for (const item of items)
139
+ entries[path.posix.join(input.rootName, item.archivePath)] = item.buffer;
140
+ const zipped = zipSync(entries, { level: 6 });
141
+ await fs.promises.writeFile(input.outputPath, Buffer.from(zipped));
142
+ }
143
+ async function writeTarGzArchive(input) {
144
+ const pack = tar.pack();
145
+ const gzip = zlib.createGzip({ level: 9 });
146
+ const target = fs.createWriteStream(input.outputPath);
147
+ pack.pipe(gzip).pipe(target);
148
+ const items = [
149
+ ...input.generatedFiles.map((item) => ({ archivePath: item.archivePath, buffer: Buffer.from(item.content, "utf8") })),
150
+ ...await Promise.all(input.sourceFiles.map(async (item) => ({
151
+ archivePath: item.archivePath,
152
+ buffer: await fs.promises.readFile(item.sourcePath),
153
+ }))),
154
+ ].sort((a, b) => a.archivePath.localeCompare(b.archivePath));
155
+ for (const item of items) {
156
+ await new Promise((resolve, reject) => {
157
+ pack.entry({ name: path.posix.join(input.rootName, item.archivePath), size: item.buffer.length, mode: 0o644 }, item.buffer, (error) => (error ? reject(error) : resolve()));
158
+ });
159
+ }
160
+ pack.finalize();
161
+ await finished(target);
162
+ }
163
+ async function createArchive(input) {
164
+ await fs.promises.mkdir(path.dirname(input.outputPath), { recursive: true });
165
+ if (input.overwrite)
166
+ await fs.promises.rm(input.outputPath, { force: true });
167
+ if (input.format === "zip") {
168
+ await writeZipArchive(input);
169
+ return;
170
+ }
171
+ await writeTarGzArchive(input);
172
+ }
173
+ const jsStorageBackend = {
174
+ name: "js",
175
+ scanPartitions,
176
+ createArchive,
177
+ };
178
+ export { jsStorageBackend };
179
+ //# sourceMappingURL=js.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js.js","sourceRoot":"","sources":["../../../src/storage/backend/js.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { StorageBackend } from "./types.js";
2
+ declare function nativeBinaryBasenameForCurrentPlatform(): string | null;
3
+ declare function nativeAddonCandidatePathsForCurrentPlatform(): string[];
4
+ declare function nativeStorageBackend(): StorageBackend | null;
5
+ export { nativeAddonCandidatePathsForCurrentPlatform, nativeBinaryBasenameForCurrentPlatform, nativeStorageBackend, };
6
+ //# sourceMappingURL=native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/storage/backend/native.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAsB,cAAc,EAAuB,MAAM,YAAY,CAAC;AAiB1F,iBAAS,sCAAsC,IAAI,MAAM,GAAG,IAAI,CAa/D;AAED,iBAAS,2CAA2C,IAAI,MAAM,EAAE,CAgB/D;AA4BD,iBAAS,oBAAoB,IAAI,cAAc,GAAG,IAAI,CAarD;AAED,OAAO,EACL,2CAA2C,EAC3C,sCAAsC,EACtC,oBAAoB,GACrB,CAAC"}
@@ -0,0 +1,89 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { createRequire } from "node:module";
4
+ import { fileURLToPath } from "node:url";
5
+ let cachedBinding;
6
+ function linuxLibcVariant() {
7
+ const report = typeof process.report?.getReport === "function" ? process.report.getReport() : null;
8
+ const header = report && typeof report === "object" ? report.header : null;
9
+ if (header?.glibcVersionRuntime)
10
+ return "gnu";
11
+ if (fs.existsSync("/etc/alpine-release"))
12
+ return "musl";
13
+ return "gnu";
14
+ }
15
+ function nativeBinaryBasenameForCurrentPlatform() {
16
+ if (process.platform === "linux") {
17
+ const libc = linuxLibcVariant();
18
+ if (process.arch === "x64")
19
+ return `linux-x64-${libc}.node`;
20
+ if (process.arch === "arm64")
21
+ return `linux-arm64-${libc}.node`;
22
+ return null;
23
+ }
24
+ if (process.platform === "darwin") {
25
+ if (process.arch === "x64")
26
+ return "darwin-x64.node";
27
+ if (process.arch === "arm64")
28
+ return "darwin-arm64.node";
29
+ return null;
30
+ }
31
+ return null;
32
+ }
33
+ function nativeAddonCandidatePathsForCurrentPlatform() {
34
+ const currentDir = path.dirname(fileURLToPath(import.meta.url));
35
+ const binaryName = nativeBinaryBasenameForCurrentPlatform();
36
+ const envOverride = process.env.TREBIRED_LOGGER_NATIVE_BINARY
37
+ ? path.resolve(process.env.TREBIRED_LOGGER_NATIVE_BINARY)
38
+ : "";
39
+ return [
40
+ envOverride,
41
+ binaryName ? path.resolve(currentDir, "../../../native", binaryName) : "",
42
+ binaryName ? path.resolve(process.cwd(), "native", binaryName) : "",
43
+ path.resolve(currentDir, "../../../native/index.node"),
44
+ path.resolve(process.cwd(), "native/index.node"),
45
+ path.resolve(currentDir, "../../../native/logger-native/index.node"),
46
+ path.resolve(process.cwd(), "native/logger-native/index.node"),
47
+ ].filter(Boolean);
48
+ }
49
+ function loadBinding() {
50
+ if (cachedBinding)
51
+ return cachedBinding;
52
+ if (process.env.TREBIRED_LOGGER_DISABLE_NATIVE === "1") {
53
+ cachedBinding = null;
54
+ return cachedBinding;
55
+ }
56
+ if (typeof Bun !== "undefined" && process.env.TREBIRED_LOGGER_ENABLE_BUN_NATIVE !== "1") {
57
+ cachedBinding = null;
58
+ return cachedBinding;
59
+ }
60
+ const require = createRequire(import.meta.url);
61
+ const candidates = nativeAddonCandidatePathsForCurrentPlatform();
62
+ for (const candidate of candidates) {
63
+ if (!fs.existsSync(candidate))
64
+ continue;
65
+ try {
66
+ cachedBinding = require(candidate);
67
+ return cachedBinding;
68
+ }
69
+ catch { }
70
+ }
71
+ cachedBinding = null;
72
+ return cachedBinding;
73
+ }
74
+ function nativeStorageBackend() {
75
+ const binding = loadBinding();
76
+ if (!binding)
77
+ return null;
78
+ return {
79
+ name: "native",
80
+ async scanPartitions(dir, partitions) {
81
+ return JSON.parse(binding.scanPartitions(dir, partitions));
82
+ },
83
+ async createArchive(input) {
84
+ binding.createArchive(JSON.stringify(input));
85
+ },
86
+ };
87
+ }
88
+ export { nativeAddonCandidatePathsForCurrentPlatform, nativeBinaryBasenameForCurrentPlatform, nativeStorageBackend, };
89
+ //# sourceMappingURL=native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native.js","sourceRoot":"","sources":["../../../src/storage/backend/native.ts"],"names":[],"mappings":"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"}