From 7569d44ca94c61804b34a033c09f237df85d259b Mon Sep 17 00:00:00 2001 From: Samuel Elliott Date: Mon, 8 Sep 2025 02:03:41 +0100 Subject: [PATCH] Remove nxapi-auth client identifiers from source --- src/app/main/index.ts | 8 ++++++-- src/cli.ts | 8 +++++--- src/util/nxapi-auth.ts | 22 +++++++++++++++++++--- 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/app/main/index.ts b/src/app/main/index.ts index b28ee84..9701d7e 100644 --- a/src/app/main/index.ts +++ b/src/app/main/index.ts @@ -22,7 +22,7 @@ import createDebug from '../../util/debug.js'; import { dev, dir, git, release, version } from '../../util/product.js'; import { addUserAgent } from '../../util/useragent.js'; import { initStorage, paths } from '../../util/storage.js'; -import { ClientAssertionProvider, NXAPI_AUTH_APP_CLIENT_ID, setClientAssertionProvider } from '../../util/nxapi-auth.js'; +import { ClientAssertionProvider, NXAPI_AUTH_APP_CLIENT_ID, NXAPI_AUTH_APP_SCOPE, setClientAssertionProvider } from '../../util/nxapi-auth.js'; import createI18n, { languages } from '../i18n/index.js'; import { CoralApiInterface } from '../../api/coral.js'; import { StatusUpdateIdentifierSymbol, StatusUpdateMonitor, StatusUpdateNotify, StatusUpdateResult, StatusUpdateSubscriber } from '../../common/status.js'; @@ -167,7 +167,11 @@ export async function init() { initGlobals(); addUserAgent('nxapi-app (Chromium ' + process.versions.chrome + '; Electron ' + process.versions.electron + ')'); - setClientAssertionProvider(new ClientAssertionProvider(NXAPI_AUTH_APP_CLIENT_ID)); + + if (NXAPI_AUTH_APP_CLIENT_ID) { + setClientAssertionProvider(new ClientAssertionProvider(NXAPI_AUTH_APP_CLIENT_ID, undefined, + NXAPI_AUTH_APP_SCOPE)); + } setAboutPanelOptions(); diff --git a/src/cli.ts b/src/cli.ts index d33a057..f13f0e5 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -11,7 +11,7 @@ import { addUserAgent } from './util/useragent.js'; import { USER_AGENT_INFO_URL } from './common/constants.js'; import { init as initGlobals } from './common/globals.js'; import { buildEnvironmentProxyAgent } from './util/undici-proxy.js'; -import { ClientAssertionProvider, NXAPI_AUTH_CLI_CLIENT_ID, setClientAssertionProvider } from './util/nxapi-auth.js'; +import { ClientAssertionProvider, NXAPI_AUTH_CLI_CLIENT_ID, NXAPI_AUTH_CLI_SCOPE, setClientAssertionProvider } from './util/nxapi-auth.js'; const debug = createDebug('cli'); @@ -60,8 +60,10 @@ export async function main(argv = process.argv.slice(2)) { addUserAgent('unidentified-script'); } - setClientAssertionProvider(new ClientAssertionProvider(NXAPI_AUTH_CLI_CLIENT_ID, undefined, - 'ca:gf ca:er ca:dr ca:na')); + if (NXAPI_AUTH_CLI_CLIENT_ID) { + setClientAssertionProvider(new ClientAssertionProvider(NXAPI_AUTH_CLI_CLIENT_ID, undefined, + NXAPI_AUTH_CLI_SCOPE)); + } const yargs = createYargs(argv); diff --git a/src/util/nxapi-auth.ts b/src/util/nxapi-auth.ts index 5df1196..cc9b6a0 100644 --- a/src/util/nxapi-auth.ts +++ b/src/util/nxapi-auth.ts @@ -1,9 +1,25 @@ import { createHash } from 'node:crypto'; import { Jwt, JwtAlgorithm } from './jwt.js'; -import { dev, git, pkg, release } from './product.js'; +import { dev, embedded_nxapi_auth_app_client_id, embedded_nxapi_auth_cli_client_id, git, pkg, release } from './product.js'; -export const NXAPI_AUTH_CLI_CLIENT_ID = 'CKtknJ6HiH2AZIMw-x8ljw'; -export const NXAPI_AUTH_APP_CLIENT_ID = 'GlR_qsPZpNcxqMwnbsSjMA'; +export const NXAPI_AUTH_CLI_CLIENT_ID = + embedded_nxapi_auth_cli_client_id ?? + (pkg.__nxapi_auth?.cli?.client_id as string | undefined) ?? + process.env.NXAPI_AUTH_CLIENT_ID ?? + null; +export const NXAPI_AUTH_CLI_SCOPE = + embedded_nxapi_auth_cli_client_id || pkg.__nxapi_auth?.cli?.client_id ? 'ca:gf ca:er ca:dr ca:na' : + process.env.NXAPI_AUTH_SCOPE ?? + 'ca:gf ca:er ca:dr'; + +export const NXAPI_AUTH_APP_CLIENT_ID = + embedded_nxapi_auth_app_client_id ?? + process.env.NXAPI_AUTH_CLIENT_ID ?? + null; +export const NXAPI_AUTH_APP_SCOPE = + embedded_nxapi_auth_app_client_id ? 'ca:gf ca:er ca:dr' : + process.env.NXAPI_AUTH_SCOPE ?? + 'ca:gf ca:er ca:dr'; export let client_auth_provider: ClientAuthProviderInterface | null = null; export let client_assertion_provider: ClientAssertionProviderInterface | null = null;