Commit Graph

82 Commits

Author SHA1 Message Date
Claude afe00b3534 Fix OpenRouter API key not working for translation and improve error handling
- API key retrieval now trims whitespace (pasted keys with spaces caused auth failures)
- Fallback to Vue data property if localStorage is empty (covers forgot-to-save case)
- Auto-saves key to localStorage when found only in Vue data
- HTTP-level error handling (401/402/403) with clear user-facing messages
- Changed HTTP-Referer from window.location.origin to window.location.href
  (origin returns "null" for file:// URLs, breaking OpenRouter requests)
- Handle non-JSON error responses gracefully
- Handle string-type error responses from OpenRouter
- Added missing else branch for empty API responses
- Updated README with AI Translation, PromptCraft, and OpenRouter key setup docs

https://claude.ai/code/session_01DjqbQB8WcZoGVe78sjvh72
2026-03-21 02:11:28 +00:00
pliny 2eefb913ea Update TranslateTool.js 2026-03-20 18:31:22 -07:00
pliny 41bf8a9659 Update error message for missing API key 2026-03-20 18:28:39 -07:00
pliny 6144c568f5 Update TranslateTool.js 2026-03-20 18:20:34 -07:00
pliny 9c11572f97 Add files via upload 2026-03-20 18:16:57 -07:00
pliny 43116ba23a Fix formatting in TranslateTool.js 2026-03-20 17:51:38 -07:00
pliny 6a72161544 Update TranslateTool.js 2026-03-20 17:51:25 -07:00
pliny 472a25b7a3 Fix emoji flag for Portugal in TranslateTool.js 2026-03-20 17:47:17 -07:00
pliny 67c2fa9a47 Update TranslateTool.js 2026-03-20 17:46:30 -07:00
pliny 8ebe61cad3 Update TranslateTool.js 2026-03-20 17:44:16 -07:00
pliny 42884083fb Update TranslateTool.js 2026-03-20 17:43:33 -07:00
pliny 50f17b44e2 Update TranslateTool.js 2026-03-20 17:40:06 -07:00
pliny b56e419bca Add files via upload 2026-03-20 17:02:44 -07:00
Dustin Farley 27d63583a5 favs, last used, sortable columns, and update splitter transforms to match selection 2025-12-06 00:21:38 -08:00
Dustin Farley dc10a90851 refactor: migrate to modular tool-based architecture
- Implement tool registry system with individual tool modules
- Reorganize transformers into categorized source modules
- Remove emojiLibrary.js, consolidate into EmojiUtils and emojiData
- Fix mobile close button and tooltip functionality
- Add build system for transforms and emoji data
- Migrate from Python backend to pure JavaScript
- Add comprehensive documentation and testing
- Improve code organization and maintainability
- Ignore generated files (transforms-bundle.js, emojiData.js)
2025-12-02 20:26:32 -08:00
Aidan 4442a3045c Gibberish generator functionality. 2 modes - Random gibberish w/ dictionary and gibberish by removal. 2025-11-17 14:32:05 -05:00
Dustin Farley fc4910555a Refactor emoji library, improve UI responsiveness, and enhance text transforms
- Refactor emojiLibrary.js: auto-generate EMOJI_LIST from categorized emojis
  - Removed 400+ lines of duplicate emoji definitions
  - Implemented single source of truth with deduplication
  - Added emoji count display updates

- Improve responsive layout and styling (style.css)
  - Add flex-wrap to header and transform categories for better wrapping
  - Fix transform button width and sizing issues
  - Improve tokenade-presets responsive layout
  - Remove fixed min-width constraints

- Optimize app performance (app.js)
  - Remove watchers that caused unnecessary emoji grid re-renders
  - Fix category scroll behavior with proper offset calculation
  - Move lastCopyTime from methods to data
  - Refactor setupPasteHandlers method location
  - Fix applyTransform to pass full text to transforms instead of character-by-character
  - Add missing transforms to categories (Vaporwave, Disemvowel, ROT18, ROT5, A1Z26, etc.)

- UI/UX improvements (index.html)
  - Switch to Vue.js production build for better performance
  - Simplify copy buttons (icon only, remove redundant text)
  - Fix Vue key prop warnings with unique keys
  - Improve emoji grid initialization and tab switching logic
  - Reorganize Tokenade panel controls
  - Add structural comments for better code navigation
  - Add emojiWordMap.js script reference

- Enhance text transforms (transforms.js)
  - Inline try-catch blocks for base64, base64url, and url transforms (return '[Invalid input]' on error)
  - Fix numerous copy-paste errors in transform previews (vaporwave, rot5, rot18, upside_down, elder_futhark, greek, wingdings)
  - Fix klingon transform case sensitivity and reverse function for multi-character mappings
  - Update reverse_words preview to show ellipsis at end
  - Refactor emoji_speak to use keyword-based emoji lookup with two-pass replacement
  - Fix emoji_speak digit duplication by excluding single digits from symbol pass

- Add emojiWordMap.js: emoji-to-keywords mapping system
  - Extract emoji word map to separate file for better maintainability
  - Refactor from word->emoji to emoji->keywords[] for variety and semantic realism
  - Add 850+ lines of comprehensive emoji keyword mappings
  - Include 57+ jailbreak-related terms (unlock, bypass, override, escape, exploit, etc.)
  - Add special character mappings (math symbols, arrows, punctuation equivalents)
  - Exclude structural punctuation to maintain readability
2025-11-15 10:54:37 -08:00
pliny 213ef41ace Revert "Expand emoji library: add 1,200+ emojis and 3 new categories" 2025-11-12 08:21:56 -08:00
Parzival-Moksha 307b92aab8 Massively expand emoji library: 2-5x more emojis + new categories
Expanded categories with 2-5x more emojis:
- Faces & People: 75 → 120+ emojis
- Gestures & Body: 25 → 65+ emojis
- Animals & Creatures: 40 → 120+ emojis
- Activities & Sports: 30 → 80+ emojis
- Tech & Objects: 27 → 200+ emojis
- Mystical & Fantasy: 14 → 95+ emojis
- Nature & Weather: 12 → 90+ emojis
- Symbols & Signs: 24 → 280+ emojis

Added NEW categories:
- 🍕 Food & Drink: 130+ emojis (fruits, meals, drinks)
- ✈️ Travel & Places: 125+ emojis (vehicles, buildings, landmarks)
- 🕉️ Spiritual & Religious: 65+ emojis (Om ॐ, crosses, crescents, zodiac)
- 🏁 Flags: 200+ country flags

Total emojis: ~1,500+ (was ~300)
2025-10-16 23:51:39 +02:00
Parzival-Moksha c2785b14d6 Fix emoji category filtering bug
The category tabs were not working because the click handler was:
1. Removing the entire container (including tabs)
2. Re-rendering everything
3. Trying to read the active tab (which no longer existed)

Fixed by:
- Only clearing the emoji grid (gridContainer.innerHTML = '')
- Rebuilding just the emoji buttons
- Preserving the category tabs and their active state

Now clicking different categories properly filters emojis.
2025-10-16 23:51:29 +02:00
EP 1599f6dad8 Advanced Settings: call correct engine method setStegOptions and unescape values; fixes 'engine missing' 2025-08-22 12:53:15 -07:00
EP 4aa0750d91 Advanced Settings: add visual feedback on Apply (temporary glow + 'Applied' label) and busy lock 2025-08-21 12:29:18 -07:00
EP 098e7e57d0 Advanced Settings: fix X to close via Vue binding; wire Apply button to engine setOptions with validation 2025-08-21 12:11:52 -07:00
EP f1f7d1aaf1 Tokenade: remove Randomize toggle from UI; keep randomization enabled internally 2025-08-20 21:37:15 -07:00
EP 233bf577f6 UI: move Tokenizer tab to far right; rename Fuzzer to Mutation Lab 2025-08-20 21:16:43 -07:00
EP 36ed8401e9 Fuzzer: show per-item copy button for every case; add structured download (header + tabbed lines) 2025-08-20 21:13:08 -07:00
EP 5230a340e7 Add Fuzzer tab: generate mutated payloads via Random Mix, ZW/invisible noise, Zalgo, whitespace/casing chaos, and encode shuffle; copy/download support 2025-08-20 21:02:35 -07:00
EP 78e22561e1 Danger modal: ensure not visible by default; show via class toggle; fix acknowledge button to close and restore focus 2025-08-20 20:06:11 -07:00
EP 96a289523f Danger modal: only shown when threshold exceeded; single acknowledge button; no auto-generate 2025-08-20 20:02:39 -07:00
EP 4b729715cf Tokenade Danger Zone: lower threshold to 25M estimated chars and strengthen crash warning copy 2025-08-20 19:55:19 -07:00
EP 41e9173c6d Tokenade: enable Auto-copy by default 2025-08-20 19:48:23 -07:00
EP e6e36209b7 Tokenade UI: enable Single emoji carrier mode by default; apply neon hacker switches for binary options 2025-08-20 19:44:00 -07:00
EP 32843fdd96 Resilience: guard against missing window.transforms to prevent Vue mount failure (tabs appearing all at once) 2025-08-20 19:36:50 -07:00
EP 23359892a8 Fix: implement real Semaphore Flags (arrow-pair mapping with decode); reviewed cipher implementations for consistency 2025-08-20 19:31:31 -07:00
EP c64a35001c Transforms: add Ubbi Dubbi, Rövarspråket, Baconian, Tap Code, Base45; wire into categories 2025-08-20 19:30:00 -07:00
EP ad82dcbb0b Transforms: add QWERTY Left Shift, Base32 Crockford, Hex Compact Uppercase, Bitflip+Base64; register categories 2025-08-20 19:24:42 -07:00
EP aebe13b0b0 Fix tabs showing all content: remove global visibility forcing from emoji grid init; rely on v-if 2025-08-20 19:11:00 -07:00
EP 8357ec9f31 Tabs: add v-cloak safety to prevent all sections showing before Vue mounts; fix Unicode Escape label; defensive CSS 2025-08-20 19:01:19 -07:00
EP 0840bc00e6 Fix potential lockups: make strikethrough/underline robust without emojiLibrary; site tab wiring unchanged; investigate CSS/HTML if issue persists 2025-08-20 18:55:04 -07:00
EP 577a9a93df Transforms: add Base85 (Z85), Base91, and Quoted-Printable; register in Encoding category 2025-08-20 18:51:06 -07:00
EP f06bced43e Transforms QA: mark ambiguous mappings as non-reversible (Leetspeak, NATO, A1Z26, Greek, Regional Indicator); keeps universal decoder reliable 2025-08-20 18:44:49 -07:00
EP 6d1569b3bd Transforms: make Base64/Base64URL and Binary UTF-8 safe (TextEncoder/TextDecoder) for reliable round-trips 2025-08-20 18:36:13 -07:00
EP f8a2aa0e54 Transforms: add Ubbi Dubbi and Rövarspråket (reversible); register in Format category 2025-08-20 18:30:13 -07:00
EP 3ab63e29e9 QA: remove incorrect reverse for Vaporwave (not logically reversible); recheck suite 2025-08-20 18:23:12 -07:00
EP 4c406e2d6c Transforms QA: improve Invisible Text reverse (byte-accurate); simplify previews for Binary/Hex; added tests page already covers flows 2025-08-20 18:18:30 -07:00
EP fb3e48d3c5 Transforms: add Base45, Rail Fence (5 rails), XOR cipher, Swap Case, Unicode normalize/escape/strip-diacritics, Squash Whitespace; register in categories 2025-08-20 18:17:06 -07:00
EP 30c652d9a4 Tokenade controls: set max values to depth 8, breadth 10, repeats 50 (sliders + logic) 2025-08-20 18:03:01 -07:00
EP a3d4fc33df Tokenizer tab: add OpenAI encodings via browser-safe gpt-tokenizer dynamic import; UI: fit all five Tokenade preset buttons on one line (tighter buttons) 2025-08-20 18:00:29 -07:00
EP 030d90bcca Tokenade presets: default separator to ZWNJ for all presets; remove 'Presets' label; keep all five preset buttons on one line 2025-08-20 17:54:26 -07:00
EP 99e0ecbe26 Tokenade UI: fix overlapping by boxing controls, adding padding/margins, and enabling wrap; standardize spacing to match Transform page 2025-08-20 17:45:22 -07:00