feat(db): mesh data model — meshes, members, invites, audit log
- pgSchema "mesh" with 4 tables isolating the peer mesh domain - Enums: visibility, transport, tier, role - audit_log is metadata-only (E2E encryption enforced at broker/client) - Cascade on mesh delete, soft-delete via archivedAt/revokedAt Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
1
packages/shared/src/logger/index.ts
Normal file
1
packages/shared/src/logger/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * from "./providers/console";
|
||||
8
packages/shared/src/logger/providers/console.ts
Normal file
8
packages/shared/src/logger/providers/console.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
import type { Logger } from "../types";
|
||||
|
||||
export const logger: Logger = {
|
||||
info: console.info,
|
||||
error: console.error,
|
||||
warn: console.warn,
|
||||
debug: console.debug,
|
||||
};
|
||||
15
packages/shared/src/logger/providers/pino.ts
Normal file
15
packages/shared/src/logger/providers/pino.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
/* eslint-disable no-restricted-properties */
|
||||
import pino from "pino";
|
||||
|
||||
import type { Logger } from "../types";
|
||||
|
||||
export const logger: Logger = pino({
|
||||
browser: {
|
||||
asObject: true,
|
||||
},
|
||||
level: "debug",
|
||||
base: {
|
||||
env: process.env.NODE_ENV,
|
||||
},
|
||||
errorKey: "error",
|
||||
});
|
||||
12
packages/shared/src/logger/types.ts
Normal file
12
packages/shared/src/logger/types.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
interface LogFn {
|
||||
<T extends object>(obj: T, msg?: string, ...args: unknown[]): void;
|
||||
(obj: unknown, msg?: string, ...args: unknown[]): void;
|
||||
(msg: string, ...args: unknown[]): void;
|
||||
}
|
||||
|
||||
export interface Logger {
|
||||
info: LogFn;
|
||||
error: LogFn;
|
||||
warn: LogFn;
|
||||
debug: LogFn;
|
||||
}
|
||||
Reference in New Issue
Block a user