@bastiangx/opencode-unmoji 0.1.1 → 0.3.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 (46) hide show
  1. package/README.md +23 -4
  2. package/dist/core/emoji-data.d.ts +3 -0
  3. package/dist/core/emoji-data.d.ts.map +1 -1
  4. package/dist/core/emoji-data.js +46 -2
  5. package/dist/core/emoji-data.js.map +1 -1
  6. package/dist/core/processor.d.ts +12 -1
  7. package/dist/core/processor.d.ts.map +1 -1
  8. package/dist/core/processor.js +67 -12
  9. package/dist/core/processor.js.map +1 -1
  10. package/dist/{core/emoji-data-generated.d.ts → data/emoji-data-gen.d.ts} +1 -1
  11. package/dist/data/emoji-data-gen.d.ts.map +1 -0
  12. package/dist/{core/emoji-data-generated.js → data/emoji-data-gen.js} +7646 -5371
  13. package/dist/data/emoji-data-gen.js.map +1 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +135 -4
  16. package/dist/index.js.map +1 -1
  17. package/dist/plugin.bundled.js +7912 -5436
  18. package/dist/types/config.d.ts +19 -0
  19. package/dist/types/config.d.ts.map +1 -1
  20. package/dist/types/config.js +12 -0
  21. package/dist/types/config.js.map +1 -1
  22. package/dist/utils/code-detector.d.ts.map +1 -1
  23. package/dist/utils/code-detector.js +7 -1
  24. package/dist/utils/code-detector.js.map +1 -1
  25. package/dist/utils/grapheme.d.ts.map +1 -1
  26. package/dist/utils/grapheme.js +20 -2
  27. package/dist/utils/grapheme.js.map +1 -1
  28. package/package.json +19 -6
  29. package/dist/core/emoji-data-generated.d.ts.map +0 -1
  30. package/dist/core/emoji-data-generated.js.map +0 -1
  31. package/dist/streaming/hooks.d.ts +0 -12
  32. package/dist/streaming/hooks.d.ts.map +0 -1
  33. package/dist/streaming/hooks.js +0 -8
  34. package/dist/streaming/hooks.js.map +0 -1
  35. package/dist/streaming/sanitizer.d.ts +0 -66
  36. package/dist/streaming/sanitizer.d.ts.map +0 -1
  37. package/dist/streaming/sanitizer.js +0 -118
  38. package/dist/streaming/sanitizer.js.map +0 -1
  39. package/dist/streaming/state.d.ts +0 -10
  40. package/dist/streaming/state.d.ts.map +0 -1
  41. package/dist/streaming/state.js +0 -33
  42. package/dist/streaming/state.js.map +0 -1
  43. package/dist/utils/debug.d.ts +0 -18
  44. package/dist/utils/debug.d.ts.map +0 -1
  45. package/dist/utils/debug.js +0 -10
  46. package/dist/utils/debug.js.map +0 -1
@@ -1,12 +0,0 @@
1
- import type { UnmojiConfig } from "../types/config.js";
2
- type TextCompleteInput = {
3
- sessionID: string;
4
- messageID: string;
5
- partID: string;
6
- };
7
- type TextCompleteOutput = {
8
- text: string;
9
- };
10
- export declare function onTextComplete(input: TextCompleteInput, output: TextCompleteOutput, config: UnmojiConfig): Promise<void>;
11
- export {};
12
- //# sourceMappingURL=hooks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/streaming/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,KAAK,iBAAiB,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,wBAAgB,cAAc,CAC7B,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,YAAY,GAClB,OAAO,CAAC,IAAI,CAAC,CAQf"}
@@ -1,8 +0,0 @@
1
- import { processText } from "../core/processor.js";
2
- export function onTextComplete(input, output, config) {
3
- processText(output.text, config).match((sanitized) => {
4
- output.text = sanitized;
5
- }, () => { });
6
- return Promise.resolve();
7
- }
8
- //# sourceMappingURL=hooks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/streaming/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAYnD,MAAM,UAAU,cAAc,CAC7B,KAAwB,EACxB,MAA0B,EAC1B,MAAoB;IAEpB,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,CACrC,CAAC,SAAS,EAAE,EAAE;QACb,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;IACzB,CAAC,EACD,GAAG,EAAE,GAAE,CAAC,CACR,CAAC;IACF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC1B,CAAC"}
@@ -1,66 +0,0 @@
1
- import type { UnmojiConfig } from "../types/config.js";
2
- import type { StreamingError } from "../types/errors.js";
3
- import type { StreamingState } from "./state.js";
4
- import { type ResultAsync } from "neverthrow";
5
- type MessagePart = {
6
- id: string;
7
- sessionID: string;
8
- messageID: string;
9
- type: string;
10
- text?: string;
11
- role?: string;
12
- };
13
- type MessagePartUpdatedEvent = {
14
- type: "message.part.updated";
15
- properties: {
16
- part: MessagePart;
17
- };
18
- };
19
- type SessionIdleEvent = {
20
- type: "session.idle";
21
- properties: {
22
- sessionID: string;
23
- };
24
- };
25
- type OpencodeEvent = MessagePartUpdatedEvent | SessionIdleEvent;
26
- type OpencodeClient = {
27
- event: {
28
- subscribe: () => Promise<{
29
- stream: AsyncIterable<OpencodeEvent>;
30
- }>;
31
- };
32
- session: {
33
- updatePart: (args: {
34
- sessionID: string;
35
- messageID: string;
36
- partID: string;
37
- text: string;
38
- }) => Promise<void>;
39
- };
40
- message: {
41
- list: (args: {
42
- sessionID: string;
43
- }) => Promise<Message[]>;
44
- };
45
- };
46
- type Message = {
47
- id: string;
48
- sessionID: string;
49
- role: string;
50
- parts: MessagePart[];
51
- };
52
- type SanitizeDeps = {
53
- client: OpencodeClient;
54
- config: UnmojiConfig;
55
- };
56
- type DebounceArgs = {
57
- deps: SanitizeDeps;
58
- state: StreamingState;
59
- part: MessagePart;
60
- };
61
- export declare function scheduleDebouncedSanitize(args: DebounceArgs): void;
62
- export declare function sanitizeAndUpdatePart(args: DebounceArgs): ResultAsync<void, StreamingError>;
63
- export declare function startStreamingSanitizer(deps: SanitizeDeps, state: StreamingState): ResultAsync<void, StreamingError>;
64
- export declare function sanitizeLastAssistantMessage(client: OpencodeClient, config: UnmojiConfig, sessionID: string): ResultAsync<void, StreamingError>;
65
- export {};
66
- //# sourceMappingURL=sanitizer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sanitizer.d.ts","sourceRoot":"","sources":["../../src/streaming/sanitizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,KAAK,WAAW,EAA+B,MAAM,YAAY,CAAC;AAG3E,KAAK,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC9B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,UAAU,EAAE;QACX,IAAI,EAAE,WAAW,CAAC;KAClB,CAAC;CACF,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,EAAE;QACX,SAAS,EAAE,MAAM,CAAC;KAClB,CAAC;CACF,CAAC;AAEF,KAAK,aAAa,GAAG,uBAAuB,GAAG,gBAAgB,CAAC;AAEhE,KAAK,cAAc,GAAG;IACrB,KAAK,EAAE;QACN,SAAS,EAAE,MAAM,OAAO,CAAC;YAAE,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;SAAE,CAAC,CAAC;KACnE,CAAC;IACF,OAAO,EAAE;QACR,UAAU,EAAE,CAAC,IAAI,EAAE;YAClB,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,MAAM,CAAC;SACb,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KACpB,CAAC;IACF,OAAO,EAAE;QACR,IAAI,EAAE,CAAC,IAAI,EAAE;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;KAC1D,CAAC;CACF,CAAC;AAEF,KAAK,OAAO,GAAG;IACd,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,EAAE,CAAC;CACrB,CAAC;AAEF,KAAK,YAAY,GAAG;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF,KAAK,YAAY,GAAG;IACnB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;CAClB,CAAC;AAmBF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAgBlE;AAED,wBAAgB,qBAAqB,CACpC,IAAI,EAAE,YAAY,GAChB,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAqCnC;AAED,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,cAAc,GACnB,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAyBnC;AAED,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,GACf,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,CAgDnC"}
@@ -1,118 +0,0 @@
1
- import { registerPart, clearSessionState } from "./state.js";
2
- import { ResultAsync as RA, errAsync } from "neverthrow";
3
- import { processText } from "../core/processor.js";
4
- const DEBOUNCE_MS = 300;
5
- function isAssistantPart(part) {
6
- return part.role === "assistant";
7
- }
8
- function toStreamingUpdateError(partID) {
9
- return (error) => ({
10
- domain: "streaming",
11
- code: "SDK_UPDATE_FAILED",
12
- partID,
13
- reason: error instanceof Error ? error.message : String(error),
14
- });
15
- }
16
- export function scheduleDebouncedSanitize(args) {
17
- const { deps, state, part } = args;
18
- if (typeof part.text !== "string")
19
- return;
20
- registerPart(state, part.sessionID, part.id);
21
- const existing = state.timersByPart.get(part.id);
22
- if (existing !== undefined) {
23
- clearTimeout(existing);
24
- }
25
- const handle = setTimeout(() => {
26
- void sanitizeAndUpdatePart({ deps, state, part });
27
- }, DEBOUNCE_MS);
28
- state.timersByPart.set(part.id, handle);
29
- }
30
- export function sanitizeAndUpdatePart(args) {
31
- const { deps, state, part } = args;
32
- const rawText = part.text ?? "";
33
- const last = state.lastTextByPart.get(part.id);
34
- if (last === rawText) {
35
- return RA.fromSafePromise(Promise.resolve());
36
- }
37
- const processResult = processText(rawText, deps.config);
38
- if (processResult.isErr()) {
39
- return errAsync({
40
- domain: "streaming",
41
- code: "SANITIZE_FAILED",
42
- cause: processResult.error,
43
- });
44
- }
45
- const sanitized = processResult.value;
46
- if (sanitized === rawText) {
47
- state.lastTextByPart.set(part.id, rawText);
48
- return RA.fromSafePromise(Promise.resolve());
49
- }
50
- return RA.fromPromise(deps.client.session.updatePart({
51
- sessionID: part.sessionID,
52
- messageID: part.messageID,
53
- partID: part.id,
54
- text: sanitized,
55
- }), toStreamingUpdateError(part.id)).map(() => {
56
- state.lastTextByPart.set(part.id, sanitized);
57
- });
58
- }
59
- export function startStreamingSanitizer(deps, state) {
60
- return RA.fromPromise((async () => {
61
- const events = await deps.client.event.subscribe();
62
- for await (const event of events.stream) {
63
- if (event.type === "session.idle") {
64
- clearSessionState(state, event.properties.sessionID);
65
- continue;
66
- }
67
- if (event.type !== "message.part.updated")
68
- continue;
69
- const part = event.properties.part;
70
- if (part.type !== "text")
71
- continue;
72
- if (!isAssistantPart(part))
73
- continue;
74
- scheduleDebouncedSanitize({ deps, state, part });
75
- }
76
- })(), (error) => ({
77
- domain: "streaming",
78
- code: "EVENT_SUBSCRIPTION_FAILED",
79
- reason: error instanceof Error ? error.message : String(error),
80
- }));
81
- }
82
- export function sanitizeLastAssistantMessage(client, config, sessionID) {
83
- return RA.fromPromise(client.message.list({ sessionID }), (error) => ({
84
- domain: "streaming",
85
- code: "SDK_FETCH_FAILED",
86
- sessionID,
87
- reason: error instanceof Error ? error.message : String(error),
88
- })).andThen((messages) => {
89
- const lastAssistant = messages.filter((m) => m.role === "assistant").at(-1);
90
- if (!lastAssistant) {
91
- return RA.fromSafePromise(Promise.resolve());
92
- }
93
- const updatePromises = lastAssistant.parts
94
- .filter((p) => p.type === "text" && typeof p.text === "string")
95
- .map((part) => {
96
- const result = processText(part.text ?? "", config);
97
- if (result.isErr()) {
98
- return errAsync({
99
- domain: "streaming",
100
- code: "SANITIZE_FAILED",
101
- cause: result.error,
102
- });
103
- }
104
- const sanitized = result.value;
105
- if (sanitized === part.text) {
106
- return RA.fromSafePromise(Promise.resolve());
107
- }
108
- return RA.fromPromise(client.session.updatePart({
109
- sessionID: part.sessionID,
110
- messageID: part.messageID,
111
- partID: part.id,
112
- text: sanitized,
113
- }), toStreamingUpdateError(part.id));
114
- });
115
- return RA.combine(updatePromises).map(() => undefined);
116
- });
117
- }
118
- //# sourceMappingURL=sanitizer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sanitizer.js","sourceRoot":"","sources":["../../src/streaming/sanitizer.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- export type StreamingState = {
2
- lastTextByPart: Map<string, string>;
3
- timersByPart: Map<string, NodeJS.Timeout>;
4
- partsBySession: Map<string, Set<string>>;
5
- };
6
- export declare function createStreamingState(): StreamingState;
7
- export declare function registerPart(state: StreamingState, sessionID: string, partID: string): void;
8
- export declare function clearPartState(state: StreamingState, partID: string): void;
9
- export declare function clearSessionState(state: StreamingState, sessionID: string): void;
10
- //# sourceMappingURL=state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/streaming/state.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC5B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1C,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACzC,CAAC;AAEF,wBAAgB,oBAAoB,IAAI,cAAc,CAMrD;AAED,wBAAgB,YAAY,CAC3B,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACZ,IAAI,CAON;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAO1E;AAED,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,GACf,IAAI,CAQN"}
@@ -1,33 +0,0 @@
1
- export function createStreamingState() {
2
- return {
3
- lastTextByPart: new Map(),
4
- timersByPart: new Map(),
5
- partsBySession: new Map(),
6
- };
7
- }
8
- export function registerPart(state, sessionID, partID) {
9
- let set = state.partsBySession.get(sessionID);
10
- if (set === undefined) {
11
- set = new Set();
12
- state.partsBySession.set(sessionID, set);
13
- }
14
- set.add(partID);
15
- }
16
- export function clearPartState(state, partID) {
17
- const timer = state.timersByPart.get(partID);
18
- if (timer !== undefined) {
19
- clearTimeout(timer);
20
- state.timersByPart.delete(partID);
21
- }
22
- state.lastTextByPart.delete(partID);
23
- }
24
- export function clearSessionState(state, sessionID) {
25
- const partIDs = state.partsBySession.get(sessionID);
26
- if (partIDs === undefined)
27
- return;
28
- for (const partID of partIDs) {
29
- clearPartState(state, partID);
30
- }
31
- state.partsBySession.delete(sessionID);
32
- }
33
- //# sourceMappingURL=state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/streaming/state.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,oBAAoB;IACnC,OAAO;QACN,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,YAAY,EAAE,IAAI,GAAG,EAAE;QACvB,cAAc,EAAE,IAAI,GAAG,EAAE;KACzB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAC3B,KAAqB,EACrB,SAAiB,EACjB,MAAc;IAEd,IAAI,GAAG,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACvB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QAChB,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IACD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAqB,EAAE,MAAc;IACnE,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAChC,KAAqB,EACrB,SAAiB;IAEjB,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO;IAElC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACxC,CAAC"}
@@ -1,18 +0,0 @@
1
- export interface PerformanceMetrics {
2
- startTime: number;
3
- endTime?: number;
4
- duration?: number;
5
- }
6
- export interface ProcessingStats {
7
- originalLength: number;
8
- processedLength: number;
9
- emojiCount: number;
10
- }
11
- export interface DebugLoggerLike {
12
- startMetrics: () => PerformanceMetrics;
13
- endMetrics: (metrics: PerformanceMetrics) => PerformanceMetrics;
14
- logProcessing: (stats: ProcessingStats, metrics: PerformanceMetrics) => void;
15
- logVerbose: (message: string) => void;
16
- }
17
- export declare function createDebugLogger(): DebugLoggerLike;
18
- //# sourceMappingURL=debug.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC/B,YAAY,EAAE,MAAM,kBAAkB,CAAC;IACvC,UAAU,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,kBAAkB,CAAC;IAChE,aAAa,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC7E,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AASD,wBAAgB,iBAAiB,IAAI,eAAe,CAEnD"}
@@ -1,10 +0,0 @@
1
- const noopLogger = {
2
- startMetrics: () => ({ startTime: 0 }),
3
- endMetrics: (m) => m,
4
- logProcessing: () => { },
5
- logVerbose: () => { },
6
- };
7
- export function createDebugLogger() {
8
- return noopLogger;
9
- }
10
- //# sourceMappingURL=debug.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":"AAmBA,MAAM,UAAU,GAAoB;IACnC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACtC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpB,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC;IACvB,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;CACpB,CAAC;AAEF,MAAM,UAAU,iBAAiB;IAChC,OAAO,UAAU,CAAC;AACnB,CAAC"}