@excitedjs/feishu-transport 0.1.0 → 0.2.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.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/transport/diagnostics.d.ts +86 -0
- package/dist/transport/diagnostics.d.ts.map +1 -0
- package/dist/transport/diagnostics.js +112 -0
- package/dist/transport/diagnostics.js.map +1 -0
- package/dist/transport/feishu.d.ts +14 -0
- package/dist/transport/feishu.d.ts.map +1 -1
- package/dist/transport/feishu.js +24 -37
- package/dist/transport/feishu.js.map +1 -1
- package/package.json +5 -2
package/dist/index.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export { gate, isBotMentioned, pruneExpiredPending, isBotSenderType, isGroupAuth
|
|
|
20
20
|
export { generatePairingCode, PAIRING_CODE_BYTES, PAIRING_CODE_LENGTH, } from './policy/pairing.js';
|
|
21
21
|
export { renderMarkdownToCards, cardToContent, cardContentBytes, splitMarkdownByBytes, FEISHU_CARD_REQUEST_LIMIT_BYTES, FEISHU_CARD_ELEMENT_HARD_CAP, CELL_MAX_BYTES, type RenderedCard, } from './render/render.js';
|
|
22
22
|
export { createFeishuTransport, commentFromBatchQuery, textMessageContent, FEISHU_CARD_CONTENT_SAFE_BYTES, type FeishuTransport, type FeishuCredentials, type FeishuTransportOptions, type FeishuSendResult, type FeishuDocComment, type FeishuDocCommentReply, type FeishuDocMeta, type InboundRoutes, type RouteHandler, } from './transport/feishu.js';
|
|
23
|
+
export type { TransportLogger } from './transport/diagnostics.js';
|
|
23
24
|
export { isRecord, asString } from './json.js';
|
|
24
25
|
/**
|
|
25
26
|
* Package marker — a stable export the channel layer can import to assert the
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,YAAY,EACV,MAAM,EACN,QAAQ,EACR,WAAW,EACX,UAAU,EACV,YAAY,EACZ,OAAO,GACR,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAG7D,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,KAAK,yBAAyB,GAC/B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACL,IAAI,EACJ,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,+BAA+B,EAC/B,4BAA4B,EAC5B,cAAc,EACd,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,8BAA8B,EAC9B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,YAAY,EACV,MAAM,EACN,QAAQ,EACR,WAAW,EACX,UAAU,EACV,YAAY,EACZ,OAAO,GACR,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,YAAY,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAG7D,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,KAAK,yBAAyB,GAC/B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACL,IAAI,EACJ,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,+BAA+B,EAC/B,4BAA4B,EAC5B,cAAc,EACd,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,8BAA8B,EAC9B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGjE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAE9C;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,gCAAgC,CAAA"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAeH,0EAA0E;AAC1E,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,eAAe,GAIhB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,GAE5B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,oBAAoB,CAAA;AAE3B,6CAA6C;AAC7C,OAAO,EACL,IAAI,EACJ,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,cAAc,GAGf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAA;AAE5B,iFAAiF;AACjF,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,+BAA+B,EAC/B,4BAA4B,EAC5B,cAAc,GAEf,MAAM,oBAAoB,CAAA;AAE3B,sEAAsE;AACtE,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,8BAA8B,GAU/B,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAeH,0EAA0E;AAC1E,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,eAAe,GAIhB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,GAE5B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,oBAAoB,CAAA;AAE3B,6CAA6C;AAC7C,OAAO,EACL,IAAI,EACJ,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,cAAc,GAGf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAA;AAE5B,iFAAiF;AACjF,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,+BAA+B,EAC/B,4BAA4B,EAC5B,cAAc,GAEf,MAAM,oBAAoB,CAAA;AAE3B,sEAAsE;AACtE,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,8BAA8B,GAU/B,MAAM,uBAAuB,CAAA;AAG9B,0BAA0B;AAC1B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAE9C;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,6BAA6B,CAAA"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transport-owned diagnostics, behind one injectable logger seam.
|
|
3
|
+
*
|
|
4
|
+
* Every line the transport emits about its own health — the Lark SDK's logging,
|
|
5
|
+
* the WebSocket connection lifecycle, and the best-effort failures of the
|
|
6
|
+
* doc-comment / metadata / bot-info / socket-close paths — flows through the
|
|
7
|
+
* single `TransportLogger` a host may inject via `FeishuTransportOptions.logger`.
|
|
8
|
+
*
|
|
9
|
+
* Two design rules hold this module together:
|
|
10
|
+
*
|
|
11
|
+
* - **Instance-level, never a mutable global.** `createTransportDiagnostics`
|
|
12
|
+
* is called once per `createFeishuTransport`, so each transport instance
|
|
13
|
+
* derives its own SDK logger and connection/diagnostic sinks. Multiple
|
|
14
|
+
* dispatchers in one process never cross-write each other's logs.
|
|
15
|
+
* - **Byte-for-byte default.** With no injected logger the transport keeps
|
|
16
|
+
* exactly its historical stderr behavior: the `[feishu-sdk]` prefix on SDK
|
|
17
|
+
* lines, the `[feishu-transport] <ISO> <line>` connection lines, the
|
|
18
|
+
* `[feishu-transport] <message>` best-effort diagnostics — all to stderr via
|
|
19
|
+
* `console.error`, and never a byte to stdout (a host on an MCP stdio
|
|
20
|
+
* transport reserves stdout for the JSON-RPC stream).
|
|
21
|
+
*
|
|
22
|
+
* Safety boundary: the injected-logger path only ever forwards what the stderr
|
|
23
|
+
* path already surfaces — SDK diagnostic args, connection-lifecycle wording, and
|
|
24
|
+
* the ids/error already present in a best-effort failure. It never attaches
|
|
25
|
+
* `appSecret`, raw events, `rawContent`, parsed text, or reply/card bodies as
|
|
26
|
+
* structured fields, so routing into a host's channel log neither widens the
|
|
27
|
+
* secret/body exposure nor pollutes stdout.
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* A minimal, structured logger a host can inject so the transport's own
|
|
31
|
+
* diagnostics join the host's per-component log. Defined inside this package so
|
|
32
|
+
* the transport never reverse-depends on a host's logger (dreamux's pino, etc.);
|
|
33
|
+
* a host adapts its logger to this shape. Every method takes a message and
|
|
34
|
+
* optional structured `fields`; a pino-style `(fields, msg)` logger adapts in
|
|
35
|
+
* one line.
|
|
36
|
+
*/
|
|
37
|
+
export interface TransportLogger {
|
|
38
|
+
error(message: string, fields?: Record<string, unknown>): void;
|
|
39
|
+
warn(message: string, fields?: Record<string, unknown>): void;
|
|
40
|
+
info(message: string, fields?: Record<string, unknown>): void;
|
|
41
|
+
debug(message: string, fields?: Record<string, unknown>): void;
|
|
42
|
+
trace(message: string, fields?: Record<string, unknown>): void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The Lark SDK's logger shape: five levels, each variadic. `lark.Client`,
|
|
46
|
+
* `lark.EventDispatcher`, and `lark.WSClient` all accept this. The transport
|
|
47
|
+
* derives one of these per instance and hands the *same* object to all three.
|
|
48
|
+
*/
|
|
49
|
+
export interface SdkLogger {
|
|
50
|
+
error(...msg: unknown[]): void;
|
|
51
|
+
warn(...msg: unknown[]): void;
|
|
52
|
+
info(...msg: unknown[]): void;
|
|
53
|
+
debug(...msg: unknown[]): void;
|
|
54
|
+
trace(...msg: unknown[]): void;
|
|
55
|
+
}
|
|
56
|
+
/** Levels a connection-lifecycle line is routed at on the injected path. */
|
|
57
|
+
type ConnectionLevel = 'info' | 'error';
|
|
58
|
+
/**
|
|
59
|
+
* Per-instance diagnostics sinks `createFeishuTransport` wires its SDK clients
|
|
60
|
+
* and its own failure paths into.
|
|
61
|
+
*/
|
|
62
|
+
export interface TransportDiagnostics {
|
|
63
|
+
/** The Lark SDK logger — pass to `Client` / `EventDispatcher` / `WSClient`. */
|
|
64
|
+
readonly sdkLogger: SdkLogger;
|
|
65
|
+
/**
|
|
66
|
+
* A WebSocket connection-lifecycle line. Default path: stderr with an ISO
|
|
67
|
+
* timestamp. Injected path: routed at `level` (default `info`; failures pass
|
|
68
|
+
* `error`) with the host's own timestamp.
|
|
69
|
+
*/
|
|
70
|
+
connection(line: string, level?: ConnectionLevel): void;
|
|
71
|
+
/**
|
|
72
|
+
* A best-effort failure the transport degrades past (doc-comment / metadata
|
|
73
|
+
* fetch, bot-info resolution, socket close). Default path: stderr, with `err`
|
|
74
|
+
* passed as a trailing `console.error` arg so its stack still prints. Injected
|
|
75
|
+
* path: routed at `warn` with `err` serialized into a structured field.
|
|
76
|
+
*/
|
|
77
|
+
diagnostic(message: string, err?: unknown): void;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Build the per-instance diagnostics for a transport. With no `logger` the
|
|
81
|
+
* returned sinks reproduce the historical stderr behavior byte-for-byte; with a
|
|
82
|
+
* `logger` they route structured into it.
|
|
83
|
+
*/
|
|
84
|
+
export declare function createTransportDiagnostics(logger?: TransportLogger): TransportDiagnostics;
|
|
85
|
+
export {};
|
|
86
|
+
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/transport/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC7D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC7D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC9D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAC/D;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC9B,IAAI,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC7B,IAAI,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC7B,KAAK,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAC9B,KAAK,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;CAC/B;AAED,4EAA4E;AAC5E,KAAK,eAAe,GAAG,MAAM,GAAG,OAAO,CAAA;AAEvC;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAC7B;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IACvD;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CACjD;AASD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,oBAAoB,CA6CzF"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transport-owned diagnostics, behind one injectable logger seam.
|
|
3
|
+
*
|
|
4
|
+
* Every line the transport emits about its own health — the Lark SDK's logging,
|
|
5
|
+
* the WebSocket connection lifecycle, and the best-effort failures of the
|
|
6
|
+
* doc-comment / metadata / bot-info / socket-close paths — flows through the
|
|
7
|
+
* single `TransportLogger` a host may inject via `FeishuTransportOptions.logger`.
|
|
8
|
+
*
|
|
9
|
+
* Two design rules hold this module together:
|
|
10
|
+
*
|
|
11
|
+
* - **Instance-level, never a mutable global.** `createTransportDiagnostics`
|
|
12
|
+
* is called once per `createFeishuTransport`, so each transport instance
|
|
13
|
+
* derives its own SDK logger and connection/diagnostic sinks. Multiple
|
|
14
|
+
* dispatchers in one process never cross-write each other's logs.
|
|
15
|
+
* - **Byte-for-byte default.** With no injected logger the transport keeps
|
|
16
|
+
* exactly its historical stderr behavior: the `[feishu-sdk]` prefix on SDK
|
|
17
|
+
* lines, the `[feishu-transport] <ISO> <line>` connection lines, the
|
|
18
|
+
* `[feishu-transport] <message>` best-effort diagnostics — all to stderr via
|
|
19
|
+
* `console.error`, and never a byte to stdout (a host on an MCP stdio
|
|
20
|
+
* transport reserves stdout for the JSON-RPC stream).
|
|
21
|
+
*
|
|
22
|
+
* Safety boundary: the injected-logger path only ever forwards what the stderr
|
|
23
|
+
* path already surfaces — SDK diagnostic args, connection-lifecycle wording, and
|
|
24
|
+
* the ids/error already present in a best-effort failure. It never attaches
|
|
25
|
+
* `appSecret`, raw events, `rawContent`, parsed text, or reply/card bodies as
|
|
26
|
+
* structured fields, so routing into a host's channel log neither widens the
|
|
27
|
+
* secret/body exposure nor pollutes stdout.
|
|
28
|
+
*/
|
|
29
|
+
/** Source tag stamped on injected SDK lines, mirroring the stderr `[feishu-sdk]` prefix. */
|
|
30
|
+
const SDK_SOURCE = 'feishu-sdk';
|
|
31
|
+
/** Source tag stamped on injected WebSocket connection-lifecycle lines. */
|
|
32
|
+
const CONNECTION_SOURCE = 'feishu-transport-connection';
|
|
33
|
+
/** Source tag stamped on injected best-effort failure diagnostics (non-connection). */
|
|
34
|
+
const DIAGNOSTIC_SOURCE = 'feishu-transport-diagnostic';
|
|
35
|
+
/**
|
|
36
|
+
* Build the per-instance diagnostics for a transport. With no `logger` the
|
|
37
|
+
* returned sinks reproduce the historical stderr behavior byte-for-byte; with a
|
|
38
|
+
* `logger` they route structured into it.
|
|
39
|
+
*/
|
|
40
|
+
export function createTransportDiagnostics(logger) {
|
|
41
|
+
if (logger === undefined) {
|
|
42
|
+
return {
|
|
43
|
+
sdkLogger: {
|
|
44
|
+
error: (...msg) => console.error('[feishu-sdk]', ...msg),
|
|
45
|
+
warn: (...msg) => console.error('[feishu-sdk]', ...msg),
|
|
46
|
+
info: (...msg) => console.error('[feishu-sdk]', ...msg),
|
|
47
|
+
debug: (...msg) => console.error('[feishu-sdk]', ...msg),
|
|
48
|
+
trace: (...msg) => console.error('[feishu-sdk]', ...msg),
|
|
49
|
+
},
|
|
50
|
+
connection: (line) => {
|
|
51
|
+
console.error(`[feishu-transport] ${new Date().toISOString()} ${line}`);
|
|
52
|
+
},
|
|
53
|
+
diagnostic: (message, err) => {
|
|
54
|
+
if (err !== undefined)
|
|
55
|
+
console.error(`[feishu-transport] ${message}`, err);
|
|
56
|
+
else
|
|
57
|
+
console.error(`[feishu-transport] ${message}`);
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
const sdkLevel = (level) => (...msg) => logger[level](formatSdkArgs(msg), { source: SDK_SOURCE });
|
|
62
|
+
return {
|
|
63
|
+
sdkLogger: {
|
|
64
|
+
error: sdkLevel('error'),
|
|
65
|
+
warn: sdkLevel('warn'),
|
|
66
|
+
info: sdkLevel('info'),
|
|
67
|
+
debug: sdkLevel('debug'),
|
|
68
|
+
trace: sdkLevel('trace'),
|
|
69
|
+
},
|
|
70
|
+
connection: (line, level = 'info') => {
|
|
71
|
+
logger[level](line, { source: CONNECTION_SOURCE });
|
|
72
|
+
},
|
|
73
|
+
diagnostic: (message, err) => {
|
|
74
|
+
logger.warn(message, err !== undefined
|
|
75
|
+
? { source: DIAGNOSTIC_SOURCE, err: serializeErr(err) }
|
|
76
|
+
: { source: DIAGNOSTIC_SOURCE });
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Flatten the SDK's variadic log args into one message string for the injected
|
|
82
|
+
* path — the structured logger takes a single message, where the stderr path
|
|
83
|
+
* relied on `console.error`'s native multi-arg join. Errors render as their
|
|
84
|
+
* stack (or message); other non-strings are JSON-stringified, falling back to
|
|
85
|
+
* `String()` for anything circular. Only the SDK's own diagnostic args reach
|
|
86
|
+
* here — never a message body — so flattening cannot widen body exposure.
|
|
87
|
+
*/
|
|
88
|
+
function formatSdkArgs(args) {
|
|
89
|
+
return args.map(stringifyArg).join(' ');
|
|
90
|
+
}
|
|
91
|
+
function stringifyArg(arg) {
|
|
92
|
+
if (typeof arg === 'string')
|
|
93
|
+
return arg;
|
|
94
|
+
if (arg instanceof Error)
|
|
95
|
+
return arg.stack ?? arg.message;
|
|
96
|
+
try {
|
|
97
|
+
return JSON.stringify(arg);
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
return String(arg);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/** Serialize an error into a logger-safe field (message + stack when present). */
|
|
104
|
+
function serializeErr(err) {
|
|
105
|
+
if (err instanceof Error) {
|
|
106
|
+
return err.stack !== undefined
|
|
107
|
+
? { message: err.message, stack: err.stack }
|
|
108
|
+
: { message: err.message };
|
|
109
|
+
}
|
|
110
|
+
return { message: String(err) };
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/transport/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAwDH,4FAA4F;AAC5F,MAAM,UAAU,GAAG,YAAY,CAAA;AAC/B,2EAA2E;AAC3E,MAAM,iBAAiB,GAAG,6BAA6B,CAAA;AACvD,uFAAuF;AACvF,MAAM,iBAAiB,GAAG,6BAA6B,CAAA;AAEvD;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAwB;IACjE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO;YACL,SAAS,EAAE;gBACT,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC;gBACxD,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC;gBACvD,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC;gBACvD,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC;gBACxD,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC;aACzD;YACD,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;gBACnB,OAAO,CAAC,KAAK,CAAC,sBAAsB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;YACzE,CAAC;YACD,UAAU,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;gBAC3B,IAAI,GAAG,KAAK,SAAS;oBAAE,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,EAAE,EAAE,GAAG,CAAC,CAAA;;oBACrE,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAA;YACrD,CAAC;SACF,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GACZ,CAAC,KAA4B,EAAE,EAAE,CACjC,CAAC,GAAG,GAAc,EAAE,EAAE,CACpB,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;IAE7D,OAAO;QACL,SAAS,EAAE;YACT,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;YACtB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;YACtB,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;YACxB,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC;SACzB;QACD,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,EAAE,EAAE;YACnC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAA;QACpD,CAAC;QACD,UAAU,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,CAAC,IAAI,CACT,OAAO,EACP,GAAG,KAAK,SAAS;gBACf,CAAC,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE;gBACvD,CAAC,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAClC,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,IAAe;IACpC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACzC,CAAC;AAED,SAAS,YAAY,CAAC,GAAY;IAChC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAA;IACvC,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAA;IACzD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,SAAS,YAAY,CAAC,GAAY;IAChC,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC,KAAK,KAAK,SAAS;YAC5B,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE;YAC5C,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAA;IAC9B,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAA;AACjC,CAAC"}
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
*/
|
|
26
26
|
import * as lark from '@larksuiteoapi/node-sdk';
|
|
27
27
|
import type { OutboundTarget } from '../contract/outbound.js';
|
|
28
|
+
import { type TransportLogger } from './diagnostics.js';
|
|
28
29
|
/** Outcome of an outbound send. */
|
|
29
30
|
export interface FeishuSendResult {
|
|
30
31
|
/**
|
|
@@ -204,6 +205,19 @@ export interface FeishuTransportOptions {
|
|
|
204
205
|
* built from `creds`. Tests pass a stub; production never sets this.
|
|
205
206
|
*/
|
|
206
207
|
client?: lark.Client;
|
|
208
|
+
/**
|
|
209
|
+
* Structured logger for this transport's own diagnostics — the Lark SDK's
|
|
210
|
+
* logging, the WebSocket connection lifecycle, and the best-effort failures
|
|
211
|
+
* of the doc-comment / metadata / bot-info / socket-close paths. Additive and
|
|
212
|
+
* opt-in: with no logger the transport keeps its historical stderr behavior
|
|
213
|
+
* byte-for-byte (the `[feishu-sdk]` / `[feishu-transport]` prefixes, the ISO
|
|
214
|
+
* connection lines, and never a byte to stdout). A host injects this to fold
|
|
215
|
+
* the transport's lines into its own per-component log; see
|
|
216
|
+
* `./diagnostics.ts` for the seam and its safety boundary. Instance-level: the
|
|
217
|
+
* transport derives its SDK and connection sinks from this one logger, so
|
|
218
|
+
* several dispatchers in one process never cross-write each other's logs.
|
|
219
|
+
*/
|
|
220
|
+
logger?: TransportLogger;
|
|
207
221
|
}
|
|
208
222
|
/**
|
|
209
223
|
* The real Feishu transport, wrapping the official SDK.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feishu.d.ts","sourceRoot":"","sources":["../../src/transport/feishu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAA;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"feishu.d.ts","sourceRoot":"","sources":["../../src/transport/feishu.ts"],"names":[],"mappings":"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"}
|
package/dist/transport/feishu.js
CHANGED
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
import * as lark from '@larksuiteoapi/node-sdk';
|
|
27
27
|
import { cardToContent, renderMarkdownToCards, FEISHU_CARD_REQUEST_LIMIT_BYTES, } from '../render/render.js';
|
|
28
28
|
import { connectionErrorLogLine, reconnectedLogLine, reconnectingLogLine, startupTimeoutLogLine, } from './connection.js';
|
|
29
|
+
import { createTransportDiagnostics, } from './diagnostics.js';
|
|
29
30
|
/** Cap on a single WebSocket handshake before it is aborted into a retry. */
|
|
30
31
|
const WS_HANDSHAKE_TIMEOUT_MS = 15_000;
|
|
31
32
|
/**
|
|
@@ -35,22 +36,6 @@ const WS_HANDSHAKE_TIMEOUT_MS = 15_000;
|
|
|
35
36
|
* loop, so the transport cuts the attempt off.
|
|
36
37
|
*/
|
|
37
38
|
const WS_STARTUP_GRACE_MS = 30_000;
|
|
38
|
-
/**
|
|
39
|
-
* A Lark-SDK logger that writes every line to stderr.
|
|
40
|
-
*
|
|
41
|
-
* Hosts that run over an MCP stdio transport reserve stdout for the JSON-RPC
|
|
42
|
-
* stream; the SDK's default logger writes to stdout, which corrupts it. Routing
|
|
43
|
-
* the SDK's logger to stderr keeps stdout clean while the SDK's diagnostics
|
|
44
|
-
* stay visible in the host's log. (Harmless for dreamux, which does not use
|
|
45
|
-
* stdout for a protocol stream.)
|
|
46
|
-
*/
|
|
47
|
-
const sdkLogger = {
|
|
48
|
-
error: (...msg) => console.error('[feishu-sdk]', ...msg),
|
|
49
|
-
warn: (...msg) => console.error('[feishu-sdk]', ...msg),
|
|
50
|
-
info: (...msg) => console.error('[feishu-sdk]', ...msg),
|
|
51
|
-
debug: (...msg) => console.error('[feishu-sdk]', ...msg),
|
|
52
|
-
trace: (...msg) => console.error('[feishu-sdk]', ...msg),
|
|
53
|
-
};
|
|
54
39
|
/**
|
|
55
40
|
* Build the `content` string for a Feishu plain-text message — the legacy
|
|
56
41
|
* `msg_type: 'text'` payload, used by `editText`'s fallback path so an edit
|
|
@@ -153,11 +138,16 @@ function asMetaDocType(fileType) {
|
|
|
153
138
|
* `FeishuTransportOptions`; inbound still needs a live Feishu connection.
|
|
154
139
|
*/
|
|
155
140
|
export function createFeishuTransport(creds, options = {}) {
|
|
141
|
+
// One diagnostics seam per transport instance: with no injected logger it
|
|
142
|
+
// reproduces the historical stderr behavior byte-for-byte; with one it routes
|
|
143
|
+
// structured into the host's log. Built before the SDK client so all three
|
|
144
|
+
// SDK objects below share this instance's single SDK logger.
|
|
145
|
+
const diag = createTransportDiagnostics(options.logger);
|
|
156
146
|
const client = options.client ??
|
|
157
147
|
new lark.Client({
|
|
158
148
|
appId: creds.appId,
|
|
159
149
|
appSecret: creds.appSecret,
|
|
160
|
-
logger: sdkLogger,
|
|
150
|
+
logger: diag.sdkLogger,
|
|
161
151
|
});
|
|
162
152
|
let wsClient;
|
|
163
153
|
let resolvedSelfId;
|
|
@@ -167,8 +157,8 @@ export function createFeishuTransport(creds, options = {}) {
|
|
|
167
157
|
* this transport rather than threading a lock through here.
|
|
168
158
|
*/
|
|
169
159
|
async function openInbound(routes) {
|
|
170
|
-
resolvedSelfId = await resolveBotOpenId(client);
|
|
171
|
-
const dispatcher = new lark.EventDispatcher({ logger: sdkLogger }).register(routes);
|
|
160
|
+
resolvedSelfId = await resolveBotOpenId(client, diag);
|
|
161
|
+
const dispatcher = new lark.EventDispatcher({ logger: diag.sdkLogger }).register(routes);
|
|
172
162
|
// Resolves the first time the connection reaches `ready`; the startup
|
|
173
163
|
// watchdog below races against it.
|
|
174
164
|
let markReady = () => { };
|
|
@@ -178,8 +168,9 @@ export function createFeishuTransport(creds, options = {}) {
|
|
|
178
168
|
const ws = new lark.WSClient({
|
|
179
169
|
appId: creds.appId,
|
|
180
170
|
appSecret: creds.appSecret,
|
|
181
|
-
// Route the SDK's own logging
|
|
182
|
-
logger
|
|
171
|
+
// Route the SDK's own logging through this instance's diagnostics seam —
|
|
172
|
+
// stderr by default, the host's log when a logger is injected.
|
|
173
|
+
logger: diag.sdkLogger,
|
|
183
174
|
// Bound a stuck WebSocket handshake so it fails into a retry rather
|
|
184
175
|
// than holding a stuck DNS / NAT path open indefinitely.
|
|
185
176
|
handshakeTimeoutMs: WS_HANDSHAKE_TIMEOUT_MS,
|
|
@@ -188,16 +179,16 @@ export function createFeishuTransport(creds, options = {}) {
|
|
|
188
179
|
// failing connection is observable instead of a silent retry loop.
|
|
189
180
|
autoReconnect: true,
|
|
190
181
|
onReady: () => {
|
|
191
|
-
|
|
182
|
+
diag.connection('Feishu WebSocket connection is ready');
|
|
192
183
|
markReady();
|
|
193
184
|
},
|
|
194
|
-
onReconnecting: () =>
|
|
195
|
-
onReconnected: () =>
|
|
196
|
-
onError: (err) =>
|
|
185
|
+
onReconnecting: () => diag.connection(reconnectingLogLine()),
|
|
186
|
+
onReconnected: () => diag.connection(reconnectedLogLine()),
|
|
187
|
+
onError: (err) => diag.connection(connectionErrorLogLine(err), 'error'),
|
|
197
188
|
});
|
|
198
189
|
wsClient = ws;
|
|
199
190
|
void ws.start({ eventDispatcher: dispatcher }).catch((err) => {
|
|
200
|
-
|
|
191
|
+
diag.connection(connectionErrorLogLine(err), 'error');
|
|
201
192
|
});
|
|
202
193
|
// The SDK retries pullConnectConfig with no delay until it first
|
|
203
194
|
// succeeds — it has no server-provided reconnect interval yet — so a
|
|
@@ -207,7 +198,7 @@ export function createFeishuTransport(creds, options = {}) {
|
|
|
207
198
|
const cameUp = await raceConnectionReady(ready);
|
|
208
199
|
if (!cameUp) {
|
|
209
200
|
const gaveUp = ws.getConnectionStatus().state === 'failed';
|
|
210
|
-
|
|
201
|
+
diag.connection(startupTimeoutLogLine(WS_STARTUP_GRACE_MS, gaveUp), 'error');
|
|
211
202
|
ws.close();
|
|
212
203
|
// Fail loud rather than leave a dispatcher whose bot is silently dark:
|
|
213
204
|
// the host (dreamux's server) cleans up and surfaces the failure. A host
|
|
@@ -320,7 +311,7 @@ export function createFeishuTransport(creds, options = {}) {
|
|
|
320
311
|
return commentFromBatchQuery(res.data?.items ?? [], commentId);
|
|
321
312
|
}
|
|
322
313
|
catch (err) {
|
|
323
|
-
|
|
314
|
+
diag.diagnostic(`could not fetch comment ${commentId} on ${fileToken}:`, err);
|
|
324
315
|
return null;
|
|
325
316
|
}
|
|
326
317
|
},
|
|
@@ -338,7 +329,7 @@ export function createFeishuTransport(creds, options = {}) {
|
|
|
338
329
|
return { title: meta.title ?? '', url: meta.url ?? '' };
|
|
339
330
|
}
|
|
340
331
|
catch (err) {
|
|
341
|
-
|
|
332
|
+
diag.diagnostic(`could not fetch metadata for ${fileToken}:`, err);
|
|
342
333
|
return null;
|
|
343
334
|
}
|
|
344
335
|
},
|
|
@@ -349,7 +340,7 @@ export function createFeishuTransport(creds, options = {}) {
|
|
|
349
340
|
catch (err) {
|
|
350
341
|
// A close on an already-closed socket is expected; anything else
|
|
351
342
|
// (e.g. the SDK's close surface changed) is worth a diagnostic line.
|
|
352
|
-
|
|
343
|
+
diag.diagnostic('error while closing the Feishu WebSocket:', err);
|
|
353
344
|
}
|
|
354
345
|
wsClient = undefined;
|
|
355
346
|
},
|
|
@@ -391,7 +382,7 @@ const BOT_INFO_ATTEMPTS = 3;
|
|
|
391
382
|
* failure is logged with that consequence spelled out, and a transient error
|
|
392
383
|
* is retried a few times before the transport gives up.
|
|
393
384
|
*/
|
|
394
|
-
async function resolveBotOpenId(client) {
|
|
385
|
+
async function resolveBotOpenId(client, diag) {
|
|
395
386
|
for (let attempt = 1; attempt <= BOT_INFO_ATTEMPTS; attempt++) {
|
|
396
387
|
try {
|
|
397
388
|
const res = await client.request({
|
|
@@ -403,7 +394,7 @@ async function resolveBotOpenId(client) {
|
|
|
403
394
|
return openId;
|
|
404
395
|
// A well-formed response that simply lacks the field will not improve
|
|
405
396
|
// on retry — stop here rather than spend the remaining attempts.
|
|
406
|
-
|
|
397
|
+
diag.diagnostic('bot info response carried no open_id — groups that ' +
|
|
407
398
|
'require an @-mention will drop every message until the channel restarts');
|
|
408
399
|
return undefined;
|
|
409
400
|
}
|
|
@@ -412,7 +403,7 @@ async function resolveBotOpenId(client) {
|
|
|
412
403
|
await delay(attempt * 500);
|
|
413
404
|
continue;
|
|
414
405
|
}
|
|
415
|
-
|
|
406
|
+
diag.diagnostic(`could not resolve the bot open_id after ${BOT_INFO_ATTEMPTS} ` +
|
|
416
407
|
'attempts — groups that require an @-mention will drop every message ' +
|
|
417
408
|
'until the channel restarts:', err);
|
|
418
409
|
return undefined;
|
|
@@ -424,10 +415,6 @@ async function resolveBotOpenId(client) {
|
|
|
424
415
|
function delay(ms) {
|
|
425
416
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
426
417
|
}
|
|
427
|
-
/** Write a timestamped connection-lifecycle line to the host's stderr log. */
|
|
428
|
-
function logConnection(line) {
|
|
429
|
-
console.error(`[feishu-transport] ${new Date().toISOString()} ${line}`);
|
|
430
|
-
}
|
|
431
418
|
/**
|
|
432
419
|
* Resolve `true` if `ready` settles within the startup grace window, `false`
|
|
433
420
|
* if the window elapses first. The timer is cleared on the winning path so it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feishu.js","sourceRoot":"","sources":["../../src/transport/feishu.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feishu.js","sourceRoot":"","sources":["../../src/transport/feishu.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@excitedjs/feishu-transport",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Shared Feishu platform-I/O core for dreamux and claudemux: connect / receive / send / auth / render / parse + stateless policy (issue excitedjs/dreamux#25).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -31,12 +31,15 @@
|
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/node": "^22.10.0",
|
|
34
|
+
"eslint": "^9.39.0",
|
|
34
35
|
"typescript": "^5.7.0",
|
|
35
|
-
"vitest": "^2.1.0"
|
|
36
|
+
"vitest": "^2.1.0",
|
|
37
|
+
"@excitedjs/eslint-config": "0.0.0"
|
|
36
38
|
},
|
|
37
39
|
"scripts": {
|
|
38
40
|
"build": "tsc -p tsconfig.json",
|
|
39
41
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
42
|
+
"lint": "eslint .",
|
|
40
43
|
"test": "vitest run",
|
|
41
44
|
"test:watch": "vitest",
|
|
42
45
|
"clean": "rm -rf dist"
|