test-wuying-agentbay-sdk
Version:
TypeScript SDK for interacting with the Wuying AgentBay cloud runtime environment
1 lines • 8.96 kB
Source Map (JSON)
{"version":3,"sources":["/aoneci/runner/work/source/typescript/dist/key-normalizer-AF7APGQZ.cjs","../src/key-normalizer.ts"],"names":[],"mappings":"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","file":"/aoneci/runner/work/source/typescript/dist/key-normalizer-AF7APGQZ.cjs","sourcesContent":[null,"/**\n * Key name normalization utilities for press_keys tool.\n *\n * This module provides utilities to normalize key names to the correct case format\n * expected by the press_keys MCP tool, improving case compatibility.\n */\n\n// Define key name mappings with correct case formats\n// Category 1: Modifier keys - should be Title Case\nconst MODIFIER_KEYS: Record<string, string> = {\n ctrl: \"Ctrl\",\n control: \"Ctrl\",\n alt: \"Alt\",\n shift: \"Shift\",\n win: \"Win\",\n windows: \"Win\",\n meta: \"Meta\",\n super: \"Super\",\n command: \"Command\",\n cmd: \"Command\",\n};\n\n// Category 2: Function keys - should be Title Case\nconst FUNCTION_KEYS: Record<string, string> = {\n tab: \"Tab\",\n enter: \"Enter\",\n return: \"Enter\",\n escape: \"Escape\",\n esc: \"Escape\",\n backspace: \"Backspace\",\n delete: \"Delete\",\n del: \"Delete\",\n insert: \"Insert\",\n ins: \"Insert\",\n home: \"Home\",\n end: \"End\",\n pageup: \"PageUp\",\n pagedown: \"PageDown\",\n pgup: \"PageUp\",\n pgdn: \"PageDown\",\n space: \"Space\",\n capslock: \"CapsLock\",\n numlock: \"NumLock\",\n scrolllock: \"ScrollLock\",\n printscreen: \"PrintScreen\",\n prtsc: \"PrintScreen\",\n pause: \"Pause\",\n break: \"Pause\",\n};\n\n// Category 3: Arrow keys - should be Title Case\nconst ARROW_KEYS: Record<string, string> = {\n arrowup: \"ArrowUp\",\n arrowdown: \"ArrowDown\",\n arrowleft: \"ArrowLeft\",\n arrowright: \"ArrowRight\",\n up: \"ArrowUp\",\n down: \"ArrowDown\",\n left: \"ArrowLeft\",\n right: \"ArrowRight\",\n};\n\n// Category 4: Special characters - as-is\nconst SPECIAL_CHARS: Record<string, string> = {\n minus: \"-\",\n equal: \"=\",\n leftbracket: \"[\",\n rightbracket: \"]\",\n backslash: \"\\\\\",\n semicolon: \";\",\n quote: \"'\",\n comma: \",\",\n period: \".\",\n slash: \"/\",\n backtick: \"`\",\n};\n\n// Category 5: F-keys - Title Case (F1, F2, ..., F24)\nconst F_KEYS: Record<string, string> = {};\nfor (let i = 1; i <= 24; i++) {\n const fKeyLower = `f${i}`;\n const fKeyUpper = `F${i}`;\n F_KEYS[fKeyLower] = fKeyUpper;\n}\n\n/**\n * Normalize a single key name to the correct case format.\n *\n * @param key - The key name to normalize (can be any case)\n * @returns The normalized key name with correct case\n *\n * Rules:\n * - Letter keys (a-z): Convert to lowercase\n * - Number keys (0-9): Keep as-is\n * - Modifier keys: Convert to Title Case (Ctrl, Alt, Shift, Win, etc.)\n * - Function keys: Convert to Title Case (Tab, Enter, Escape, etc.)\n * - Arrow keys: Convert to Title Case (ArrowUp, ArrowDown, etc.)\n * - F-keys: Convert to correct format (F1, F2, ..., F12)\n * - Unknown keys: Return as-is\n *\n * @example\n * ```typescript\n * normalizeSingleKey(\"A\") // returns \"a\"\n * normalizeSingleKey(\"ctrl\") // returns \"Ctrl\"\n * normalizeSingleKey(\"CTRL\") // returns \"Ctrl\"\n * normalizeSingleKey(\"TAB\") // returns \"Tab\"\n * normalizeSingleKey(\"f1\") // returns \"F1\"\n * ```\n */\nfunction normalizeSingleKey(key: string): string {\n if (!key) {\n return key;\n }\n\n // Convert to lowercase for comparison\n const keyLower = key.toLowerCase();\n\n // Check if it's a single letter (a-z)\n if (key.length === 1 && /[a-zA-Z]/.test(key)) {\n return key.toLowerCase();\n }\n\n // Check if it's a single digit (0-9)\n if (key.length === 1 && /[0-9]/.test(key)) {\n return key;\n }\n\n // Check modifier keys\n if (keyLower in MODIFIER_KEYS) {\n return MODIFIER_KEYS[keyLower];\n }\n\n // Check function keys\n if (keyLower in FUNCTION_KEYS) {\n return FUNCTION_KEYS[keyLower];\n }\n\n // Check arrow keys\n if (keyLower in ARROW_KEYS) {\n return ARROW_KEYS[keyLower];\n }\n\n // Check F-keys\n if (keyLower in F_KEYS) {\n return F_KEYS[keyLower];\n }\n\n // Check special characters\n if (keyLower in SPECIAL_CHARS) {\n return SPECIAL_CHARS[keyLower];\n }\n\n // If the key is already in a known good format (starts with uppercase letter\n // and is not all uppercase), assume it's already correct\n if (\n key[0] === key[0].toUpperCase() &&\n key !== key.toUpperCase() &&\n ![\"Control\", \"Windows\", \"Command\"].includes(key)\n ) {\n return key;\n }\n\n // Unknown key - return as-is\n return key;\n}\n\n/**\n * Normalize a list of key names to the correct case format for press_keys tool.\n *\n * This function automatically converts key names to the format expected by the\n * press_keys MCP tool, improving case compatibility and user experience.\n *\n * @param keys - Array of key names to normalize (can be any case)\n * @returns Array of normalized key names with correct case\n *\n * @example\n * ```typescript\n * normalizeKeys([\"CTRL\", \"C\"]) // returns [\"Ctrl\", \"c\"]\n * normalizeKeys([\"ctrl\", \"shift\", \"Z\"]) // returns [\"Ctrl\", \"Shift\", \"z\"]\n * normalizeKeys([\"alt\", \"TAB\"]) // returns [\"Alt\", \"Tab\"]\n * normalizeKeys([\"win\", \"d\"]) // returns [\"Win\", \"d\"]\n * ```\n *\n * Note:\n * - Modifier keys are converted to Title Case (Ctrl, Alt, Shift, Win)\n * - Function keys are converted to Title Case (Tab, Enter, Escape)\n * - Letter keys are converted to lowercase (a, b, c)\n * - Number keys remain unchanged (0, 1, 2)\n * - Unknown keys are returned as-is\n */\nexport function normalizeKeys(keys: string[]): string[] {\n if (!keys) {\n return keys;\n }\n\n const normalized: string[] = [];\n for (const key of keys) {\n if (typeof key === \"string\") {\n normalized.push(normalizeSingleKey(key));\n } else {\n // Non-string keys are passed through unchanged\n normalized.push(key);\n }\n }\n\n return normalized;\n}\n\n/**\n * Get a dictionary of all supported key name mappings.\n *\n * @returns Object with categories and their supported key names\n *\n * @example\n * ```typescript\n * const mappings = getSupportedKeyNames();\n * console.log(mappings.modifierKeys); // { ctrl: 'Ctrl', alt: 'Alt', ... }\n * ```\n */\nexport function getSupportedKeyNames(): {\n modifierKeys: Record<string, string>;\n functionKeys: Record<string, string>;\n arrowKeys: Record<string, string>;\n fKeys: Record<string, string>;\n specialChars: Record<string, string>;\n} {\n return {\n modifierKeys: MODIFIER_KEYS,\n functionKeys: FUNCTION_KEYS,\n arrowKeys: ARROW_KEYS,\n fKeys: F_KEYS,\n specialChars: SPECIAL_CHARS,\n };\n}\n"]}