@bastiangx/opencode-unmoji 0.3.1 → 0.3.11

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/README.md CHANGED
@@ -1,16 +1,16 @@
1
1
  <div align="center">
2
2
  <a href="https://codeberg.org/bastiangx/opencode-unmoji">
3
- <img height="600" src="https://github.com/user-attachments/assets/e1aaf6b4-a646-4708-8002-9dbac7236f95"/>
3
+ <img src="https://github.com/user-attachments/assets/01c5fa35-036d-4d7a-9feb-8becd744a5af"/>
4
4
  </a>
5
5
  </div>
6
6
 
7
7
  # UNMOJI
8
8
 
9
- <a href="https://npm.io/package/@bastiangx/opencode-unmoji"><img src="https://img.shields.io/badge/package-black?style=for-the-badge&logo=npm&logoSize=auto&labelColor=%23141010&color=%231F1A1A" alt="NPM Package"></a> <a href="https://opencode.cafe/plugin/unmoji"><img src="https://img.shields.io/badge/cafe-black?style=for-the-badge&logo=awesomelists&logoSize=auto&labelColor=%23141010&color=%231F1A1A" alt="OpenCode Cafe"></a> <a href="https://www.codeberg.org/bastiangx/opencode-unmoji"><img src="https://img.shields.io/badge/codeberg-black?style=for-the-badge&logo=codeberg&logoSize=auto&labelColor=%23141010&color=%231F1A1A" alt="codeberg"></a>
9
+ <a href="https://npmjs.com/package/@bastiangx/opencode-unmoji"><img src="https://img.shields.io/badge/npm-black?style=for-the-badge&logo=npm&logoSize=auto&labelColor=%23141010&color=%231F1A1A" alt="NPM Package"></a> <a href="https://npmjs.com/package/@bastiangx/opencode-unmoji"><img src="https://img.shields.io/npm/v/%40bastiangx%2Fopencode-unmoji?style=for-the-badge&label=version&labelColor=%23141010&color=%231F1A1A" alt="NPM Version"></a> <a href="https://npmjs.com/package/@bastiangx/opencode-unmoji"><img src="https://img.shields.io/npm/dm/%40bastiangx%2Fopencode-unmoji?style=for-the-badge&label=downloads&labelColor=%23141010&color=%231F1A1A" alt="NPM Downloads"></a> <a href="https://opencode.cafe/plugin/opencode-unmoji"><img src="https://img.shields.io/badge/opnecode_cafe-black?style=for-the-badge&logo=awesomelists&logoSize=auto&labelColor=%23141010&color=%231F1A1A" alt="OpenCode Cafe"></a> <a href="https://www.codeberg.org/bastiangx/opencode-unmoji"><img src="https://img.shields.io/badge/codeberg-black?style=for-the-badge&logo=codeberg&logoSize=auto&labelColor=%23141010&color=%231F1A1A" alt="codeberg"></a>
10
10
 
11
- An [OpenCode](https://opencode.ai) plugin that strips and replace _all_ emojis from agent outputs.
11
+ An [OpenCode](https://opencode.ai) plugin that strips _all kinds of_ emojis from your agent outputs.
12
12
 
13
- <img height="600" src="https://github.com/user-attachments/assets/fe606d89-01b0-4da6-81b7-5014d6aff972"/>
13
+ <img height="700" src="https://github.com/user-attachments/assets/fe606d89-01b0-4da6-81b7-5014d6aff972"/>
14
14
 
15
15
  ## Installation
16
16
 
@@ -33,103 +33,98 @@ Add the following to your `opencode.json` file:
33
33
 
34
34
  UNMOJI automatically removes _all_ _standard_ unicode emojis and glyphs from your agent outputs.
35
35
 
36
- Specially useful when you are using models like Claude which seem to _LOVE_ spamming emojis on summaries, README files and documentations.
36
+ Especially useful when you are using models like Claude which seem to _LOVE_ spamming emojis on summaries, README files and various documentations.
37
37
 
38
38
  - ~ 30,000 emojis covered.
39
39
 
40
- > _Thinking_ tokens as output targets are not supported.
40
+ ### Output targets
41
41
 
42
- ## Configuration
42
+ 1. _Regular_ agent text and summaries in the main ui thread (format agnostic).
43
+ 2. `newString` (new lines) in markdown files (.md, .mdx, .mdc, .markdown) when an agent calls `edit` tool.
44
+ 3. Whole markdown file content when the agent calls `write` tool.
45
+
46
+ > _Thinking_ tokens as output targets are not supported at this time.
43
47
 
44
- Create and add the `unmoji.json` file to your OpenCode [config path](https://opencode.ai/docs/config/):
48
+ ## Configuration
45
49
 
46
- ### Options
50
+ Create and add the `unmoji.json` file to your OpenCode [config path](https://opencode.ai/docs/config/).
47
51
 
48
52
  ```json
49
53
  {
50
54
  "enabled": true,
51
55
  "mode": "strip",
56
+ "processMarkdown": true,
57
+ "markdownExtensions": [".md"],
58
+ "showNotification": true,
52
59
  "preserveCodeBlocks": true,
53
60
  "preserveInlineCode": true,
54
61
  "skipQuotes": false,
55
62
  "replacementStyle": "github",
56
- "replacementFormat": "[:name:]",
57
- "processMarkdown": true,
58
- "markdownExtensions": [".md"],
59
- "showNotification": true,
60
- "notificationStyle": "thread"
63
+ "replacementFormat": "[:name:]"
61
64
  }
62
65
  ```
63
66
 
64
- | Option | Default | Possible Values | Desc |
65
- | :------------------- | :--------: | :---------------------------------------------------------- | :-------------------------------------------------- |
66
- | `enabled` | `true` | `true`, `false` | Enable / disable the plugin without uninstalling it |
67
- | `mode` | `strip` | `strip`, `replace` | `strip` removes emojis, `replace` puts shortcodes |
68
- | `preserveCodeBlocks` | `true` | `true`, `false` | Do not process emojis inside code blocks |
69
- | `preserveInlineCode` | `true` | `true`, `false` | Do not process emojis inside inline code |
70
- | `skipQuotes` | `false` | `true`, `false` | Do not process emojis inside quoted text blocks |
71
- | `replacementStyle` | `github` | `github`, `slack`, `discord`, `cldr`, `iamcal`, `joypixels` | Shortcode style used when mode is `replace` |
72
- | `replacementFormat` | `[:name:]` | `:name:`, `[:name:]`, `{name}` | Template format for shortcode outputs |
73
- | `processMarkdown` | `true` | `true`, `false` | Process emojis in markdown files written by tools |
74
- | `markdownExtensions` | `[".md"]` | `.md`, `.mdx`, `.mdc`, `.markdown` (array) | File extensions treated as markdown for tool hooks |
75
- | `showNotification` | `true` | `true`, `false` | Show notification when emojis are processed |
76
- | `notificationStyle` | `thread` | `thread`, `thread-verbose`, `toast` | Notification display style |
67
+ #### Full options spec
68
+
69
+ | Option | Default | Possible Values | Desc |
70
+ | :------------------- | :--------: | :---------------------------------------------------------- | :----------------------------------------------------- |
71
+ | `enabled` | `true` | `true`, `false` | Enable / disable the plugin without uninstalling it |
72
+ | `mode` | `strip` | `strip`, `replace` | `strip` removes emojis, `replace` puts shortcodes |
73
+ | `processMarkdown` | `true` | `true`, `false` | Process emojis in markdown files written by tools |
74
+ | `markdownExtensions` | `[".md"]` | `[".md", ".mdx", ".mdc", ".markdown"]` | File extensions treated as markdown for tool hooks |
75
+ | `showNotification` | `true` | `true`, `false` | Shown when emojis are removed |
76
+ | `preserveCodeBlocks` | `true` | `true`, `false` | Do not process emojis inside code blocks |
77
+ | `preserveInlineCode` | `true` | `true`, `false` | Do not process emojis inside inline code |
78
+ | `skipQuotes` | `false` | `true`, `false` | Do not process emojis inside quoted text blocks |
79
+ | `replacementStyle` | `github` | `github`, `slack`, `discord`, `cldr`, `iamcal`, `joypixels` | Shortcode style used when mode is `replace` |
80
+ | `replacementFormat` | `[:name:]` | `:name:`, `[:name:]`, `{name}` | Template format [literal string] for shortcode outputs |
77
81
 
78
- #### `replace` Examples
82
+ ---
79
83
 
80
- ##### GitHub Shortcodes
84
+ ## Contributing
81
85
 
82
- ```json
83
- {
84
- "mode": "replace",
85
- "replacementStyle": "github",
86
- "replacementFormat": ":name:"
87
- }
88
- ```
86
+ Contributions are welcome!
89
87
 
90
- ```bash
91
- # Agent Output
92
- Great work! 🎉 The tests are passing ✅
93
- # Processed Output
94
- Great work! :tada: The tests are passing :white_check_mark:
95
- ```
88
+ Follow the [Contributing guide](https://codeberg.org/bastiangx/opencode-unmoji/src/branch/main/CONTRIBUTING.md) for instructions.
96
89
 
97
- ##### Slack Shortcodes
90
+ ---
98
91
 
99
- ```json
100
- {
101
- "mode": "replace",
102
- "replacementStyle": "slack",
103
- "replacementFormat": "[:name:]"
104
- }
105
- ```
92
+ ---
106
93
 
107
- ```bash
108
- # Agent Output
109
- Deploy successful 🚀 Bug fixed 🐛
110
- # Processed Output
111
- Deploy successful [:rocket:] Bug fixed [:bug:]
112
- ```
94
+ License: MIT
113
95
 
114
- ### Markdown file processing
96
+ ## Emoji Test Section
115
97
 
116
- In addition to stripping/replacing emojis from agent text outputs, UNMOJI can also process markdown content that the agent writes to disk.
98
+ This section contains various emojis for testing the stripping functionality .
117
99
 
118
- When `processMarkdown` is `true` (default):
100
+ ### Heading with Emoji
119
101
 
120
- - The `write` tool's `content` is processed for files whose `filePath` ends with one of `markdownExtensions`.
121
- - The `edit` tool's `newString` is processed for matching markdown paths.
102
+ Some text with multi-codepoint emoji:
122
103
 
123
- This ensures generated README.md, documentation, and other markdown files are kept emoji-free (or use text shortcodes) without affecting non-markdown files.
104
+ - List item with skin tone emoji
105
+ - Another item with fire
124
106
 
125
- ---
107
+ ```js
108
+ // Code block with emoji (should preserve)
109
+ console.log("Hello ");
110
+ ```
126
111
 
127
- ## Contributing
112
+ Inline code with emoji: ` spark`
128
113
 
129
- Contributions are welcome!
114
+ | Table | Column |
115
+ |-------|--------|
116
+ | Row | Data |
130
117
 
131
- Follow the [Contributing guide](https://codeberg.org/bastiangx/opencode-unmoji/src/branch/main/CONTRIBUTING.md) for instructions.
118
+ [Link with emoji ](https://example.com)
119
+
120
+ > Blockquote with emoji
121
+
122
+ Task list:
123
+ - [ ] Unchecked
124
+ - [x] Checked
125
+
126
+ Horizontal rule with adjacent emoji
132
127
 
133
128
  ---
134
129
 
135
- > License: MIT
130
+ More text with emoji
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAS,MAAM,qBAAqB,CAAC;AAwHzD,eAAO,MAAM,MAAM,EAAE,MAyGpB,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAS,MAAM,qBAAqB,CAAC;AA4IzD,eAAO,MAAM,MAAM,EAAE,MAyGpB,CAAC;AAEF,eAAe,MAAM,CAAC"}
package/dist/index.js CHANGED
@@ -19,51 +19,69 @@ const getStringArg = (args, keys) => {
19
19
  }
20
20
  return null;
21
21
  };
22
- const sendNotification = async (client, sessionID, config, stats) => {
23
- if (!config.showNotification || stats.removed === 0) {
24
- return;
22
+ const hasPromptMethod = (x) => {
23
+ if (typeof x !== "object" || x === null)
24
+ return false;
25
+ const obj = x;
26
+ if (typeof obj.session !== "object" || obj.session === null)
27
+ return false;
28
+ const session = obj.session;
29
+ return typeof session.prompt === "function";
30
+ };
31
+ const buildNotificationMessage = (stats) => {
32
+ const emojiWord = stats.removed === 1 ? "emoji" : "emojis";
33
+ const totalKept = stats.keptInlineCode + stats.keptCodeBlock + stats.keptQuote;
34
+ if (totalKept === 0) {
35
+ return `removed ${stats.removed} ${emojiWord}`;
25
36
  }
26
- if (!sessionID || typeof sessionID !== "string") {
27
- return;
37
+ const onlyInline = stats.keptInlineCode > 0 &&
38
+ stats.keptCodeBlock === 0 &&
39
+ stats.keptQuote === 0;
40
+ const onlyCodeBlock = stats.keptCodeBlock > 0 &&
41
+ stats.keptInlineCode === 0 &&
42
+ stats.keptQuote === 0;
43
+ const onlyQuote = stats.keptQuote > 0 &&
44
+ stats.keptInlineCode === 0 &&
45
+ stats.keptCodeBlock === 0;
46
+ const hasCode = stats.keptInlineCode > 0 || stats.keptCodeBlock > 0;
47
+ const hasQuote = stats.keptQuote > 0;
48
+ const keptWord = totalKept === 1 ? "emoji" : "emojis";
49
+ if (onlyInline) {
50
+ return `removed ${stats.removed} ${emojiWord}, kept ${totalKept} in inline code`;
28
51
  }
29
- if (!client || typeof client !== "object") {
30
- return;
52
+ if (onlyCodeBlock) {
53
+ return `removed ${stats.removed} ${emojiWord}, kept ${totalKept} in code blocks`;
31
54
  }
32
- const emojiWord = stats.removed === 1 ? "emoji" : "emojis";
33
- let message = `UNMOJI | removed ${stats.removed} ${emojiWord}`;
34
- if (stats.keptInlineCode > 0) {
35
- const keptWord = stats.keptInlineCode === 1 ? "emoji" : "emojis";
36
- message += ` | Kept ${stats.keptInlineCode} inline code ${keptWord}`;
55
+ if (onlyQuote) {
56
+ return `removed ${stats.removed} ${emojiWord}, kept ${totalKept} in quotes`;
37
57
  }
38
- if (stats.keptQuote > 0) {
39
- const keptWord = stats.keptQuote === 1 ? "emoji" : "emojis";
40
- message += ` | Kept ${stats.keptQuote} ${keptWord} in quotes`;
58
+ if (hasCode && !hasQuote) {
59
+ return `removed ${stats.removed} ${emojiWord}, kept ${totalKept} ${keptWord} in code`;
41
60
  }
42
- if (stats.keptCodeBlock > 0) {
43
- const keptWord = stats.keptCodeBlock === 1 ? "emoji" : "emojis";
44
- message += ` | Kept ${stats.keptCodeBlock} ${keptWord} in code blocks`;
61
+ if (hasQuote && hasCode) {
62
+ return `removed ${stats.removed} ${emojiWord}, kept ${totalKept} ${keptWord} in code/quotes`;
45
63
  }
46
- if (config.notificationStyle === "thread-verbose") {
47
- message += `\nLines: ${stats.lines.join(", ")}`;
64
+ return `removed ${stats.removed} ${emojiWord}, kept ${totalKept} ${keptWord}`;
65
+ };
66
+ const sendNotification = async (client, sessionID, config, stats) => {
67
+ if (!config.showNotification || stats.removed === 0) {
68
+ return;
48
69
  }
49
- const clientObj = client;
70
+ if (!sessionID || typeof sessionID !== "string") {
71
+ return;
72
+ }
73
+ const message = buildNotificationMessage(stats);
74
+ const title = "UNMOJI";
50
75
  try {
51
- if (config.notificationStyle === "toast" && clientObj.tui?.showToast) {
52
- await clientObj.tui.showToast({
53
- title: "UNMOJI",
54
- message,
55
- variant: "info",
56
- });
57
- }
58
- else if (clientObj.session?.prompt) {
59
- await clientObj.session.prompt({
60
- path: { id: sessionID },
61
- body: {
62
- noReply: true,
63
- parts: [{ type: "text", text: message, ignored: true }],
64
- },
65
- });
66
- }
76
+ if (!hasPromptMethod(client))
77
+ return;
78
+ await client.session.prompt({
79
+ path: { id: sessionID },
80
+ body: {
81
+ noReply: true,
82
+ parts: [{ type: "text", text: `${title} | ${message}`, ignored: true }],
83
+ },
84
+ });
67
85
  }
68
86
  catch {
69
87
  // Silent no-op - never fail the hook due to notification errors
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAsB,MAAM,qBAAqB,CAAC;AAGtE,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAErC,MAAM,oBAAoB,GAAG,CAC5B,QAAgB,EAChB,UAAoB,EACV,EAAE;IACZ,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACpB,IAA6B,EAC7B,IAAuB,EACiB,EAAE;IAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QACvB,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAcF,MAAM,eAAe,GAAG,CAAC,CAAU,EAAqB,EAAE;IACzD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,GAAG,GAAG,CAA4B,CAAC;IACzC,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1E,MAAM,OAAO,GAAG,GAAG,CAAC,OAAkC,CAAC;IACvD,OAAO,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,KAKjC,EAAU,EAAE;IACZ,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC3D,MAAM,SAAS,GACd,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC;IAE9D,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,WAAW,KAAK,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;IAChD,CAAC;IAED,MAAM,UAAU,GACf,KAAK,CAAC,cAAc,GAAG,CAAC;QACxB,KAAK,CAAC,aAAa,KAAK,CAAC;QACzB,KAAK,CAAC,SAAS,KAAK,CAAC,CAAC;IACvB,MAAM,aAAa,GAClB,KAAK,CAAC,aAAa,GAAG,CAAC;QACvB,KAAK,CAAC,cAAc,KAAK,CAAC;QAC1B,KAAK,CAAC,SAAS,KAAK,CAAC,CAAC;IACvB,MAAM,SAAS,GACd,KAAK,CAAC,SAAS,GAAG,CAAC;QACnB,KAAK,CAAC,cAAc,KAAK,CAAC;QAC1B,KAAK,CAAC,aAAa,KAAK,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,GAAG,CAAC,IAAI,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEtD,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO,WAAW,KAAK,CAAC,OAAO,IAAI,SAAS,UAAU,SAAS,iBAAiB,CAAC;IAClF,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QACnB,OAAO,WAAW,KAAK,CAAC,OAAO,IAAI,SAAS,UAAU,SAAS,iBAAiB,CAAC;IAClF,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACf,OAAO,WAAW,KAAK,CAAC,OAAO,IAAI,SAAS,UAAU,SAAS,YAAY,CAAC;IAC7E,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1B,OAAO,WAAW,KAAK,CAAC,OAAO,IAAI,SAAS,UAAU,SAAS,IAAI,QAAQ,UAAU,CAAC;IACvF,CAAC;IACD,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;QACzB,OAAO,WAAW,KAAK,CAAC,OAAO,IAAI,SAAS,UAAU,SAAS,IAAI,QAAQ,iBAAiB,CAAC;IAC9F,CAAC;IAED,OAAO,WAAW,KAAK,CAAC,OAAO,IAAI,SAAS,UAAU,SAAS,IAAI,QAAQ,EAAE,CAAC;AAC/E,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,KAAK,EAC7B,MAAe,EACf,SAA6B,EAC7B,MAAoB,EACpB,KAMC,EACe,EAAE;IAClB,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO;IACR,CAAC;IAED,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QACjD,OAAO;IACR,CAAC;IAED,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,QAAQ,CAAC;IAEvB,IAAI,CAAC;QACJ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAAE,OAAO;QAErC,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAC3B,IAAI,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;YACvB,IAAI,EAAE;gBACL,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,MAAM,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;aACvE;SACD,CAAC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACR,gEAAgE;IACjE,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAW,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IAClD,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAE/C,IAAI,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;QAC1B,OAAO,EAAW,CAAC;IACpB,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;IAElC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,EAAW,CAAC;IACpB,CAAC;IAED,OAAO;QACN,4BAA4B,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACtD,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAChD,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;gBACjC,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO;YACR,CAAC;QACF,CAAC;QAED,qBAAqB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC9C,IAAI,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;oBAC7B,OAAO;gBACR,CAAC;gBAED,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBAEzB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACvC,OAAO;gBACR,CAAC;gBAED,MAAM,UAAU,GAAG,IAA+B,CAAC;gBAEnD,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;gBACxE,IAAI,CAAC,WAAW,EAAE,CAAC;oBAClB,OAAO;gBACR,CAAC;gBAED,IACC,CAAC,oBAAoB,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,kBAAkB,CAAC,EAClE,CAAC;oBACF,OAAO;gBACR,CAAC;gBAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;oBAC1B,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;oBACzD,IAAI,CAAC,UAAU,EAAE,CAAC;wBACjB,OAAO;oBACR,CAAC;oBAED,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;wBAClD,OAAO;oBACR,CAAC;oBAED,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBACrD,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;wBACnB,MAAM,aAAa,GAAG,MAAM,CAAC,KAAsB,CAAC;wBACpD,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC;wBAChD,MAAM,gBAAgB,CACrB,MAAM,EACN,KAAK,CAAC,SAAS,EACf,MAAM,EACN,aAAa,CAAC,KAAK,CACnB,CAAC;oBACH,CAAC;oBACD,OAAO;gBACR,CAAC;gBAED,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACzB,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,EAAE;wBAC7C,WAAW;wBACX,YAAY;qBACZ,CAAC,CAAC;oBACH,IAAI,CAAC,YAAY,EAAE,CAAC;wBACnB,OAAO;oBACR,CAAC;oBAED,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;wBACpD,OAAO;oBACR,CAAC;oBAED,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBACvD,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;wBACnB,MAAM,aAAa,GAAG,MAAM,CAAC,KAAsB,CAAC;wBACpD,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC;wBAClD,MAAM,gBAAgB,CACrB,MAAM,EACN,KAAK,CAAC,SAAS,EACf,MAAM,EACN,aAAa,CAAC,KAAK,CACnB,CAAC;oBACH,CAAC;gBACF,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO;YACR,CAAC;QACF,CAAC;KACQ,CAAC;AACZ,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -22687,8 +22687,7 @@ var ConfigSchema = exports_external.object({
22687
22687
  skipQuotes: exports_external.boolean().default(false),
22688
22688
  processMarkdown: exports_external.boolean().default(true),
22689
22689
  markdownExtensions: exports_external.array(exports_external.enum([".md", ".mdx", ".mdc", ".markdown"])).default([".md"]),
22690
- showNotification: exports_external.boolean().default(true),
22691
- notificationStyle: exports_external.enum(["thread", "thread-verbose", "toast"]).default("thread")
22690
+ showNotification: exports_external.boolean().default(true)
22692
22691
  });
22693
22692
  var DEFAULT_CONFIG = {
22694
22693
  enabled: true,
@@ -22700,8 +22699,7 @@ var DEFAULT_CONFIG = {
22700
22699
  skipQuotes: false,
22701
22700
  processMarkdown: true,
22702
22701
  markdownExtensions: [".md"],
22703
- showNotification: true,
22704
- notificationStyle: "thread"
22702
+ showNotification: true
22705
22703
  };
22706
22704
 
22707
22705
  // src/core/config.ts
@@ -53931,51 +53929,63 @@ var getStringArg = (args, keys) => {
53931
53929
  }
53932
53930
  return null;
53933
53931
  };
53934
- var sendNotification = async (client, sessionID, config2, stats) => {
53935
- if (!config2.showNotification || stats.removed === 0) {
53936
- return;
53932
+ var hasPromptMethod = (x) => {
53933
+ if (typeof x !== "object" || x === null)
53934
+ return false;
53935
+ const obj = x;
53936
+ if (typeof obj.session !== "object" || obj.session === null)
53937
+ return false;
53938
+ const session = obj.session;
53939
+ return typeof session.prompt === "function";
53940
+ };
53941
+ var buildNotificationMessage = (stats) => {
53942
+ const emojiWord = stats.removed === 1 ? "emoji" : "emojis";
53943
+ const totalKept = stats.keptInlineCode + stats.keptCodeBlock + stats.keptQuote;
53944
+ if (totalKept === 0) {
53945
+ return `removed ${stats.removed} ${emojiWord}`;
53937
53946
  }
53938
- if (!sessionID || typeof sessionID !== "string") {
53939
- return;
53947
+ const onlyInline = stats.keptInlineCode > 0 && stats.keptCodeBlock === 0 && stats.keptQuote === 0;
53948
+ const onlyCodeBlock = stats.keptCodeBlock > 0 && stats.keptInlineCode === 0 && stats.keptQuote === 0;
53949
+ const onlyQuote = stats.keptQuote > 0 && stats.keptInlineCode === 0 && stats.keptCodeBlock === 0;
53950
+ const hasCode = stats.keptInlineCode > 0 || stats.keptCodeBlock > 0;
53951
+ const hasQuote = stats.keptQuote > 0;
53952
+ const keptWord = totalKept === 1 ? "emoji" : "emojis";
53953
+ if (onlyInline) {
53954
+ return `removed ${stats.removed} ${emojiWord}, kept ${totalKept} in inline code`;
53940
53955
  }
53941
- if (!client || typeof client !== "object") {
53942
- return;
53956
+ if (onlyCodeBlock) {
53957
+ return `removed ${stats.removed} ${emojiWord}, kept ${totalKept} in code blocks`;
53943
53958
  }
53944
- const emojiWord = stats.removed === 1 ? "emoji" : "emojis";
53945
- let message = `UNMOJI | removed ${stats.removed} ${emojiWord}`;
53946
- if (stats.keptInlineCode > 0) {
53947
- const keptWord = stats.keptInlineCode === 1 ? "emoji" : "emojis";
53948
- message += ` | Kept ${stats.keptInlineCode} inline code ${keptWord}`;
53959
+ if (onlyQuote) {
53960
+ return `removed ${stats.removed} ${emojiWord}, kept ${totalKept} in quotes`;
53949
53961
  }
53950
- if (stats.keptQuote > 0) {
53951
- const keptWord = stats.keptQuote === 1 ? "emoji" : "emojis";
53952
- message += ` | Kept ${stats.keptQuote} ${keptWord} in quotes`;
53962
+ if (hasCode && !hasQuote) {
53963
+ return `removed ${stats.removed} ${emojiWord}, kept ${totalKept} ${keptWord} in code`;
53953
53964
  }
53954
- if (stats.keptCodeBlock > 0) {
53955
- const keptWord = stats.keptCodeBlock === 1 ? "emoji" : "emojis";
53956
- message += ` | Kept ${stats.keptCodeBlock} ${keptWord} in code blocks`;
53965
+ if (hasQuote && hasCode) {
53966
+ return `removed ${stats.removed} ${emojiWord}, kept ${totalKept} ${keptWord} in code/quotes`;
53957
53967
  }
53958
- if (config2.notificationStyle === "thread-verbose") {
53959
- message += `
53960
- Lines: ${stats.lines.join(", ")}`;
53968
+ return `removed ${stats.removed} ${emojiWord}, kept ${totalKept} ${keptWord}`;
53969
+ };
53970
+ var sendNotification = async (client, sessionID, config2, stats) => {
53971
+ if (!config2.showNotification || stats.removed === 0) {
53972
+ return;
53973
+ }
53974
+ if (!sessionID || typeof sessionID !== "string") {
53975
+ return;
53961
53976
  }
53962
- const clientObj = client;
53977
+ const message = buildNotificationMessage(stats);
53978
+ const title = "UNMOJI";
53963
53979
  try {
53964
- if (config2.notificationStyle === "toast" && clientObj.tui?.showToast) {
53965
- await clientObj.tui.showToast({
53966
- title: "UNMOJI",
53967
- message,
53968
- variant: "info"
53969
- });
53970
- } else if (clientObj.session?.prompt) {
53971
- await clientObj.session.prompt({
53972
- path: { id: sessionID },
53973
- body: {
53974
- noReply: true,
53975
- parts: [{ type: "text", text: message, ignored: true }]
53976
- }
53977
- });
53978
- }
53980
+ if (!hasPromptMethod(client))
53981
+ return;
53982
+ await client.session.prompt({
53983
+ path: { id: sessionID },
53984
+ body: {
53985
+ noReply: true,
53986
+ parts: [{ type: "text", text: `${title} | ${message}`, ignored: true }]
53987
+ }
53988
+ });
53979
53989
  } catch {}
53980
53990
  };
53981
53991
  var Unmoji = async ({ client }) => {
@@ -1,7 +1,6 @@
1
1
  import { z } from "zod";
2
2
  export type ReplacementStyle = "github" | "slack" | "discord" | "cldr" | "iamcal" | "joypixels";
3
3
  export type MarkdownExtension = ".md" | ".mdx" | ".mdc" | ".markdown";
4
- export type NotificationStyle = "thread" | "thread-verbose" | "toast";
5
4
  export type UnmojiConfig = {
6
5
  enabled: boolean;
7
6
  mode: "strip" | "replace";
@@ -13,7 +12,6 @@ export type UnmojiConfig = {
13
12
  processMarkdown: boolean;
14
13
  markdownExtensions: MarkdownExtension[];
15
14
  showNotification: boolean;
16
- notificationStyle: NotificationStyle;
17
15
  };
18
16
  export declare const ConfigSchema: z.ZodObject<{
19
17
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -45,11 +43,6 @@ export declare const ConfigSchema: z.ZodObject<{
45
43
  ".markdown": ".markdown";
46
44
  }>>>;
47
45
  showNotification: z.ZodDefault<z.ZodBoolean>;
48
- notificationStyle: z.ZodDefault<z.ZodEnum<{
49
- thread: "thread";
50
- "thread-verbose": "thread-verbose";
51
- toast: "toast";
52
- }>>;
53
46
  }, z.core.$strip>;
54
47
  export declare const DEFAULT_CONFIG: UnmojiConfig;
55
48
  //# 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,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,OAAO,CAAC;IAC1B,iBAAiB,EAAE,iBAAiB,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoBvB,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,YAY5B,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,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,OAAO,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBvB,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,YAW5B,CAAC"}
@@ -16,9 +16,6 @@ export const ConfigSchema = z.object({
16
16
  .array(z.enum([".md", ".mdx", ".mdc", ".markdown"]))
17
17
  .default([".md"]),
18
18
  showNotification: z.boolean().default(true),
19
- notificationStyle: z
20
- .enum(["thread", "thread-verbose", "toast"])
21
- .default("thread"),
22
19
  });
23
20
  export const DEFAULT_CONFIG = {
24
21
  enabled: true,
@@ -31,6 +28,5 @@ export const DEFAULT_CONFIG = {
31
28
  processMarkdown: true,
32
29
  markdownExtensions: [".md"],
33
30
  showNotification: true,
34
- notificationStyle: "thread",
35
31
  };
36
32
  //# 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;AA4BxB,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,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,IAAI;IACtB,iBAAiB,EAAE,QAAQ;CAC3B,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyBxB,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,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAC3C,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,IAAI;CACtB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastiangx/opencode-unmoji",
3
- "version": "0.3.1",
3
+ "version": "0.3.11",
4
4
  "description": "OpenCode plugin to strip or replace emojis from agent outputs",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -62,11 +62,11 @@
62
62
  "@vitest/ui": "^4.0.16",
63
63
  "emojibase": "^17.0.0",
64
64
  "emojibase-data": "^17.0.0",
65
- "oxlint": "^1.35.0",
65
+ "oxlint": "^1.36.0",
66
66
  "typescript": "^5.9.3",
67
67
  "vitest": "^4.0.16"
68
68
  },
69
69
  "peerDependencies": {
70
- "@opencode-ai/plugin": "^1.0.204"
70
+ "@opencode-ai/plugin": "^1.0.214"
71
71
  }
72
72
  }