@bastiangx/opencode-unmoji 0.1.0 → 0.3.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.
Files changed (76) hide show
  1. package/README.md +24 -5
  2. package/dist/core/emoji-data-generated.d.ts.map +1 -1
  3. package/dist/core/emoji-data-generated.js +7645 -5370
  4. package/dist/core/emoji-data-generated.js.map +1 -1
  5. package/dist/core/emoji-data.d.ts +3 -0
  6. package/dist/core/emoji-data.d.ts.map +1 -1
  7. package/dist/core/emoji-data.js +46 -2
  8. package/dist/core/emoji-data.js.map +1 -1
  9. package/dist/core/processor.d.ts +12 -1
  10. package/dist/core/processor.d.ts.map +1 -1
  11. package/dist/core/processor.js +67 -12
  12. package/dist/core/processor.js.map +1 -1
  13. package/dist/data/emoji-data-gen.d.ts +6 -0
  14. package/dist/data/emoji-data-gen.d.ts.map +1 -0
  15. package/dist/data/emoji-data-gen.js +30638 -0
  16. package/dist/data/emoji-data-gen.js.map +1 -0
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +135 -4
  20. package/dist/index.js.map +1 -1
  21. package/dist/plugin.bundled.js +7949 -5445
  22. package/dist/src/core/config.d.ts +22 -0
  23. package/dist/src/core/config.d.ts.map +1 -0
  24. package/dist/src/core/config.js +82 -0
  25. package/dist/src/core/config.js.map +1 -0
  26. package/dist/src/core/emoji-data.d.ts +11 -0
  27. package/dist/src/core/emoji-data.d.ts.map +1 -0
  28. package/dist/src/core/emoji-data.js +105 -0
  29. package/dist/src/core/emoji-data.js.map +1 -0
  30. package/dist/src/core/processor.d.ts +16 -0
  31. package/dist/src/core/processor.d.ts.map +1 -0
  32. package/dist/src/core/processor.js +115 -0
  33. package/dist/src/core/processor.js.map +1 -0
  34. package/dist/src/index.d.ts +4 -0
  35. package/dist/src/index.d.ts.map +1 -0
  36. package/dist/src/index.js +153 -0
  37. package/dist/src/index.js.map +1 -0
  38. package/dist/src/types/config.d.ts +55 -0
  39. package/dist/src/types/config.d.ts.map +1 -0
  40. package/dist/src/types/config.js +36 -0
  41. package/dist/src/types/config.js.map +1 -0
  42. package/dist/src/types/errors.d.ts +59 -0
  43. package/dist/src/types/errors.d.ts.map +1 -0
  44. package/dist/src/types/errors.js +6 -0
  45. package/dist/src/types/errors.js.map +1 -0
  46. package/dist/src/utils/code-detector.d.ts +17 -0
  47. package/dist/src/utils/code-detector.d.ts.map +1 -0
  48. package/dist/src/utils/code-detector.js +288 -0
  49. package/dist/src/utils/code-detector.js.map +1 -0
  50. package/dist/src/utils/grapheme.d.ts +20 -0
  51. package/dist/src/utils/grapheme.d.ts.map +1 -0
  52. package/dist/src/utils/grapheme.js +82 -0
  53. package/dist/src/utils/grapheme.js.map +1 -0
  54. package/dist/streaming/hooks.d.ts +12 -0
  55. package/dist/streaming/hooks.d.ts.map +1 -0
  56. package/dist/streaming/hooks.js +8 -0
  57. package/dist/streaming/hooks.js.map +1 -0
  58. package/dist/streaming/sanitizer.d.ts +66 -0
  59. package/dist/streaming/sanitizer.d.ts.map +1 -0
  60. package/dist/streaming/sanitizer.js +118 -0
  61. package/dist/streaming/sanitizer.js.map +1 -0
  62. package/dist/streaming/state.d.ts +10 -0
  63. package/dist/streaming/state.d.ts.map +1 -0
  64. package/dist/streaming/state.js +33 -0
  65. package/dist/streaming/state.js.map +1 -0
  66. package/dist/types/config.d.ts +21 -0
  67. package/dist/types/config.d.ts.map +1 -1
  68. package/dist/types/config.js +14 -0
  69. package/dist/types/config.js.map +1 -1
  70. package/dist/utils/code-detector.d.ts.map +1 -1
  71. package/dist/utils/code-detector.js +46 -10
  72. package/dist/utils/code-detector.js.map +1 -1
  73. package/dist/utils/grapheme.d.ts.map +1 -1
  74. package/dist/utils/grapheme.js +20 -2
  75. package/dist/utils/grapheme.js.map +1 -1
  76. package/package.json +19 -6
@@ -0,0 +1,118 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitizer.js","sourceRoot":"","sources":["../../src/streaming/sanitizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,33 @@
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
@@ -0,0 +1 @@
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,5 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export type ReplacementStyle = "github" | "slack" | "discord" | "cldr" | "iamcal" | "joypixels";
3
+ export type MarkdownExtension = ".md" | ".mdx" | ".mdc" | ".markdown";
4
+ export type NotificationStyle = "thread" | "thread-verbose" | "toast";
3
5
  export type UnmojiConfig = {
4
6
  enabled: boolean;
5
7
  mode: "strip" | "replace";
@@ -8,6 +10,11 @@ export type UnmojiConfig = {
8
10
  preserveCodeBlocks: boolean;
9
11
  preserveInlineCode: boolean;
10
12
  skipQuotes: boolean;
13
+ processMarkdown: boolean;
14
+ markdownExtensions: MarkdownExtension[];
15
+ maxMarkdownChars: number;
16
+ showNotification: boolean;
17
+ notificationStyle: NotificationStyle;
11
18
  };
12
19
  export declare const ConfigSchema: z.ZodObject<{
13
20
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -31,6 +38,20 @@ export declare const ConfigSchema: z.ZodObject<{
31
38
  preserveCodeBlocks: z.ZodDefault<z.ZodBoolean>;
32
39
  preserveInlineCode: z.ZodDefault<z.ZodBoolean>;
33
40
  skipQuotes: z.ZodDefault<z.ZodBoolean>;
41
+ processMarkdown: z.ZodDefault<z.ZodBoolean>;
42
+ markdownExtensions: z.ZodDefault<z.ZodArray<z.ZodEnum<{
43
+ ".md": ".md";
44
+ ".mdx": ".mdx";
45
+ ".mdc": ".mdc";
46
+ ".markdown": ".markdown";
47
+ }>>>;
48
+ maxMarkdownChars: z.ZodDefault<z.ZodNumber>;
49
+ showNotification: z.ZodDefault<z.ZodBoolean>;
50
+ notificationStyle: z.ZodDefault<z.ZodEnum<{
51
+ thread: "thread";
52
+ "thread-verbose": "thread-verbose";
53
+ toast: "toast";
54
+ }>>;
34
55
  }, z.core.$strip>;
35
56
  export declare const DEFAULT_CONFIG: UnmojiConfig;
36
57
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,gBAAgB,GACzB,QAAQ,GACR,OAAO,GACP,SAAS,GACT,MAAM,GACN,QAAQ,GACR,WAAW,CAAC;AAEf,MAAM,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,iBAAiB,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACpD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;iBAYvB,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,YAQ5B,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,gBAAgB,GACzB,QAAQ,GACR,OAAO,GACP,SAAS,GACT,MAAM,GACN,QAAQ,GACR,WAAW,CAAC;AAEf,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;AAEtE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,gBAAgB,GAAG,OAAO,CAAC;AAEtE,MAAM,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,iBAAiB,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IACpD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,iBAAiB,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqBvB,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,YAa5B,CAAC"}
@@ -11,6 +11,15 @@ export const ConfigSchema = z.object({
11
11
  preserveCodeBlocks: z.boolean().default(true),
12
12
  preserveInlineCode: z.boolean().default(true),
13
13
  skipQuotes: z.boolean().default(false),
14
+ processMarkdown: z.boolean().default(true),
15
+ markdownExtensions: z
16
+ .array(z.enum([".md", ".mdx", ".mdc", ".markdown"]))
17
+ .default([".md"]),
18
+ maxMarkdownChars: z.number().positive().default(1_000_000),
19
+ showNotification: z.boolean().default(true),
20
+ notificationStyle: z
21
+ .enum(["thread", "thread-verbose", "toast"])
22
+ .default("thread"),
14
23
  });
15
24
  export const DEFAULT_CONFIG = {
16
25
  enabled: true,
@@ -20,5 +29,10 @@ export const DEFAULT_CONFIG = {
20
29
  preserveCodeBlocks: true,
21
30
  preserveInlineCode: true,
22
31
  skipQuotes: false,
32
+ processMarkdown: true,
33
+ markdownExtensions: [".md"],
34
+ maxMarkdownChars: 1_000_000,
35
+ showNotification: true,
36
+ notificationStyle: "thread",
23
37
  };
24
38
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoBxB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACnD,gBAAgB,EAAE,CAAC;SACjB,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;SACnE,OAAO,CAAC,QAAQ,CAAC;IACnB,iBAAiB,EAAE,CAAC;SAClB,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;SACtC,OAAO,CAAC,UAAU,CAAC;IACrB,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7C,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7C,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACtC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC3C,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,OAAO;IACb,gBAAgB,EAAE,QAAQ;IAC1B,iBAAiB,EAAE,UAAU;IAC7B,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,UAAU,EAAE,KAAK;CACjB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA6BxB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACnD,gBAAgB,EAAE,CAAC;SACjB,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;SACnE,OAAO,CAAC,QAAQ,CAAC;IACnB,iBAAiB,EAAE,CAAC;SAClB,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;SACtC,OAAO,CAAC,UAAU,CAAC;IACrB,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7C,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7C,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACtC,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1C,kBAAkB,EAAE,CAAC;SACnB,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;SACnD,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;IAClB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1D,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3C,iBAAiB,EAAE,CAAC;SAClB,IAAI,CAAC,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;SAC3C,OAAO,CAAC,QAAQ,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC3C,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,OAAO;IACb,gBAAgB,EAAE,QAAQ;IAC1B,iBAAiB,EAAE,UAAU;IAC7B,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,UAAU,EAAE,KAAK;IACjB,eAAe,EAAE,IAAI;IACrB,kBAAkB,EAAE,CAAC,KAAK,CAAC;IAC3B,gBAAgB,EAAE,SAAS;IAC3B,gBAAgB,EAAE,IAAI;IACtB,iBAAiB,EAAE,QAAQ;CAC3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"code-detector.d.ts","sourceRoot":"","sources":["../../src/utils/code-detector.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACZ;AAKD,MAAM,WAAW,sBAAsB;IACtC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IAClC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,OAAO,CAAC;CAC9B;AAwID,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,GAC7B,SAAS,EAAE,CAwBb;AAED,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,SAAS,EAAE,GACjB,OAAO,CAOT;AAED,wBAAgB,YAAY,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,GACzB,SAAS,EAAE,CAgGb;AAED,wBAAgB,WAAW,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,CAuCpE"}
1
+ {"version":3,"file":"code-detector.d.ts","sourceRoot":"","sources":["../../src/utils/code-detector.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,sBAAsB;IACtC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IAClC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,OAAO,CAAC;CAC9B;AAuKD,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,GAC7B,SAAS,EAAE,CAkCb;AAED,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,SAAS,EAAE,GACjB,OAAO,CAOT;AAED,wBAAgB,YAAY,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,kBAAkB,GACzB,SAAS,EAAE,CAmGb;AAED,wBAAgB,WAAW,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,CAuCpE"}
@@ -1,5 +1,3 @@
1
- const DOUBLE_QUOTE_REGEX = /"([^"\\]|\\.)*"/g;
2
- const SINGLE_QUOTE_REGEX = /'([^'\\]|\\.)*'/g;
3
1
  function detectFencedCodeBlocks(text) {
4
2
  const ranges = [];
5
3
  const length = text.length;
@@ -63,7 +61,33 @@ function detectFencedCodeBlocks(text) {
63
61
  pos = lineEnd + 1;
64
62
  }
65
63
  if (inBlock) {
66
- ranges.push({ start: blockStart, end: length });
64
+ // Unterminated fenced block: bound the preserved range so we do
65
+ // not treat the entire remaining buffer as code. This is
66
+ // important when processing streaming chunks where the closing
67
+ // fence may not have arrived yet.
68
+ const MAX_UNCLOSED_BLOCK_LENGTH = 8192;
69
+ const maxEnd = Math.min(length, blockStart + MAX_UNCLOSED_BLOCK_LENGTH);
70
+ let end = maxEnd;
71
+ let scanPos = blockStart;
72
+ let prevLineEnd = blockStart;
73
+ while (scanPos < maxEnd) {
74
+ const lineBreakIndex = text.indexOf("\n", scanPos);
75
+ if (lineBreakIndex === -1 || lineBreakIndex >= maxEnd) {
76
+ break;
77
+ }
78
+ const lineEnd = lineBreakIndex;
79
+ const line = text.slice(scanPos, lineEnd);
80
+ // Stop the block at the first blank line after some content.
81
+ if (line.trim() === "") {
82
+ end = prevLineEnd > blockStart ? prevLineEnd : lineEnd;
83
+ break;
84
+ }
85
+ prevLineEnd = lineEnd;
86
+ scanPos = lineEnd + 1;
87
+ }
88
+ if (end > blockStart) {
89
+ ranges.push({ start: blockStart, end });
90
+ }
67
91
  }
68
92
  return ranges;
69
93
  }
@@ -109,15 +133,24 @@ function detectInlineCodeOutsideBlocks(text, blockRanges) {
109
133
  return ranges;
110
134
  }
111
135
  export function detectCodeBlocks(text, options) {
136
+ if (text.length === 0) {
137
+ return [];
138
+ }
112
139
  const ranges = [];
113
140
  let blockRanges = [];
114
- if (options.preserveCodeBlocks) {
141
+ // Always detect fenced blocks when we need inline code detection,
142
+ // even if we're not preserving them. This ensures inline code
143
+ // detection knows where fenced blocks are to exclude them.
144
+ if (options.preserveCodeBlocks || options.preserveInlineCode) {
115
145
  blockRanges = detectFencedCodeBlocks(text);
146
+ }
147
+ if (options.preserveCodeBlocks) {
116
148
  for (const r of blockRanges) {
117
149
  ranges.push(r);
118
150
  }
119
151
  }
120
152
  if (options.preserveInlineCode) {
153
+ // Use blockRanges to exclude inline code detection from fenced blocks
121
154
  const inlineRanges = detectInlineCodeOutsideBlocks(text, blockRanges);
122
155
  for (const r of inlineRanges) {
123
156
  ranges.push(r);
@@ -138,6 +171,9 @@ export function isInPreservedRange(index, ranges) {
138
171
  return false;
139
172
  }
140
173
  export function detectQuotes(text, options) {
174
+ if (text.length === 0) {
175
+ return [];
176
+ }
141
177
  const ranges = [];
142
178
  if (options.preserveBlockquotes) {
143
179
  let currentPos = 0;
@@ -168,8 +204,8 @@ export function detectQuotes(text, options) {
168
204
  }
169
205
  }
170
206
  if (options.preserveInlineQuotes) {
171
- DOUBLE_QUOTE_REGEX.lastIndex = 0;
172
- let doubleMatch = DOUBLE_QUOTE_REGEX.exec(text);
207
+ const doubleQuoteRegex = /"([^"\\]|\\.)*"/g;
208
+ let doubleMatch = doubleQuoteRegex.exec(text);
173
209
  while (doubleMatch !== null) {
174
210
  const matchIndex = doubleMatch.index;
175
211
  const matchLength = doubleMatch[0].length;
@@ -186,10 +222,10 @@ export function detectQuotes(text, options) {
186
222
  end: matchIndex + matchLength,
187
223
  });
188
224
  }
189
- doubleMatch = DOUBLE_QUOTE_REGEX.exec(text);
225
+ doubleMatch = doubleQuoteRegex.exec(text);
190
226
  }
191
- SINGLE_QUOTE_REGEX.lastIndex = 0;
192
- let singleMatch = SINGLE_QUOTE_REGEX.exec(text);
227
+ const singleQuoteRegex = /'([^'\\]|\\.)*'/g;
228
+ let singleMatch = singleQuoteRegex.exec(text);
193
229
  while (singleMatch !== null) {
194
230
  const matchIndex = singleMatch.index;
195
231
  const matchLength = singleMatch[0].length;
@@ -206,7 +242,7 @@ export function detectQuotes(text, options) {
206
242
  end: matchIndex + matchLength,
207
243
  });
208
244
  }
209
- singleMatch = SINGLE_QUOTE_REGEX.exec(text);
245
+ singleMatch = singleQuoteRegex.exec(text);
210
246
  }
211
247
  }
212
248
  if (ranges.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"code-detector.js","sourceRoot":"","sources":["../../src/utils/code-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-detector.js","sourceRoot":"","sources":["../../src/utils/code-detector.ts"],"names":[],"mappings":"AAeA,SAAS,sBAAsB,CAAC,IAAY;IAC3C,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,OAAO,GAAG,IAAI,MAAM,EAAE,CAAC;QACtB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC;QAChE,MAAM,SAAS,GAAG,GAAG,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE5C,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,OAAO,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACnC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAC/B,MAAM;YACP,CAAC;YACD,UAAU,IAAI,CAAC,CAAC;QACjB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,IAAI,OAAO,GAAG,CAAC,CAAC;gBAChB,OAAO,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;oBACpE,OAAO,IAAI,CAAC,CAAC;gBACd,CAAC;gBAED,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;oBAClB,OAAO,GAAG,IAAI,CAAC;oBACf,QAAQ,GAAG,OAAO,CAAC;oBACnB,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;gBACrC,CAAC;YACF,CAAC;QACF,CAAC;aAAM,CAAC;YACP,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,IAAI,OAAO,GAAG,CAAC,CAAC;gBAChB,OAAO,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;oBACpE,OAAO,IAAI,CAAC,CAAC;gBACd,CAAC;gBAED,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;oBACzB,IAAI,cAAc,GAAG,IAAI,CAAC;oBAC1B,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;wBAClD,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAC7B,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;4BAC7C,cAAc,GAAG,KAAK,CAAC;4BACvB,MAAM;wBACP,CAAC;oBACF,CAAC;oBAED,IAAI,cAAc,EAAE,CAAC;wBACpB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;wBACjD,OAAO,GAAG,KAAK,CAAC;wBAChB,QAAQ,GAAG,CAAC,CAAC;oBACd,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3B,MAAM;QACP,CAAC;QAED,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACb,gEAAgE;QAChE,yDAAyD;QACzD,+DAA+D;QAC/D,kCAAkC;QAClC,MAAM,yBAAyB,GAAG,IAAI,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,yBAAyB,CAAC,CAAC;QACxE,IAAI,GAAG,GAAG,MAAM,CAAC;QAEjB,IAAI,OAAO,GAAG,UAAU,CAAC;QACzB,IAAI,WAAW,GAAG,UAAU,CAAC;QAE7B,OAAO,OAAO,GAAG,MAAM,EAAE,CAAC;YACzB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnD,IAAI,cAAc,KAAK,CAAC,CAAC,IAAI,cAAc,IAAI,MAAM,EAAE,CAAC;gBACvD,MAAM;YACP,CAAC;YACD,MAAM,OAAO,GAAG,cAAc,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE1C,6DAA6D;YAC7D,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACxB,GAAG,GAAG,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;gBACvD,MAAM;YACP,CAAC;YAED,WAAW,GAAG,OAAO,CAAC;YACtB,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC;QACvB,CAAC;QAED,IAAI,GAAG,GAAG,UAAU,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,6BAA6B,CACrC,IAAY,EACZ,WAAwB;IAExB,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC;QACnB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE1B,IAAI,EAAE,KAAK,GAAG,IAAI,kBAAkB,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;YACtD,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACV,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAChB,MAAM,KAAK,GAAG,CAAC,CAAC;YAChB,CAAC,IAAI,CAAC,CAAC;YAEP,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC;gBACnB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAE3B,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oBAClB,MAAM;gBACP,CAAC;gBAED,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oBAClB,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;wBAClD,CAAC,IAAI,CAAC,CAAC;wBACP,SAAS;oBACV,CAAC;gBACF,CAAC;gBAED,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;oBACjB,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;oBAClB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC5B,CAAC,GAAG,GAAG,CAAC;oBACR,MAAM;gBACP,CAAC;gBAED,CAAC,IAAI,CAAC,CAAC;YACR,CAAC;YAED,IAAI,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC5C,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YACf,CAAC;YAED,SAAS;QACV,CAAC;QAED,CAAC,IAAI,CAAC,CAAC;IACR,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC/B,IAAY,EACZ,OAA+B;IAE/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACX,CAAC;IACD,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,IAAI,WAAW,GAAgB,EAAE,CAAC;IAElC,kEAAkE;IAClE,8DAA8D;IAC9D,2DAA2D;IAC3D,IAAI,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC9D,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;IACF,CAAC;IAED,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAChC,sEAAsE;QACtE,MAAM,YAAY,GAAG,6BAA6B,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACtE,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;IACF,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CACjC,KAAa,EACb,MAAmB;IAEnB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAC3B,IAAY,EACZ,OAA2B;IAE3B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACX,CAAC;IACD,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;QACjC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,OAAO,UAAU,IAAI,MAAM,EAAE,CAAC;YAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC;YAChE,MAAM,SAAS,GAAG,UAAU,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAE5C,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,OAAO,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACnC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;oBAC/B,MAAM;gBACP,CAAC;gBACD,UAAU,IAAI,CAAC,CAAC;YACjB,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAEvC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;gBACrC,MAAM,GAAG,GAAG,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;gBACtD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7B,CAAC;YAED,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC3B,MAAM;YACP,CAAC;YAED,UAAU,GAAG,OAAO,GAAG,CAAC,CAAC;QAC1B,CAAC;IACF,CAAC;IAED,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;QAClC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;QAC5C,IAAI,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,OAAO,WAAW,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC;YACrC,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAE1C,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC5B,IAAI,UAAU,IAAI,KAAK,CAAC,KAAK,IAAI,UAAU,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;oBACzD,UAAU,GAAG,IAAI,CAAC;oBAClB,MAAM;gBACP,CAAC;YACF,CAAC;YAED,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,UAAU;oBACjB,GAAG,EAAE,UAAU,GAAG,WAAW;iBAC7B,CAAC,CAAC;YACJ,CAAC;YAED,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;QAC5C,IAAI,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,OAAO,WAAW,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC;YACrC,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAE1C,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC5B,IAAI,UAAU,IAAI,KAAK,CAAC,KAAK,IAAI,UAAU,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;oBACzD,UAAU,GAAG,IAAI,CAAC;oBAClB,MAAM;gBACP,CAAC;YACF,CAAC;YAED,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,UAAU;oBACjB,GAAG,EAAE,UAAU,GAAG,WAAW;iBAC7B,CAAC,CAAC;YACJ,CAAC;YAED,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,YAA2B;IACtD,MAAM,IAAI,GAAgB,EAAE,CAAC;IAE7B,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;IACF,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,IAAI,OAAO,GAAc;QACxB,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK;QACpB,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG;KAChB,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAElB,IAAI,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;gBACzB,OAAO,GAAG;oBACT,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,GAAG,EAAE,CAAC,CAAC,GAAG;iBACV,CAAC;YACH,CAAC;QACF,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;QAC1C,CAAC;IACF,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"grapheme.d.ts","sourceRoot":"","sources":["../../src/utils/grapheme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAuDH,wBAAiB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAgB1D;AAID,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD"}
1
+ {"version":3,"file":"grapheme.d.ts","sourceRoot":"","sources":["../../src/utils/grapheme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAwDH,wBAAiB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAgB1D;AAQD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAgBvD"}
@@ -16,6 +16,7 @@
16
16
  * @see src/core/processor.ts
17
17
  */
18
18
  import Graphemer from "graphemer";
19
+ import { EXTRA_STRIPPABLE } from "../core/emoji-data.js";
19
20
  let intlSegmenter = null;
20
21
  let graphemer = null;
21
22
  function hasIntlSegmenter() {
@@ -57,8 +58,25 @@ export function* graphemes(text) {
57
58
  yield segment;
58
59
  }
59
60
  }
60
- const _EMOJI_REGEX = /\p{Extended_Pictographic}/u;
61
+ // Fast path: Extended_Pictographic and Regional Indicators
62
+ const _PICTOGRAPHIC_RI_REGEX = /[\p{Extended_Pictographic}\p{RI}]/u;
63
+ // Keycap emoji pattern: digit/hash/asterisk + optional variation selector + keycap
64
+ const _KEYCAP_REGEX = /[0-9#*]\uFE0F?\u20E3/u;
61
65
  export function mightContainEmoji(text) {
62
- return /[\p{Extended_Pictographic}\p{RI}#*0-9]/u.test(text);
66
+ // Fast path: check Extended_Pictographic and Regional Indicators first
67
+ if (_PICTOGRAPHIC_RI_REGEX.test(text)) {
68
+ return true;
69
+ }
70
+ // Slow path: check for keycap sequences (rare in practice)
71
+ if (_KEYCAP_REGEX.test(text)) {
72
+ return true;
73
+ }
74
+ // Check for extra strippables (non-emoji glyphs we want to remove)
75
+ for (const extra of EXTRA_STRIPPABLE) {
76
+ if (text.includes(extra)) {
77
+ return true;
78
+ }
79
+ }
80
+ return false;
63
81
  }
64
82
  //# sourceMappingURL=grapheme.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"grapheme.js","sourceRoot":"","sources":["../../src/utils/grapheme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,SAAS,MAAM,WAAW,CAAC;AAUlC,IAAI,aAAa,GAAyB,IAAI,CAAC;AAC/C,IAAI,SAAS,GAAqB,IAAI,CAAC;AAEvC,SAAS,gBAAgB;IACxB,MAAM,UAAU,GAAG,IAElB,CAAC;IAEF,OAAO,OAAO,UAAU,CAAC,SAAS,KAAK,UAAU,CAAC;AACnD,CAAC;AAED,SAAS,gBAAgB;IACxB,IAAI,aAAa,EAAE,CAAC;QACnB,OAAO,aAAa,CAAC;IACtB,CAAC;IAED,MAAM,UAAU,GAAG,IAElB,CAAC;IAEF,aAAa,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE;QAC9C,WAAW,EAAE,UAAU;KACvB,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC;AACtB,CAAC;AAED,SAAS,YAAY;IACpB,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,YAAY;IACpB,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACxB,OAAO,gBAAgB,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,YAAY,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,IAAY;IACtC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;QAC5B,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,MAAM,OAAO,CAAC;QACf,CAAC;QAED,OAAO;IACR,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAEhD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,OAAO,CAAC;IACf,CAAC;AACF,CAAC;AAED,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAElD,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC7C,OAAO,yCAAyC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"grapheme.js","sourceRoot":"","sources":["../../src/utils/grapheme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAUzD,IAAI,aAAa,GAAyB,IAAI,CAAC;AAC/C,IAAI,SAAS,GAAqB,IAAI,CAAC;AAEvC,SAAS,gBAAgB;IACxB,MAAM,UAAU,GAAG,IAElB,CAAC;IAEF,OAAO,OAAO,UAAU,CAAC,SAAS,KAAK,UAAU,CAAC;AACnD,CAAC;AAED,SAAS,gBAAgB;IACxB,IAAI,aAAa,EAAE,CAAC;QACnB,OAAO,aAAa,CAAC;IACtB,CAAC;IAED,MAAM,UAAU,GAAG,IAElB,CAAC;IAEF,aAAa,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE;QAC9C,WAAW,EAAE,UAAU;KACvB,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC;AACtB,CAAC;AAED,SAAS,YAAY;IACpB,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,YAAY;IACpB,IAAI,gBAAgB,EAAE,EAAE,CAAC;QACxB,OAAO,gBAAgB,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,YAAY,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,IAAY;IACtC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;QAC5B,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,MAAM,OAAO,CAAC;QACf,CAAC;QAED,OAAO;IACR,CAAC;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAEhD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,OAAO,CAAC;IACf,CAAC;AACF,CAAC;AAED,2DAA2D;AAC3D,MAAM,sBAAsB,GAAG,oCAAoC,CAAC;AAEpE,mFAAmF;AACnF,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAE9C,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC7C,uEAAuE;IACvE,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACb,CAAC;IACD,2DAA2D;IAC3D,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IACD,mEAAmE;IACnE,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "name": "@bastiangx/opencode-unmoji",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "OpenCode plugin to strip or replace emojis from agent outputs",
5
5
  "type": "module",
6
+ "sideEffects": false,
7
+ "packageManager": "bun@1.3.5",
8
+ "engines": {
9
+ "node": ">=20"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://codeberg.org/bastiangx/opencode-unmoji"
14
+ },
15
+ "bugs": {
16
+ "url": "https://codeberg.org/bastiangx/opencode-unmoji/issues"
17
+ },
18
+ "homepage": "https://codeberg.org/bastiangx/opencode-unmoji#readme",
6
19
  "main": "dist/index.js",
7
20
  "types": "dist/index.d.ts",
8
21
  "exports": {
@@ -24,8 +37,8 @@
24
37
  "dev": "tsc --watch",
25
38
  "test": "vitest run",
26
39
  "format": "biome format --write .",
27
- "lint": "biome lint .",
28
- "check": "biome check .",
40
+ "lint": "oxlint .",
41
+ "check": "oxlint .",
29
42
  "prepublishOnly": "bun run build && bun run build:plugin && bun run test"
30
43
  },
31
44
  "keywords": [
@@ -37,8 +50,6 @@
37
50
  "author": "bastiangx",
38
51
  "license": "MIT",
39
52
  "dependencies": {
40
- "@vitest/coverage-v8": "^4.0.16",
41
- "emojibase": "^17.0.0",
42
53
  "graphemer": "^1.4.0",
43
54
  "neverthrow": "^8.2.0",
44
55
  "zod": "^4.2.1"
@@ -47,13 +58,15 @@
47
58
  "@biomejs/biome": "^2.3.10",
48
59
  "@types/bun": "^1.3.5",
49
60
  "@types/node": "^25.0.3",
61
+ "@vitest/coverage-v8": "^4.0.16",
50
62
  "@vitest/ui": "^4.0.16",
63
+ "emojibase": "^17.0.0",
51
64
  "emojibase-data": "^17.0.0",
52
65
  "oxlint": "^1.35.0",
53
66
  "typescript": "^5.9.3",
54
67
  "vitest": "^4.0.16"
55
68
  },
56
69
  "peerDependencies": {
57
- "@opencode-ai/plugin": "^1.0.193"
70
+ "@opencode-ai/plugin": "^1.0.204"
58
71
  }
59
72
  }