@nexusclawhq/cli 0.3.48 → 0.3.49

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.
@@ -1,4 +1,5 @@
1
1
  import { Command } from 'commander';
2
+ import type { Readable } from 'node:stream';
2
3
  interface LoginCookieResponse {
3
4
  accessToken?: string;
4
5
  expiresAt?: string;
@@ -21,5 +22,12 @@ type RestEnvelope<T> = T | {
21
22
  };
22
23
  export declare function unwrapLoginResponse(response: RestEnvelope<LoginCookieResponse>): LoginCookieResponse;
23
24
  export declare function resolveSelectedWorkspaceId(response: LoginCookieResponse): string | null;
25
+ export declare function normalizePasswordFromStdin(value: string): string;
26
+ export declare function resolveLoginPassword(options: {
27
+ password?: string;
28
+ passwordStdin?: boolean;
29
+ }, input?: Readable & {
30
+ isTTY?: boolean;
31
+ }): Promise<string>;
24
32
  export declare const loginJwtCommand: Command;
25
33
  export {};
@@ -3,7 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.loginJwtCommand = void 0;
4
4
  exports.unwrapLoginResponse = unwrapLoginResponse;
5
5
  exports.resolveSelectedWorkspaceId = resolveSelectedWorkspaceId;
6
+ exports.normalizePasswordFromStdin = normalizePasswordFromStdin;
7
+ exports.resolveLoginPassword = resolveLoginPassword;
6
8
  const commander_1 = require("commander");
9
+ const node_process_1 = require("node:process");
7
10
  const spinner_1 = require("../../utils/spinner");
8
11
  const auth_store_1 = require("../../services/auth-store");
9
12
  const error_handler_1 = require("../../utils/error-handler");
@@ -25,20 +28,48 @@ function resolveSelectedWorkspaceId(response) {
25
28
  ? workspaceId
26
29
  : null;
27
30
  }
31
+ function normalizePasswordFromStdin(value) {
32
+ return value.replace(/(?:\r\n|\n|\r)$/, '');
33
+ }
34
+ async function resolveLoginPassword(options, input = node_process_1.stdin) {
35
+ if (options.password && options.passwordStdin) {
36
+ throw new Error('Use either --password or --password-stdin, not both.');
37
+ }
38
+ if (options.password) {
39
+ return options.password;
40
+ }
41
+ if (!options.passwordStdin) {
42
+ throw new Error('A password is required. Prefer --password-stdin to keep it out of shell history.');
43
+ }
44
+ if (input.isTTY) {
45
+ throw new Error('--password-stdin requires piped standard input; it does not read interactively from a terminal.');
46
+ }
47
+ const chunks = [];
48
+ for await (const chunk of input) {
49
+ chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
50
+ }
51
+ const password = normalizePasswordFromStdin(Buffer.concat(chunks).toString('utf8'));
52
+ if (!password) {
53
+ throw new Error('--password-stdin received an empty password.');
54
+ }
55
+ return password;
56
+ }
28
57
  exports.loginJwtCommand = new commander_1.Command('login-jwt')
29
58
  .description('Login via JWT (headless)')
30
59
  .requiredOption('-u, --username <username>', 'Username')
31
- .requiredOption('-p, --password <password>', 'Password')
60
+ .option('-p, --password <password>', 'Password (legacy; visible in shell history)')
61
+ .option('--password-stdin', 'Read the password from standard input', false)
32
62
  .option('-a, --alias <alias>', 'Alias for the org', 'default')
33
63
  .option('-r, --instance-url <url>', 'Instance URL')
34
64
  .option('--json', 'Output one machine-readable JSON document', false)
35
65
  .action((0, error_handler_1.withErrorHandler)(async (opts, command) => {
36
66
  const json = (0, command_options_1.isJsonOutputRequested)(opts, command);
37
67
  const spinner = json ? null : (0, spinner_1.createSpinner)('Authenticating...').start();
68
+ const password = await resolveLoginPassword(opts);
38
69
  const client = new api_client_1.ApiClient(opts.instanceUrl);
39
70
  let res = await client.post('/api/auth/login-cookie', {
40
71
  username: opts.username,
41
- password: opts.password,
72
+ password,
42
73
  });
43
74
  if (!res.success || !res.data) {
44
75
  spinner?.fail(res.error || 'Authentication failed');
@@ -1 +1 @@
1
- {"version":3,"file":"login-jwt.js","sourceRoot":"","sources":["../../../../../src/commands/org/login-jwt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login-jwt.js","sourceRoot":"","sources":["../../../../../src/commands/org/login-jwt.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const strict_1 = __importDefault(require("node:assert/strict"));
7
+ const node_stream_1 = require("node:stream");
7
8
  const node_test_1 = __importDefault(require("node:test"));
8
9
  const login_jwt_1 = require("./login-jwt");
10
+ (0, node_test_1.default)('removes only one trailing line ending from a piped password', () => {
11
+ strict_1.default.equal((0, login_jwt_1.normalizePasswordFromStdin)('secret\n'), 'secret');
12
+ strict_1.default.equal((0, login_jwt_1.normalizePasswordFromStdin)('secret\r\n'), 'secret');
13
+ strict_1.default.equal((0, login_jwt_1.normalizePasswordFromStdin)('secret\n\n'), 'secret\n');
14
+ strict_1.default.equal((0, login_jwt_1.normalizePasswordFromStdin)(' secret '), ' secret ');
15
+ });
16
+ (0, node_test_1.default)('preserves the legacy password option for compatibility', async () => {
17
+ strict_1.default.equal(await (0, login_jwt_1.resolveLoginPassword)({ password: 'legacy-secret' }), 'legacy-secret');
18
+ });
19
+ (0, node_test_1.default)('reads a password from piped standard input without trimming its spaces', async () => {
20
+ strict_1.default.equal(await (0, login_jwt_1.resolveLoginPassword)({ passwordStdin: true }, node_stream_1.Readable.from([' secret with spaces \n'])), ' secret with spaces ');
21
+ });
22
+ (0, node_test_1.default)('rejects empty piped password input', async () => {
23
+ await strict_1.default.rejects((0, login_jwt_1.resolveLoginPassword)({ passwordStdin: true }, node_stream_1.Readable.from(['\n'])), /empty password/);
24
+ });
25
+ (0, node_test_1.default)('rejects ambiguous or missing password sources', async () => {
26
+ await strict_1.default.rejects((0, login_jwt_1.resolveLoginPassword)({ password: 'secret', passwordStdin: true }), /either --password or --password-stdin/);
27
+ await strict_1.default.rejects((0, login_jwt_1.resolveLoginPassword)({}), /Prefer --password-stdin/);
28
+ });
9
29
  (0, node_test_1.default)('unwraps the platform REST response envelope', () => {
10
30
  strict_1.default.deepEqual((0, login_jwt_1.unwrapLoginResponse)({
11
31
  data: {
@@ -1 +1 @@
1
- {"version":3,"file":"login-jwt.test.js","sourceRoot":"","sources":["../../../../../src/commands/org/login-jwt.test.ts"],"names":[],"mappings":";;;;;AAAA,gEAAwC;AACxC,0DAA6B;AAC7B,2CAGqB;AAErB,IAAA,mBAAI,EAAC,6CAA6C,EAAE,GAAG,EAAE;IACvD,gBAAM,CAAC,SAAS,CACd,IAAA,+BAAmB,EAAC;QAClB,IAAI,EAAE;YACJ,mBAAmB,EAAE,oBAAoB;YACzC,WAAW,EAAE,OAAO;SACrB;QACD,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE;KAC/B,CAAC,EACF;QACE,mBAAmB,EAAE,oBAAoB;QACzC,WAAW,EAAE,OAAO;KACrB,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,0DAA0D,EAAE,GAAG,EAAE;IACpE,gBAAM,CAAC,KAAK,CACV,IAAA,sCAA0B,EAAC;QACzB,mBAAmB,EAAE,oBAAoB;QACzC,IAAI,EAAE;YACJ,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,kBAAkB;YACzB,kBAAkB,EAAE,mBAAmB;SACxC;KACF,CAAC,EACF,oBAAoB,CACrB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,iEAAiE,EAAE,GAAG,EAAE;IAC3E,gBAAM,CAAC,KAAK,CACV,IAAA,sCAA0B,EAAC;QACzB,IAAI,EAAE;YACJ,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,kBAAkB;YACzB,kBAAkB,EAAE,mBAAmB;SACxC;KACF,CAAC,EACF,mBAAmB,CACpB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,mBAAI,EAAC,8DAA8D,EAAE,GAAG,EAAE;IACxE,gBAAM,CAAC,KAAK,CACV,IAAA,sCAA0B,EAAC;QACzB,IAAI,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE;KAClD,CAAC,EACF,IAAI,CACL,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"login-jwt.test.js","sourceRoot":"","sources":["../../../../../src/commands/org/login-jwt.test.ts"],"names":[],"mappings":"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"}
@@ -8,5 +8,5 @@ export declare function buildCanonicalWorkforceBundleArchive(options: {
8
8
  portableBundleDigest: `sha256:${string}`;
9
9
  runtimeBindingsDigest: `sha256:${string}`;
10
10
  fileCount: number;
11
- declaredSurfaces: ("employee" | "code" | "flow")[];
11
+ declaredSurfaces: ("code" | "flow" | "employee")[];
12
12
  }>;
@@ -15,7 +15,7 @@ export declare function prepareRemoteWorkforceBundle(options: {
15
15
  portableBundleDigest: `sha256:${string}`;
16
16
  runtimeBindingsDigest: `sha256:${string}`;
17
17
  fileCount: number;
18
- declaredSurfaces: ("employee" | "code" | "flow")[];
18
+ declaredSurfaces: ("code" | "flow" | "employee")[];
19
19
  };
20
20
  sealed: import("./api-client").SealedExecutablePackageArtifact;
21
21
  artifactInput: {
@@ -1,4 +1,4 @@
1
- export declare const WORKFORCE_TEST_CLI_VERSION = "0.3.48";
1
+ export declare const WORKFORCE_TEST_CLI_VERSION = "0.3.49";
2
2
  export declare function assertWorkforceTestCompatibility(compatibilityVersion: string): void;
3
3
  export declare const WORKFORCE_TEST_REGRESSION_QUERY = "\nquery AgentTestRegression($agentId: ID!, $suiteRunId: ID!) {\n agentTestRegression(agentId: $agentId, suiteRunId: $suiteRunId) { suiteRunId current baseline deltas }\n}";
4
4
  export interface WorkforceTestSuiteMetrics {
@@ -12,7 +12,7 @@ exports.listTestResultsRemote = listTestResultsRemote;
12
12
  exports.getTestBaselineRemote = getTestBaselineRemote;
13
13
  exports.getTestRegressionRemote = getTestRegressionRemote;
14
14
  const api_client_1 = require("./api-client");
15
- exports.WORKFORCE_TEST_CLI_VERSION = '0.3.48';
15
+ exports.WORKFORCE_TEST_CLI_VERSION = '0.3.49';
16
16
  function parseCompatibilityVersion(version) {
17
17
  const match = /^(\d+)\.(\d+)\.(\d+)$/.exec(version.trim());
18
18
  if (!match)
@@ -22,10 +22,10 @@ const workforce_test_remote_1 = require("./workforce-test-remote");
22
22
  strict_1.default.throws(() => (0, workforce_test_remote_1.assertWorkforceTestCompatibility)('unknown'), /did not publish cliCompatibilityVersion/);
23
23
  });
24
24
  (0, node_test_1.default)('evaluation preflight blocks a mismatched CLI/Core contract', () => {
25
- strict_1.default.throws(() => (0, workforce_test_remote_1.assertWorkforceTestCompatibility)('0.4.0'), /CLI 0.3.48, Core requires 0.4.0/);
25
+ strict_1.default.throws(() => (0, workforce_test_remote_1.assertWorkforceTestCompatibility)('0.4.0'), /CLI 0.3.49, Core requires 0.4.0/);
26
26
  });
27
27
  (0, node_test_1.default)('evaluation preflight blocks an older CLI than the Core patch contract', () => {
28
- strict_1.default.throws(() => (0, workforce_test_remote_1.assertWorkforceTestCompatibility)('0.3.49'), /CLI 0.3.48, Core requires 0.3.49/);
28
+ strict_1.default.throws(() => (0, workforce_test_remote_1.assertWorkforceTestCompatibility)('0.3.50'), /CLI 0.3.49, Core requires 0.3.50/);
29
29
  });
30
30
  (0, node_test_1.default)('regression query matches the native Core report fields', () => {
31
31
  strict_1.default.match(workforce_test_remote_1.WORKFORCE_TEST_REGRESSION_QUERY, /suiteRunId current baseline deltas/);