inmem-memo 1.2.0 → 1.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 (3) hide show
  1. package/README.md +44 -27
  2. package/bin/cli.js +3 -3
  3. package/package.json +9 -4
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
- # ⚡ InMem Scratchpad
1
+ # ⚡ inmem-memo
2
2
 
3
3
  <div align="center">
4
4
 
5
- <img src="src/assets/icon.png" width="128" height="128" alt="InMem Scratchpad Icon" />
5
+ <img src="src/assets/icon.png" width="128" height="128" alt="inmem-memo Icon" />
6
6
 
7
7
  ### Ultra-Fast, Pure In-Memory Scratchpad Memo Application
8
8
  **Instantly launchable and installable via npm / npx across Windows, macOS, and Linux**
@@ -10,7 +10,7 @@
10
10
  [![npm version](https://img.shields.io/npm/v/inmem-memo.svg?style=flat-square&color=cb3837)](https://www.npmjs.com/package/inmem-memo)
11
11
  [![Framework: Tauri v2](https://img.shields.io/badge/Framework-Tauri%20v2.0-6366f1.svg?style=flat-square&logo=tauri&logoColor=white)](https://v2.tauri.app/)
12
12
  [![Frontend: React 18](https://img.shields.io/badge/Frontend-React%2018%20%2B%20Vite%205-61dafb.svg?style=flat-square&logo=react&logoColor=black)](https://react.dev/)
13
- [![Storage: In-Memory Only](https://img.shields.io/badge/Storage-In--Memory%20Only-f59e0b.svg?style=flat-square)](https://github.com/)
13
+ [![Storage: In-Memory Only](https://img.shields.io/badge/Storage-In--Memory%20Only-f59e0b.svg?style=flat-square)](https://github.com/jakelizzI/inmem-memo)
14
14
  [![License: MIT](https://img.shields.io/badge/License-MIT-10b981.svg?style=flat-square)](LICENSE)
15
15
 
16
16
  <br />
@@ -57,15 +57,16 @@ inmem-memo
57
57
 
58
58
  During development and daily work, we constantly need a temporary place to paste and inspect JSON payloads, perform quick regex string replacements, or jot down transient notes.
59
59
 
60
- InMem Scratchpad eliminates traditional note management overhead—such as title editing, file naming, folder hierarchies, and disk indexing—in favor of **instant startup speed, pure in-memory security, and ultra-low resource usage** powered by **Tauri v2 + Rust**.
60
+ inmem-memo eliminates traditional note management overhead—such as title editing, file naming, folder hierarchies, and disk indexing—in favor of **instant startup speed, pure in-memory security, and ultra-low resource usage** powered by **Tauri v2 + Rust**.
61
61
 
62
62
  ---
63
63
 
64
64
  ## 🌟 Key Features
65
65
 
66
66
  ### 1. 🛡️ Pure In-Memory Security Policy
67
- - **Zero Disk Persistence for Memo Text**: Note text is kept purely in RAM. It is never written to disk, databases, or `localStorage`.
67
+ - **Zero Disk Persistence for Memo Text**: Note text is kept strictly in RAM. It is never written to disk, databases, or `localStorage`.
68
68
  - **Complete Erasure on Process Exit**: Terminating the application (via "Quit App" in settings or tray menu) immediately releases all allocated memory back to the OS.
69
+ - **Robust macOS & Multi-Platform Process Termination**: Guaranteed process exit via `std::process::exit(0)` ensuring full memory cleanup across Windows, macOS, and Linux.
69
70
  - **Unload Guard**: Built-in confirmation prompt to prevent accidental data loss while typing.
70
71
 
71
72
  ### 2. ⚡ Right Quick-Action Toolbar (JSON Format & Regex Replacements)
@@ -73,7 +74,8 @@ InMem Scratchpad eliminates traditional note management overhead—such as title
73
74
  - Permanently pinned at the top. Instantly prettifies unformatted JSON payloads with clean 2-space indentation.
74
75
  - **Custom Regular Expression Actions**:
75
76
  - Add, edit, test, and save frequently used regex replacement rules via the Settings modal.
76
- - **Live Preview Testing**: Interactive sandbox inside the Settings modal to verify pattern replacements in real time.
77
+ - **Interactive Regex Flags Cheat Sheet & Help Guide**: Clear explanations for `g` (global), `m` (multiline), `i` (case-insensitive), and `s` (dot-all) with one-click quick chips (`gm`, `g`, `gi`).
78
+ - **Multiline Real-Time Testing Sandbox**: 2-pane interactive preview (input text ➔ live replacement output) with sample preset buttons to verify pattern replacements across multiple lines.
77
79
  - **One-Click Presets**:
78
80
  - "Clean Empty Lines" (`^\s*$\n` ➔ `""`)
79
81
  - "Trim Trailing Spaces" (`[ \t]+$` ➔ `""`)
@@ -81,33 +83,43 @@ InMem Scratchpad eliminates traditional note management overhead—such as title
81
83
  - "Strip HTML Tags" (`<[^>]+>` ➔ `""`)
82
84
  - "Collapse Multiple Spaces" (`[ \t]+` ➔ `" "`)
83
85
 
84
- ### 3. ↩️ Full `Ctrl + Z` (Undo) & `Ctrl + Y` (Redo) History Stack
86
+ ### 3. 📝 Advanced Lightweight Editor (Line Numbers, Syntax Highlighting & Code Folding)
87
+ - **Line Numbers (ON / OFF Toggle)**:
88
+ - Clean line number gutter along the left edge with active line highlighting. Toggleable anytime in Settings.
89
+ - **Custom Syntax Highlighting (Zero Bloat)**:
90
+ - Native, ultra-light regex-based tokenization for **JSON, YAML, JavaScript, and Markdown** tailored to all 3 themes.
91
+ - Automatic language detection with a real-time status badge (`JSON`, `YAML`, `JS`, `Markdown`, `Plain`) in the status bar.
92
+ - **Inline Code & Block Folding**:
93
+ - Fold and expand JSON objects `{...}`, arrays `[...]`, and YAML indentation blocks directly in the editor with smooth fold indicators (▼ / ▶).
94
+ - **Tab Width & Indent Unit Configuration**:
95
+ - Choose between 2-space and 4-space indentation with full `Tab` key insertion support.
96
+
97
+ ### 4. 🎨 Modern UI & 3 Themes (Midnight / OLED / Clean Light)
98
+ - **3 Curated Color Themes**:
99
+ - **Midnight Dark**: Deep gradient dark mode for night work.
100
+ - **OLED Pure Black**: High-contrast, power-saving true black mode.
101
+ - **Clean Light**: Crisp, bright light mode with soft shadows and refined readability.
102
+ - **Interactive Font Resizing**:
103
+ - Adjust editor font size via numerical input or interactively via **`Ctrl + MouseWheel`** (Mac: `Cmd + Wheel`) with smooth silent zooming.
104
+ - **Live Markdown Preview**: Toggle between raw text editing and sanitized Markdown rendering with one click (sanitized with DOMPurify).
105
+ - **Status Bar & UI Version Display**: Real-time character, word, line count metrics, detected language badge, and bottom-left version badge (`v1.3.0`).
106
+
107
+ ### 5. 📑 2-Column Sidebar Settings Modal
108
+ - Redesigned from horizontal tabs into a **macOS / VS Code style 2-column sidebar navigation** layout.
109
+ - Easily customize shortcuts, regex actions, appearance themes, font sizes, editor preferences (Line Numbers, Folding, Highlighting), and process termination in dedicated sections.
110
+
111
+ ### 6. ↩️ Full `Ctrl + Z` (Undo) & `Ctrl + Y` (Redo) History Stack
85
112
  - Even after executing batch transformations (JSON formatting or regex replacements), pressing **`Ctrl + Z` (Mac: `Cmd + Z`)** instantly restores the exact previous text state.
86
113
  - Redo anytime using **`Ctrl + Y`** or **`Ctrl + Shift + Z` (Mac: `Cmd + Shift + Z`)**.
87
114
  - Visual Undo/Redo icon buttons located directly in the header bar.
88
115
 
89
- ### 4. ⌨️ Global Shortcut & System Tray Residency
116
+ ### 7. ⌨️ Global Shortcut & System Tray Residency
90
117
  - **Background Tray Standby**: Clicking the window close button (`×`) minimizes the app directly to the system tray (Windows) or menu bar (macOS).
91
118
  - **Instant Hotkey Summon**:
92
119
  - Press the global hotkey from any active window (IDE, browser, terminal) to instantly toggle the scratchpad on top of your screen.
93
120
  - Default: `Ctrl + Shift + M` (Mac: `Cmd + Shift + M`).
94
121
  - Customizable in Settings with an interactive key recorder.
95
122
 
96
- ### 5. ⚙️ Local Settings Persistence & Complete App Exit
97
- - While memo text remains strictly in-memory, your **user preferences are safely persisted to `localStorage`**:
98
- - Global shortcut key
99
- - Custom regex action library
100
- - Theme choice (Midnight Dark / OLED Pure Black)
101
- - Editor preferences (Font size, Tab width, Word wrap)
102
- - **Complete Application Exit**:
103
- - Easily terminate the background tray process and completely free memory with the "Quit App" button in Settings.
104
-
105
- ### 6. 🎨 Modern Dark Glassmorphism UI & Markdown Preview
106
- - **Aesthetic Dark Mode**: Curated color palette with fluid micro-animations.
107
- - **Live Markdown Preview**: Toggle between raw text editing and formatted Markdown rendering with one click.
108
- - **Live Statistics**: Status bar displaying real-time character, word, and line counts.
109
- - **Quick Operations**: Copy all (`Copy`), export file (`Export .md`), and clear (`Clear`).
110
-
111
123
  ---
112
124
 
113
125
  ## ⌨️ Keyboard Shortcuts
@@ -115,6 +127,7 @@ InMem Scratchpad eliminates traditional note management overhead—such as title
115
127
  | Shortcut | Action |
116
128
  |---|---|
117
129
  | `Ctrl + Shift + M` (Mac: `Cmd + Shift + M`) | **Global Summon** (Toggle window visibility from anywhere) |
130
+ | `Ctrl + MouseWheel` (Mac: `Cmd + Wheel`) | **Interactive Font Resize** (Zoom editor text seamlessly) |
118
131
  | `Ctrl + Z` (Mac: `Cmd + Z`) | **Undo** (Revert text changes, JSON formatting, or regex replacements) |
119
132
  | `Ctrl + Y` / `Ctrl + Shift + Z` | **Redo** (Re-apply reverted changes) |
120
133
  | `Tab` | Insert indentation (2 or 4 spaces) |
@@ -128,17 +141,21 @@ InMem Scratchpad eliminates traditional note management overhead—such as title
128
141
  - `tauri-plugin-global-shortcut`: System-wide hotkey listener
129
142
  - `tray-icon`: System tray / menu bar residency
130
143
  - `include_image!`: Native embedded icon binaries
131
- - **Frontend**: [React 18](https://react.dev/) + [Vite 5](https://vitejs.dev/) + [Lucide Icons](https://lucide.dev/)
144
+ - **Frontend**: [React 18](https://react.dev/) + [Vite 5](https://vitejs.dev/) + [Lucide Icons](https://lucide.dev/) + [DOMPurify](https://github.com/cure53/DOMPurify)
132
145
  - **Styling**: Vanilla CSS (Modern CSS Variables, Glassmorphism, Responsive Grid/Flexbox)
133
146
  - **Distribution**:
134
- - npm: Automated platform-resolving CLI runner (`inmem-memo`)
135
- - GitHub Actions: Multi-platform automated builds for Windows (`.exe`), macOS (`.dmg`), and Linux (`.AppImage`)
147
+ - npm: Automated platform-resolving CLI runner (`inmem-memo`) with Sigstore Provenance
148
+ - GitHub Actions: Multi-platform automated builds for Windows (`.exe`, `.msi`), macOS (`.dmg`), and Linux (`.AppImage`, `.deb`, `.rpm`)
136
149
 
137
150
  ---
138
151
 
139
152
  ## 💻 Local Development & Building from Source
140
153
 
141
154
  ```powershell
155
+ # Clone repository
156
+ git clone https://github.com/jakelizzI/inmem-memo.git
157
+ cd inmem-memo
158
+
142
159
  # Install frontend dependencies
143
160
  npm install
144
161
 
@@ -156,4 +173,4 @@ npm run tauri build
156
173
 
157
174
  ## 📄 License
158
175
 
159
- [MIT License](LICENSE) © 2026 InMem Scratchpad Project
176
+ [MIT License](LICENSE) © 2026 [jakelizzI](https://github.com/jakelizzI/inmem-memo)
package/bin/cli.js CHANGED
@@ -16,7 +16,7 @@ const packageJson = JSON.parse(
16
16
  );
17
17
 
18
18
  const VERSION = packageJson.version;
19
- const REPO = 'jakelizzI/InMem_Scratchpad';
19
+ const REPO = 'jakelizzI/inmem-memo';
20
20
  const CACHE_DIR = path.join(os.homedir(), '.inmem-memo', `v${VERSION}`);
21
21
 
22
22
  function fetchJson(url) {
@@ -125,7 +125,7 @@ async function main() {
125
125
  const localBinaryPath = path.join(CACHE_DIR, executable);
126
126
 
127
127
  if (!fs.existsSync(localBinaryPath)) {
128
- console.log(`⚡ Setting up InMem Scratchpad (v${VERSION})...`);
128
+ console.log(`⚡ Setting up inmem-memo (v${VERSION})...`);
129
129
  console.log(`📥 Downloading native package from GitHub Releases...`);
130
130
 
131
131
  await downloadFile(downloadUrl, localBinaryPath);
@@ -136,7 +136,7 @@ async function main() {
136
136
  console.log('✅ Setup complete!');
137
137
  }
138
138
 
139
- console.log('🚀 Launching InMem Scratchpad...');
139
+ console.log('🚀 Launching inmem-memo...');
140
140
 
141
141
  if (process.platform === 'win32') {
142
142
  const child = spawn(localBinaryPath, [], { detached: true, stdio: 'ignore' });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "inmem-memo",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Ultra-Fast In-Memory Scratchpad Memo Application for Windows, macOS, and Linux",
5
5
  "type": "module",
6
6
  "bin": {
@@ -13,11 +13,11 @@
13
13
  ],
14
14
  "repository": {
15
15
  "type": "git",
16
- "url": "git+https://github.com/jakelizzI/InMem_Scratchpad.git"
16
+ "url": "git+https://github.com/jakelizzI/inmem-memo.git"
17
17
  },
18
- "homepage": "https://github.com/jakelizzI/InMem_Scratchpad#readme",
18
+ "homepage": "https://github.com/jakelizzI/inmem-memo#readme",
19
19
  "bugs": {
20
- "url": "https://github.com/jakelizzI/InMem_Scratchpad/issues"
20
+ "url": "https://github.com/jakelizzI/inmem-memo/issues"
21
21
  },
22
22
  "keywords": [
23
23
  "scratchpad",
@@ -41,6 +41,11 @@
41
41
  "tauri": "tauri"
42
42
  },
43
43
  "dependencies": {
44
+ "@codemirror/commands": "^6.10.4",
45
+ "@codemirror/language": "^6.12.4",
46
+ "@codemirror/state": "^6.7.1",
47
+ "@codemirror/view": "^6.43.8",
48
+ "@lezer/highlight": "^1.2.3",
44
49
  "@tauri-apps/api": "^2.0.0",
45
50
  "@tauri-apps/plugin-global-shortcut": "^2.0.0",
46
51
  "dompurify": "^3.4.13",