@panerelay/cli
Advanced tools
+1
-1
| #!/usr/bin/env node | ||
| import { clearBrowserDefault, listBrowserRegistrations, readBrowserDefault, selectBrowserRegistration, setBrowserDefault } from '@panerelay/browser-registry'; | ||
| import { setBrowserUseEnvironmentMode } from '@panerelay/browser-use/environment'; | ||
| import type { CliAdapterMode } from '@panerelay/protocol'; | ||
| import { type SupportedLocale } from './i18n.js'; | ||
| import { resolveCliConnection, saveCliConnectionMode } from './adapter-dispatcher.js'; | ||
| import type { CliAdapterMode } from '@panerelay/protocol'; | ||
| import { runCliConnectionCommand } from './command-runner.js'; | ||
@@ -8,0 +8,0 @@ export type CliOperation = 'browsers' | 'browser-use' | 'browser-clear' | 'connection-use' | 'connection-resolve' | 'run'; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAGL,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAGlF,OAAO,EAA6C,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5F,OAAO,EAEL,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,MAAM,YAAY,GACtB,UAAU,GAAG,aAAa,GAAG,eAAe,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,KAAK,CAAC;AAEjG,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,SAAS,CAAC,EAAE,YAAY,CAAC;CAC1B;AAkDD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAoI1D;AAMD,MAAM,WAAW,eAAe;IAC9B,mBAAmB,CAAC,EAAE,OAAO,mBAAmB,CAAC;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,wBAAwB,CAAC,EAAE,OAAO,wBAAwB,CAAC;IAC3D,kBAAkB,CAAC,EAAE,OAAO,kBAAkB,CAAC;IAC/C,yBAAyB,CAAC,EAAE,OAAO,yBAAyB,CAAC;IAC7D,iBAAiB,CAAC,EAAE,OAAO,iBAAiB,CAAC;IAC7C,oBAAoB,CAAC,EAAE,OAAO,oBAAoB,CAAC;IACnD,qBAAqB,CAAC,EAAE,OAAO,qBAAqB,CAAC;IACrD,4BAA4B,CAAC,EAAE,OAAO,4BAA4B,CAAC;IACnE,uBAAuB,CAAC,EAAE,OAAO,uBAAuB,CAAC;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAwDD,wBAAsB,IAAI,CACxB,IAAI,GAAE,MAAM,EAA0B,EACtC,YAAY,GAAE,eAAoB,GACjC,OAAO,CAAC,MAAM,CAAC,CAmKjB"} | ||
| {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAGL,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAK1D,OAAO,EAA6C,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5F,OAAO,EAEL,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,MAAM,YAAY,GACtB,UAAU,GAAG,aAAa,GAAG,eAAe,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,KAAK,CAAC;AAEjG,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,SAAS,CAAC,EAAE,YAAY,CAAC;CAC1B;AAoED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,aAAa,CAmI1D;AAMD,MAAM,WAAW,eAAe;IAC9B,mBAAmB,CAAC,EAAE,OAAO,mBAAmB,CAAC;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,wBAAwB,CAAC,EAAE,OAAO,wBAAwB,CAAC;IAC3D,kBAAkB,CAAC,EAAE,OAAO,kBAAkB,CAAC;IAC/C,yBAAyB,CAAC,EAAE,OAAO,yBAAyB,CAAC;IAC7D,iBAAiB,CAAC,EAAE,OAAO,iBAAiB,CAAC;IAC7C,oBAAoB,CAAC,EAAE,OAAO,oBAAoB,CAAC;IACnD,qBAAqB,CAAC,EAAE,OAAO,qBAAqB,CAAC;IACrD,4BAA4B,CAAC,EAAE,OAAO,4BAA4B,CAAC;IACnE,uBAAuB,CAAC,EAAE,OAAO,uBAAuB,CAAC;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAwDD,wBAAsB,IAAI,CACxB,IAAI,GAAE,MAAM,EAA0B,EACtC,YAAY,GAAE,eAAoB,GACjC,OAAO,CAAC,MAAM,CAAC,CAuKjB"} |
+21
-3
| #!/usr/bin/env node | ||
| import { PANERELAY_BROWSER_ID_ENV, PANERELAY_BROWSER_ENV, clearBrowserDefault, listBrowserRegistrations, readBrowserDefault, selectBrowserRegistration, setBrowserDefault, } from '@panerelay/browser-registry'; | ||
| import { setBrowserUseEnvironmentMode } from '@panerelay/browser-use/environment'; | ||
| import { realpathSync } from 'node:fs'; | ||
| import { setBrowserUseEnvironmentMode } from '@panerelay/browser-use/environment'; | ||
| import { readFile } from 'node:fs/promises'; | ||
| import { resolve } from 'node:path'; | ||
@@ -10,2 +11,16 @@ import { fileURLToPath } from 'node:url'; | ||
| import { runCliConnectionCommand } from './command-runner.js'; | ||
| function topLevelArguments(argv) { | ||
| const separator = argv.indexOf('--'); | ||
| return separator < 0 ? argv : argv.slice(0, separator); | ||
| } | ||
| function versionRequested(argv) { | ||
| const commandArguments = topLevelArguments(argv); | ||
| return commandArguments.includes('--version') || commandArguments.includes('-v'); | ||
| } | ||
| async function packageVersion() { | ||
| const manifest = JSON.parse(await readFile(new URL('../package.json', import.meta.url), 'utf8')); | ||
| if (typeof manifest.version !== 'string') | ||
| throw new Error('CLI package version is invalid'); | ||
| return manifest.version; | ||
| } | ||
| function optionAndInlineValue(argument) { | ||
@@ -63,4 +78,3 @@ const separator = argument.indexOf('='); | ||
| const localized = extractLanguageArguments(argv); | ||
| const separator = localized.argv.indexOf('--'); | ||
| const commandArguments = separator < 0 ? localized.argv : localized.argv.slice(0, separator); | ||
| const commandArguments = topLevelArguments(localized.argv); | ||
| if (localized.argv.length === 0 || | ||
@@ -270,2 +284,6 @@ commandArguments.includes('--help') || | ||
| export async function main(argv = process.argv.slice(2), dependencies = {}) { | ||
| if (versionRequested(argv)) { | ||
| console.log(`v${await packageVersion()}`); | ||
| return 0; | ||
| } | ||
| let locale = resolveLocale({ | ||
@@ -272,0 +290,0 @@ environment: dependencies.environment, |
+1
-1
@@ -31,3 +31,3 @@ export type SupportedLocale = 'en' | 'zh-CN'; | ||
| readonly errorUnknownOption: "Unknown option: {option}"; | ||
| readonly help: "Panerelay CLI\n\nUsage:\n panerelay browsers [--lang <language>]\n panerelay browser use <registration-id|family> [--lang <language>]\n panerelay browser clear [--lang <language>]\n panerelay connection use <adapter-id> <direct|extension> [--lang <language>]\n panerelay connection resolve <adapter-id> [--mode <mode>] [--browser <selector>]\n panerelay run <adapter-id> [--mode <mode>] [--browser <selector>] -- <command> [arguments...]\n\nCommands:\n browsers List live Panerelay browser registrations\n browser use Save one live registration as the routing default\n browser clear\n Clear the saved browser default\n connection use\n Save a connection mode for one installed adapter\n connection resolve\n Resolve connection material without running an automation command\n run Run the caller's command with the selected connection\n\nOptions:\n --lang Use en or zh-CN instead of the system language\n --help, -h Show this help\n\nOccasional use without a global installation:\n npx --yes @panerelay/cli browsers"; | ||
| readonly help: "Panerelay CLI\n\nUsage:\n panerelay browsers [--lang <language>]\n panerelay browser use <registration-id|family> [--lang <language>]\n panerelay browser clear [--lang <language>]\n panerelay connection use <adapter-id> <direct|extension> [--lang <language>]\n panerelay connection resolve <adapter-id> [--mode <mode>] [--browser <selector>]\n panerelay run <adapter-id> [--mode <mode>] [--browser <selector>] -- <command> [arguments...]\n\nCommands:\n browsers List live Panerelay browser registrations\n browser use Save one live registration as the routing default\n browser clear\n Clear the saved browser default\n connection use\n Save a connection mode for one installed adapter\n connection resolve\n Resolve connection material without running an automation command\n run Run the caller's command with the selected connection\n\nOptions:\n --lang Use en or zh-CN instead of the system language\n --version, -v\n Show the version\n --help, -h Show this help\n\nOccasional use without a global installation:\n npx --yes @panerelay/cli browsers"; | ||
| }; | ||
@@ -34,0 +34,0 @@ type MessageKey = keyof typeof englishMessages; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC;AAE7C,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDX,CAAC;AAEX,KAAK,UAAU,GAAG,MAAM,OAAO,eAAe,CAAC;AA4D/C,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,GAAG,SAAS,CAMtF;AAyBD,wBAAgB,aAAa,CAAC,OAAO,GAAE,uBAA4B,GAAG,eAAe,CAWpF;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,UAAU,EACf,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAClC,MAAM,CAGR"} | ||
| {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC;AAE7C,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DX,CAAC;AAEX,KAAK,UAAU,GAAG,MAAM,OAAO,eAAe,CAAC;AA8D/C,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,GAAG,SAAS,CAMtF;AAyBD,wBAAgB,aAAa,CAAC,OAAO,GAAE,uBAA4B,GAAG,eAAe,CAWpF;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,UAAU,EACf,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAClC,MAAM,CAGR"} |
+4
-0
@@ -54,2 +54,4 @@ import { execFileSync } from 'node:child_process'; | ||
| --lang Use en or zh-CN instead of the system language | ||
| --version, -v | ||
| Show the version | ||
| --help, -h Show this help | ||
@@ -112,2 +114,4 @@ | ||
| --lang 使用 en 或 zh-CN,不跟随系统语言 | ||
| --version, -v | ||
| 显示版本 | ||
| --help, -h 显示帮助 | ||
@@ -114,0 +118,0 @@ |
+4
-4
| { | ||
| "name": "@panerelay/cli", | ||
| "version": "0.7.0", | ||
| "version": "0.8.0", | ||
| "description": "Engine-neutral browser administration CLI for Panerelay.", | ||
@@ -42,5 +42,5 @@ "type": "module", | ||
| "dependencies": { | ||
| "@panerelay/browser-use": "0.7.0", | ||
| "@panerelay/browser-registry": "0.7.0", | ||
| "@panerelay/protocol": "0.7.0" | ||
| "@panerelay/browser-use": "0.8.0", | ||
| "@panerelay/browser-registry": "0.8.0", | ||
| "@panerelay/protocol": "0.8.0" | ||
| }, | ||
@@ -47,0 +47,0 @@ "scripts": { |
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
91746
0.87%1611
1.38%14
7.69%+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
Updated
Updated