@excitedjs/feishu-transport 0.1.0 → 0.2.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.
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
@@ -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;AAG9B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAE9C;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,gCAAgC,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;AAE9B,0BAA0B;AAC1B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAE9C;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,6BAA6B,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":"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"}
@@ -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":"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"}
1
+ {"version":3,"file":"feishu.d.ts","sourceRoot":"","sources":["../../src/transport/feishu.ts"],"names":[],"mappings":"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"}
@@ -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 to stderr see `sdkLogger`.
182
- logger: sdkLogger,
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
- logConnection('Feishu WebSocket connection is ready');
182
+ diag.connection('Feishu WebSocket connection is ready');
192
183
  markReady();
193
184
  },
194
- onReconnecting: () => logConnection(reconnectingLogLine()),
195
- onReconnected: () => logConnection(reconnectedLogLine()),
196
- onError: (err) => logConnection(connectionErrorLogLine(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
- logConnection(connectionErrorLogLine(err));
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
- logConnection(startupTimeoutLogLine(WS_STARTUP_GRACE_MS, gaveUp));
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
- console.error(`[feishu-transport] could not fetch comment ${commentId} on ${fileToken}:`, err);
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
- console.error(`[feishu-transport] could not fetch metadata for ${fileToken}:`, err);
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
- console.error('[feishu-transport] error while closing the Feishu WebSocket:', err);
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
- console.error('[feishu-transport] bot info response carried no open_id — groups that ' +
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
- console.error(`[feishu-transport] could not resolve the bot open_id after ${BOT_INFO_ATTEMPTS} ` +
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAA;AAG/C,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,+BAA+B,GAEhC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,0BAA0B,GAG3B,MAAM,kBAAkB,CAAA;AAEzB,6EAA6E;AAC7E,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAEtC;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG,MAAM,CAAA;AAalC;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,GAAG,IAAI,CAAA;AAEvD;;;;;;;;GAQG;AACH,SAAS,qBAAqB,CAAC,OAAe;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAChD,IAAI,KAAK,GAAG,8BAA8B,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,mBAAmB,KAAK,mDAAmD,+BAA+B,UAAU;YAClH,yGAAyG,CAC5G,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,sBAAsB,KAAK,CAAC,MAAM,0CAA0C;YAC1E,0EAA0E;YAC1E,0EAA0E,CAC7E,CAAA;IACH,CAAC;IACD,sEAAsE;IACtE,qEAAqE;IACrE,iCAAiC;IACjC,OAAO,KAAK,CAAC,CAAC,CAAiB,CAAA;AACjC,CAAC;AAmCD,oFAAoF;AACpF,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAU,CAAA;AAGpE,uFAAuF;AACvF,SAAS,iBAAiB,CAAC,QAAgB;IACzC,OAAQ,kBAAwC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACjE,CAAC,CAAE,QAA4B;QAC/B,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAqBD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAuB,EACvB,SAAiB;IAEjB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAA;IAC1D,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtB,MAAM,OAAO,GAA4B,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxF,OAAO,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;QAC7B,QAAQ,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;QAC7B,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE;KACxC,CAAC,CAAC,CAAA;IACH,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,OAAO,EAAE,CAAA;AAC7E,CAAC;AAED,oDAAoD;AACpD,MAAM,cAAc,GAAG;IACrB,KAAK;IACL,MAAM;IACN,OAAO;IACP,SAAS;IACT,UAAU;IACV,MAAM;IACN,MAAM;IACN,QAAQ;IACR,cAAc;IACd,QAAQ;CACA,CAAA;AAGV,mFAAmF;AACnF,SAAS,aAAa,CAAC,QAAgB;IACrC,OAAQ,cAAoC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC7D,CAAC,CAAE,QAAwB;QAC3B,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AA4HD;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAwB,EACxB,UAAkC,EAAE;IAEpC,0EAA0E;IAC1E,8EAA8E;IAC9E,2EAA2E;IAC3E,6DAA6D;IAC7D,MAAM,IAAI,GAAG,0BAA0B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACvD,MAAM,MAAM,GACV,OAAO,CAAC,MAAM;QACd,IAAI,IAAI,CAAC,MAAM,CAAC;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM,EAAE,IAAI,CAAC,SAAS;SACvB,CAAC,CAAA;IACJ,IAAI,QAAmC,CAAA;IACvC,IAAI,cAAkC,CAAA;IAEtC;;;;OAIG;IACH,KAAK,UAAU,WAAW,CAAC,MAAqB;QAC9C,cAAc,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACrD,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAExF,sEAAsE;QACtE,mCAAmC;QACnC,IAAI,SAAS,GAAe,GAAG,EAAE,GAAE,CAAC,CAAA;QACpC,MAAM,KAAK,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC1C,SAAS,GAAG,OAAO,CAAA;QACrB,CAAC,CAAC,CAAA;QAEF,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC;YAC3B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,yEAAyE;YACzE,+DAA+D;YAC/D,MAAM,EAAE,IAAI,CAAC,SAAS;YACtB,oEAAoE;YACpE,yDAAyD;YACzD,kBAAkB,EAAE,uBAAuB;YAC3C,sEAAsE;YACtE,sEAAsE;YACtE,mEAAmE;YACnE,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,UAAU,CAAC,sCAAsC,CAAC,CAAA;gBACvD,SAAS,EAAE,CAAA;YACb,CAAC;YACD,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC;YAC5D,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC1D,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;SACxE,CAAC,CAAA;QACF,QAAQ,GAAG,EAAE,CAAA;QAEb,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACpE,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;QACvD,CAAC,CAAC,CAAA;QAEF,iEAAiE;QACjE,qEAAqE;QACrE,kEAAkE;QAClE,qEAAqE;QACrE,6DAA6D;QAC7D,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAA;YAC1D,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;YAC5E,EAAE,CAAC,KAAK,EAAE,CAAA;YACV,uEAAuE;YACvE,yEAAyE;YACzE,uEAAuE;YACvE,MAAM,IAAI,KAAK,CACb,oCAAoC,KAAK,CAAC,KAAK,2BAA2B,mBAAmB,IAAI,CAClG,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,KAAK;YACP,OAAO,KAAK,CAAC,KAAK,CAAA;QACpB,CAAC;QAED,IAAI,MAAM;YACR,OAAO,cAAc,CAAA;QACvB,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,MAAqB;YAC/B,MAAM,WAAW,CAAC,MAAM,CAAC,CAAA;QAC3B,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,MAAsB,EAAE,IAAY;YAC7C,oEAAoE;YACpE,mEAAmE;YACnE,sEAAsE;YACtE,mEAAmE;YACnE,sEAAsE;YACtE,4DAA4D;YAC5D,EAAE;YACF,MAAM,KAAK,GAAG,qBAAqB,CAAC,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;YAC1E,MAAM,UAAU,GAAa,EAAE,CAAA;YAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;gBACnC,uEAAuE;gBACvE,8EAA8E;gBAC9E,qBAAqB,CAAC,OAAO,CAAC,CAAA;gBAC9B,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;gBAC9D,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAA;gBAC/B,IAAI,EAAE;oBAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC7B,CAAC;YACD,OAAO,EAAE,UAAU,EAAE,CAAA;QACvB,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,KAAa;YAChD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC;gBACjD,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;gBAC/B,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE;aAC/C,CAAC,CAAA;YACF,OAAO,GAAG,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,CAAA;QACpC,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,UAAkB;YACxD,MAAM,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC;gBACrC,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE;aACzD,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,IAAY;YAC5C,iEAAiE;YACjE,uEAAuE;YACvE,iEAAiE;YACjE,qEAAqE;YACrE,sEAAsE;YACtE,sBAAsB;YACtB,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;YACnC,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;YACvC,qBAAqB,CAAC,WAAW,CAAC,CAAA;YAClC,IAAI,CAAC;gBACH,mEAAmE;gBACnE,qEAAqE;gBACrE,oEAAoE;gBACpE,+CAA+C;gBAC/C,MAAM,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;oBAC5B,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;oBAC/B,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;iBAC/B,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,iEAAiE;gBACjE,gEAAgE;gBAChE,kEAAkE;gBAClE,iEAAiE;gBACjE,iEAAiE;gBACjE,mEAAmE;gBACnE,0DAA0D;gBAC1D,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;wBAC7B,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;wBAC/B,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE;qBAC9D,CAAC,CAAA;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,QAAQ,CAAA;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,CAAC,eAAe,CACnB,SAAiB,EACjB,QAAgB,EAChB,SAAiB;YAEjB,uEAAuE;YACvE,sEAAsE;YACtE,MAAM,EAAE,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;YACtC,IAAI,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAA;YACpB,IAAI,CAAC;gBACH,wDAAwD;gBACxD,kEAAkE;gBAClE,kEAAkE;gBAClE,mEAAmE;gBACnE,0BAA0B;gBAC1B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC;oBACpD,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;oBAC/B,kEAAkE;oBAClE,oDAAoD;oBACpD,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE;oBAClD,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,SAAS,CAAC,EAAE;iBACnC,CAAC,CAAA;gBACF,OAAO,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,SAAS,CAAC,CAAA;YAChE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,UAAU,CAAC,2BAA2B,SAAS,OAAO,SAAS,GAAG,EAAE,GAAG,CAAC,CAAA;gBAC7E,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,QAAgB;YACpD,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;YAClC,IAAI,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAA;YACpB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC7C,IAAI,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;iBACjF,CAAC,CAAA;gBACF,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;gBACjC,IAAI,CAAC,IAAI;oBAAE,OAAO,IAAI,CAAA;gBACtB,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,CAAA;YACzD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,UAAU,CAAC,gCAAgC,SAAS,GAAG,EAAE,GAAG,CAAC,CAAA;gBAClE,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QAED,KAAK,CAAC,KAAK;YACT,IAAI,CAAC;gBACH,QAAQ,EAAE,KAAK,EAAE,CAAA;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,iEAAiE;gBACjE,qEAAqE;gBACrE,IAAI,CAAC,UAAU,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAA;YACnE,CAAC;YACD,QAAQ,GAAG,SAAS,CAAA;QACtB,CAAC;KACF,CAAA;AACH,CAAC;AAWD,KAAK,UAAU,mBAAmB,CAChC,MAAmB,EACnB,MAAsB,EACtB,OAAe;IAEf,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,CAAA;IACjD,IAAI,MAAM,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,OAAyC,CAAA;QACtE,OAAO,UAAU,CAAC,KAAK,CAAC;YACtB,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE;YAC7C,IAAI;SACL,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;QAC9B,MAAM,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE;QACtC,IAAI,EAAE;YACJ,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,GAAG,IAAI;SACR;KACF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAsB,EAAE,IAAY;IACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,IAAI,EAAE,CAAA;IAC5C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACtC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAA;AACjE,CAAC;AAED,0EAA0E;AAC1E,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAE3B;;;;;;;;;;GAUG;AACH,KAAK,UAAU,gBAAgB,CAC7B,MAAmB,EACnB,IAA0B;IAE1B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,iBAAiB,EAAE,OAAO,EAAE,EAAE,CAAC;QAC9D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAiC;gBAC/D,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,wBAAwB;aAC9B,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,OAAO,CAAA;YAC/B,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAA;YACzB,sEAAsE;YACtE,iEAAiE;YACjE,IAAI,CAAC,UAAU,CACb,qDAAqD;gBACnD,yEAAyE,CAC5E,CAAA;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,GAAG,iBAAiB,EAAE,CAAC;gBAChC,MAAM,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,CAAA;gBAC1B,SAAQ;YACV,CAAC;YACD,IAAI,CAAC,UAAU,CACb,2CAA2C,iBAAiB,GAAG;gBAC7D,sEAAsE;gBACtE,6BAA6B,EAC/B,GAAG,CACJ,CAAA;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,+EAA+E;AAC/E,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAC1D,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,KAAoB;IAC/C,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,CAAA;QACnE,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YACnB,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@excitedjs/feishu-transport",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
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": {