@straion/cli 0.0.1 → 0.0.2
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.
- package/CHANGELOG.md +7 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +5 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/default.d.ts +2 -1
- package/dist/commands/default.d.ts.map +1 -1
- package/dist/commands/default.js +15 -3
- package/dist/commands/default.js.map +1 -1
- package/dist/commands/find-requirements.d.ts.map +1 -1
- package/dist/commands/find-requirements.integration.test.d.ts +5 -0
- package/dist/commands/find-requirements.integration.test.d.ts.map +1 -0
- package/dist/commands/find-requirements.integration.test.js +131 -0
- package/dist/commands/find-requirements.integration.test.js.map +1 -0
- package/dist/commands/find-requirements.js +36 -5
- package/dist/commands/find-requirements.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.integration.test.d.ts +13 -0
- package/dist/commands/login.integration.test.d.ts.map +1 -0
- package/dist/commands/login.integration.test.js +188 -0
- package/dist/commands/login.integration.test.js.map +1 -0
- package/dist/commands/login.js +13 -4
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +19 -9
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/session-start.d.ts.map +1 -1
- package/dist/commands/session-start.js +8 -2
- package/dist/commands/session-start.js.map +1 -1
- package/dist/components/button.d.ts +2 -2
- package/dist/components/button.d.ts.map +1 -1
- package/dist/components/button.js +3 -3
- package/dist/components/button.js.map +1 -1
- package/dist/components/hero.d.ts +2 -1
- package/dist/components/hero.d.ts.map +1 -1
- package/dist/components/hero.js +76 -10
- package/dist/components/hero.js.map +1 -1
- package/dist/components/link.d.ts +2 -2
- package/dist/components/link.d.ts.map +1 -1
- package/dist/components/link.js +3 -3
- package/dist/components/link.js.map +1 -1
- package/dist/components/login/login-error.d.ts +6 -0
- package/dist/components/login/login-error.d.ts.map +1 -0
- package/dist/components/login/login-error.js +16 -0
- package/dist/components/login/login-error.js.map +1 -0
- package/dist/components/login/login-flow.d.ts +8 -2
- package/dist/components/login/login-flow.d.ts.map +1 -1
- package/dist/components/login/login-flow.js +123 -82
- package/dist/components/login/login-flow.js.map +1 -1
- package/dist/components/login/login-flow.test.js +69 -7
- package/dist/components/login/login-flow.test.js.map +1 -1
- package/dist/components/login/types.d.ts +2 -0
- package/dist/components/login/types.d.ts.map +1 -0
- package/dist/components/login/types.js +2 -0
- package/dist/components/login/types.js.map +1 -0
- package/dist/components/org-selector.d.ts +2 -1
- package/dist/components/org-selector.d.ts.map +1 -1
- package/dist/components/org-selector.js +7 -2
- package/dist/components/org-selector.js.map +1 -1
- package/dist/components/pat-input.d.ts +2 -1
- package/dist/components/pat-input.d.ts.map +1 -1
- package/dist/components/pat-input.js +9 -3
- package/dist/components/pat-input.js.map +1 -1
- package/dist/components/pat-input.test.js +8 -8
- package/dist/components/pat-input.test.js.map +1 -1
- package/dist/components/spinner.d.ts +2 -1
- package/dist/components/spinner.d.ts.map +1 -1
- package/dist/components/spinner.js +2 -3
- package/dist/components/spinner.js.map +1 -1
- package/dist/components/tabs.d.ts +3 -3
- package/dist/components/tabs.d.ts.map +1 -1
- package/dist/components/tabs.js +26 -21
- package/dist/components/tabs.js.map +1 -1
- package/dist/lib/ink-render.d.ts +1 -1
- package/dist/lib/ink-render.js +1 -1
- package/dist/lib/middleware.d.ts +9 -4
- package/dist/lib/middleware.d.ts.map +1 -1
- package/dist/lib/middleware.js +23 -7
- package/dist/lib/middleware.js.map +1 -1
- package/dist/lib/output.d.ts +16 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +14 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/test/integration-helpers.d.ts +101 -0
- package/dist/test/integration-helpers.d.ts.map +1 -0
- package/dist/test/integration-helpers.js +187 -0
- package/dist/test/integration-helpers.js.map +1 -0
- package/package.json +3 -1
- package/dist/auth/cookie-jar.d.ts +0 -24
- package/dist/auth/cookie-jar.d.ts.map +0 -1
- package/dist/auth/cookie-jar.js +0 -45
- package/dist/auth/cookie-jar.js.map +0 -1
- package/dist/components/login/login.provider.d.ts +0 -2
- package/dist/components/login/login.provider.d.ts.map +0 -1
- package/dist/components/login/login.provider.js +0 -2
- package/dist/components/login/login.provider.js.map +0 -1
- package/dist/components/login/login.store.d.ts +0 -2
- package/dist/components/login/login.store.d.ts.map +0 -1
- package/dist/components/login/login.store.js +0 -2
- package/dist/components/login/login.store.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pat-input.test.js","sourceRoot":"","sources":["../../src/components/pat-input.test.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pat-input.test.js","sourceRoot":"","sources":["../../src/components/pat-input.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/components/spinner.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/components/spinner.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,wBAAgB,OAAO,sBAkBtB"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
1
|
import { Text } from 'ink';
|
|
3
|
-
import { useEffect, useState } from 'react';
|
|
2
|
+
import React, { useEffect, useState } from 'react';
|
|
4
3
|
export function Spinner() {
|
|
5
4
|
const [frame, setFrame] = useState(0);
|
|
6
5
|
const spinner = { frames: ['·', '✻', '✽', '✶', '✳', '✢'], interval: 80 };
|
|
@@ -15,6 +14,6 @@ export function Spinner() {
|
|
|
15
14
|
clearInterval(timer);
|
|
16
15
|
};
|
|
17
16
|
}, [spinner]);
|
|
18
|
-
return
|
|
17
|
+
return React.createElement(Text, { color: frame % 2 === 0 ? 'magenta' : 'magentaBright' }, spinner.frames[frame]);
|
|
19
18
|
}
|
|
20
19
|
//# sourceMappingURL=spinner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/components/spinner.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/components/spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEnD,MAAM,UAAU,OAAO;IACrB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAEzE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,QAAQ,CAAC,CAAC,aAAa,EAAE,EAAE;gBACzB,MAAM,WAAW,GAAG,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAErB,OAAO,GAAG,EAAE;YACV,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,IAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAQ,CAAC;AACpG,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Text, type BoxProps } from 'ink';
|
|
2
|
-
import
|
|
2
|
+
import React, { type FunctionComponent, type ReactElement, type ReactNode } from 'react';
|
|
3
3
|
type ExtractProps<T> = T extends FunctionComponent<infer P> ? P : never;
|
|
4
4
|
export type TabProps = {
|
|
5
5
|
name: string;
|
|
@@ -8,7 +8,7 @@ export type TabProps = {
|
|
|
8
8
|
/**
|
|
9
9
|
* A <Tab> component
|
|
10
10
|
*/
|
|
11
|
-
export declare const Tab: ({ children }: TabProps) =>
|
|
11
|
+
export declare const Tab: ({ children }: TabProps) => React.JSX.Element;
|
|
12
12
|
/**
|
|
13
13
|
* Props for the <Tabs> component
|
|
14
14
|
*/
|
|
@@ -30,6 +30,6 @@ export type TabsProps = {
|
|
|
30
30
|
/**
|
|
31
31
|
* The <Tabs> component
|
|
32
32
|
*/
|
|
33
|
-
export declare const Tabs: (props: TabsProps) =>
|
|
33
|
+
export declare const Tabs: (props: TabsProps) => React.JSX.Element;
|
|
34
34
|
export {};
|
|
35
35
|
//# sourceMappingURL=tabs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAO,IAAI,EAAY,KAAK,QAAQ,EAAmB,MAAM,KAAK,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAO,IAAI,EAAY,KAAK,QAAQ,EAAmB,MAAM,KAAK,CAAC;AAC1E,OAAO,KAAK,EAAE,EAKZ,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAExE,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,GAAG,GAAI,cAAc,QAAQ,sBAAoB,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,OAAO,GAAG,CAAC,KAAK,IAAI,CAAC;IACtE,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IAC1C,aAAa,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC1C,KAAK,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE;YACV,KAAK,CAAC,EAAE,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;YAC3C,eAAe,CAAC,EAAE,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC;SAChE,CAAC;KACH,CAAC;CACH,CAAC;AAoMF;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,OAAO,SAAS,sBAWpC,CAAC"}
|
package/dist/components/tabs.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
1
|
import readline from 'node:readline';
|
|
3
2
|
import { Box, Text, useStdin } from 'ink';
|
|
4
|
-
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
3
|
+
import React, { useCallback, useEffect, useMemo, useState, } from 'react';
|
|
5
4
|
/**
|
|
6
5
|
* A <Tab> component
|
|
7
6
|
*/
|
|
8
|
-
export const Tab = ({ children }) =>
|
|
7
|
+
export const Tab = ({ children }) => React.createElement(React.Fragment, null, children);
|
|
9
8
|
const TabsWithStdin = (props) => {
|
|
10
9
|
const { stdin, setRawMode, isRawModeSupported, children, onChange, flexDirection = 'row', width, isFocused = null, defaultValue = null, showIndex = true, colors: colorsProp, ...rest } = props;
|
|
11
10
|
const [activeTab, setActiveTab] = useState(0);
|
|
@@ -114,29 +113,35 @@ const TabsWithStdin = (props) => {
|
|
|
114
113
|
}, []);
|
|
115
114
|
const separatorWidth = width ?? 6;
|
|
116
115
|
const separator = isColumn() ? new Array(separatorWidth).fill('─').join('') : ' | ';
|
|
117
|
-
return (
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
116
|
+
return (React.createElement(Box, { flexDirection: flexDirection, width: width, ...rest }, children.map((child, key) => {
|
|
117
|
+
const { name } = child.props;
|
|
118
|
+
let colors = {};
|
|
119
|
+
if (isFocused !== false) {
|
|
120
|
+
colors = {
|
|
121
|
+
backgroundColor: activeTab === key ? colorsProp?.activeTab?.color ?? 'green' : undefined,
|
|
122
|
+
color: activeTab === key ? colorsProp?.activeTab?.backgroundColor ?? 'black' : undefined,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
colors = {
|
|
127
|
+
backgroundColor: activeTab === key ? 'gray' : undefined,
|
|
128
|
+
color: activeTab === key ? 'black' : undefined,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
return (React.createElement(Box, { key: name, flexDirection: flexDirection },
|
|
132
|
+
key !== 0 && React.createElement(Text, { color: "dim" }, separator),
|
|
133
|
+
React.createElement(Box, null,
|
|
134
|
+
showIndex === true && React.createElement(Text, { color: "grey" },
|
|
135
|
+
key + 1,
|
|
136
|
+
". "),
|
|
137
|
+
React.createElement(Text, { ...colors }, child))));
|
|
138
|
+
})));
|
|
134
139
|
};
|
|
135
140
|
/**
|
|
136
141
|
* The <Tabs> component
|
|
137
142
|
*/
|
|
138
143
|
export const Tabs = (props) => {
|
|
139
144
|
const { isRawModeSupported, stdin, setRawMode } = useStdin();
|
|
140
|
-
return (
|
|
145
|
+
return (React.createElement(TabsWithStdin, { isRawModeSupported: isRawModeSupported, stdin: stdin, setRawMode: setRawMode, ...props }));
|
|
141
146
|
};
|
|
142
147
|
//# sourceMappingURL=tabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":"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"}
|
package/dist/lib/ink-render.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { type Instance } from 'ink';
|
|
|
2
2
|
import type { ReactElement } from 'react';
|
|
3
3
|
/**
|
|
4
4
|
* Render an Ink component and wait for it to complete.
|
|
5
|
-
* Use this in
|
|
5
|
+
* Use this in commands to display interactive UIs.
|
|
6
6
|
*/
|
|
7
7
|
export declare function renderInk(element: ReactElement): Promise<void>;
|
|
8
8
|
/**
|
package/dist/lib/ink-render.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { render } from 'ink';
|
|
2
2
|
/**
|
|
3
3
|
* Render an Ink component and wait for it to complete.
|
|
4
|
-
* Use this in
|
|
4
|
+
* Use this in commands to display interactive UIs.
|
|
5
5
|
*/
|
|
6
6
|
export async function renderInk(element) {
|
|
7
7
|
const instance = render(element);
|
package/dist/lib/middleware.d.ts
CHANGED
|
@@ -1,30 +1,35 @@
|
|
|
1
1
|
import type { Command } from 'commander';
|
|
2
2
|
import type { OrganizationFragment } from './graphql.js';
|
|
3
3
|
import { type LoggingContext } from './logger.js';
|
|
4
|
+
import type { OutputFormat } from './output.js';
|
|
5
|
+
export interface OutputContext {
|
|
6
|
+
outputFormat: OutputFormat;
|
|
7
|
+
}
|
|
4
8
|
export interface AuthContext {
|
|
5
9
|
accessToken: string;
|
|
6
10
|
organization: OrganizationFragment;
|
|
7
11
|
}
|
|
8
|
-
export type FullContext = AuthContext & LoggingContext;
|
|
12
|
+
export type FullContext = AuthContext & LoggingContext & OutputContext;
|
|
13
|
+
export type BasicContext = LoggingContext & OutputContext;
|
|
9
14
|
/**
|
|
10
15
|
* Wrapper for command actions that provides logging only (no auth).
|
|
11
16
|
* Requires `--session <id>` option on the command
|
|
12
17
|
*
|
|
13
18
|
* @example
|
|
14
|
-
* .action(withLogging(async (options, { logger }) => {
|
|
19
|
+
* .action(withLogging(async (options, { logger, outputFormat }) => {
|
|
15
20
|
* logger.info('Command started');
|
|
16
21
|
* // With data: logger.info({ userId: '123' }, 'User action');
|
|
17
22
|
* }))
|
|
18
23
|
*/
|
|
19
24
|
export declare function withLogging<TOptions extends {
|
|
20
25
|
session: string;
|
|
21
|
-
}>(action: (options: TOptions, ctx:
|
|
26
|
+
}>(action: (options: TOptions, ctx: BasicContext, command: Command) => Promise<void>): (this: Command, options: TOptions) => Promise<void>;
|
|
22
27
|
/**
|
|
23
28
|
* Wrapper for command actions that provides auth context and logging.
|
|
24
29
|
* Requires `--session <id>` option on the command.
|
|
25
30
|
*
|
|
26
31
|
* @example
|
|
27
|
-
* .action(withAuthAndLogging(async (options, { logger, accessToken, organization }) => {
|
|
32
|
+
* .action(withAuthAndLogging(async (options, { logger, accessToken, organization, outputFormat }) => {
|
|
28
33
|
* logger.info('Command started');
|
|
29
34
|
* // With data: logger.info({ orgId: organization.id }, 'Processing org');
|
|
30
35
|
* }))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/lib/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/lib/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,oBAAoB,CAAC;CACpC;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,cAAc,GAAG,aAAa,CAAC;AAEvE,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,aAAa,CAAC;AAE1D;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,QAAQ,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EAC9D,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAChF,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAgBrD;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,SAAS;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EACrE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAC/E,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAgDrD"}
|
package/dist/lib/middleware.js
CHANGED
|
@@ -6,19 +6,20 @@ import { createCommandLogger } from './logger.js';
|
|
|
6
6
|
* Requires `--session <id>` option on the command
|
|
7
7
|
*
|
|
8
8
|
* @example
|
|
9
|
-
* .action(withLogging(async (options, { logger }) => {
|
|
9
|
+
* .action(withLogging(async (options, { logger, outputFormat }) => {
|
|
10
10
|
* logger.info('Command started');
|
|
11
11
|
* // With data: logger.info({ userId: '123' }, 'User action');
|
|
12
12
|
* }))
|
|
13
13
|
*/
|
|
14
14
|
export function withLogging(action) {
|
|
15
15
|
return async function (options) {
|
|
16
|
+
const globalOpts = this.optsWithGlobals();
|
|
16
17
|
const logger = createCommandLogger(this, {
|
|
17
18
|
sessionId: options.session,
|
|
18
19
|
context: { cwd: process.cwd() },
|
|
19
20
|
});
|
|
20
21
|
try {
|
|
21
|
-
return await action(options, { logger }, this);
|
|
22
|
+
return await action(options, { logger, outputFormat: globalOpts.outputFormat }, this);
|
|
22
23
|
}
|
|
23
24
|
catch (error) {
|
|
24
25
|
const msg = error instanceof Error ? error.message : 'Unknown error';
|
|
@@ -32,28 +33,43 @@ export function withLogging(action) {
|
|
|
32
33
|
* Requires `--session <id>` option on the command.
|
|
33
34
|
*
|
|
34
35
|
* @example
|
|
35
|
-
* .action(withAuthAndLogging(async (options, { logger, accessToken, organization }) => {
|
|
36
|
+
* .action(withAuthAndLogging(async (options, { logger, accessToken, organization, outputFormat }) => {
|
|
36
37
|
* logger.info('Command started');
|
|
37
38
|
* // With data: logger.info({ orgId: organization.id }, 'Processing org');
|
|
38
39
|
* }))
|
|
39
40
|
*/
|
|
40
41
|
export function withAuthAndLogging(action) {
|
|
41
42
|
return async function (options) {
|
|
43
|
+
const globalOpts = this.optsWithGlobals();
|
|
42
44
|
const logger = createCommandLogger(this, {
|
|
43
45
|
sessionId: options.session,
|
|
44
46
|
context: { cwd: process.cwd() },
|
|
45
47
|
});
|
|
46
48
|
try {
|
|
47
|
-
|
|
48
|
-
const
|
|
49
|
+
// Support STRAION_API_KEY env var as alternative to stored credentials
|
|
50
|
+
const envToken = process.env.STRAION_API_KEY;
|
|
51
|
+
let accessToken = null;
|
|
52
|
+
if (envToken) {
|
|
53
|
+
accessToken = envToken;
|
|
54
|
+
logger.debug('Using token from STRAION_API_KEY environment variable');
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const credentialManager = await createCredentialManager();
|
|
58
|
+
const credentials = await credentialManager.getCredentials();
|
|
59
|
+
accessToken = credentials?.accessToken ?? null;
|
|
60
|
+
if (accessToken) {
|
|
61
|
+
logger.debug('Using token from stored credentials');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
49
64
|
const resolvedOrg = resolveOrg(process.cwd());
|
|
50
|
-
if (!
|
|
65
|
+
if (!accessToken || !resolvedOrg) {
|
|
51
66
|
console.log('No credentials for the straion cli found. Please log in first using "straion login".');
|
|
52
67
|
process.exit(1);
|
|
53
68
|
}
|
|
54
69
|
const ctx = {
|
|
55
70
|
logger,
|
|
56
|
-
|
|
71
|
+
outputFormat: globalOpts.outputFormat,
|
|
72
|
+
accessToken,
|
|
57
73
|
organization: resolvedOrg,
|
|
58
74
|
};
|
|
59
75
|
return action(options, ctx, this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/lib/middleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/lib/middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Output format for CLI commands.
|
|
3
|
+
* - 'text': Human-readable TUI output (default)
|
|
4
|
+
* - 'json': Machine-readable JSON output
|
|
5
|
+
*/
|
|
6
|
+
export type OutputFormat = 'text' | 'json';
|
|
7
|
+
/**
|
|
8
|
+
* Check if output should be JSON based on format and TTY.
|
|
9
|
+
* Returns true if format is 'json' OR if not running in a TTY.
|
|
10
|
+
*/
|
|
11
|
+
export declare function shouldOutputJson(format: OutputFormat): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Output data as JSON to stdout.
|
|
14
|
+
*/
|
|
15
|
+
export declare function outputJson<T>(data: T): void;
|
|
16
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAE9D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAE3C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check if output should be JSON based on format and TTY.
|
|
3
|
+
* Returns true if format is 'json' OR if not running in a TTY.
|
|
4
|
+
*/
|
|
5
|
+
export function shouldOutputJson(format) {
|
|
6
|
+
return format === 'json' || process.stdout.isTTY !== true;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Output data as JSON to stdout.
|
|
10
|
+
*/
|
|
11
|
+
export function outputJson(data) {
|
|
12
|
+
process.stdout.write(JSON.stringify(data) + '\n');
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/lib/output.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACnD,OAAO,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAI,IAAO;IACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers for CLI integration tests.
|
|
3
|
+
*
|
|
4
|
+
* These utilities help spawn the CLI as a child process and set up
|
|
5
|
+
* mock servers for testing in non-TTY environments.
|
|
6
|
+
*/
|
|
7
|
+
import { type RequestHandler } from 'msw';
|
|
8
|
+
/**
|
|
9
|
+
* Result from running a CLI command.
|
|
10
|
+
*/
|
|
11
|
+
export interface CLIResult {
|
|
12
|
+
stdout: string;
|
|
13
|
+
stderr: string;
|
|
14
|
+
exitCode: number | null;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Options for running CLI commands.
|
|
18
|
+
*/
|
|
19
|
+
export interface RunCLIOptions {
|
|
20
|
+
env?: Record<string, string>;
|
|
21
|
+
timeout?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Mock user data for authentication.
|
|
25
|
+
*/
|
|
26
|
+
export declare const mockUser: {
|
|
27
|
+
id: string;
|
|
28
|
+
name: string;
|
|
29
|
+
firstName: string;
|
|
30
|
+
defaultOrganization: {
|
|
31
|
+
id: string;
|
|
32
|
+
name: string;
|
|
33
|
+
subdomain: string;
|
|
34
|
+
};
|
|
35
|
+
organizations: {
|
|
36
|
+
nodes: {
|
|
37
|
+
id: string;
|
|
38
|
+
name: string;
|
|
39
|
+
subdomain: string;
|
|
40
|
+
}[];
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Mock organization data.
|
|
45
|
+
*/
|
|
46
|
+
export declare const mockOrg: {
|
|
47
|
+
id: string;
|
|
48
|
+
name: string;
|
|
49
|
+
subdomain: string;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Creates the standard "Me" query handler for authentication.
|
|
53
|
+
*/
|
|
54
|
+
export declare function createMeHandler(validToken?: string): import("msw").GraphQLHandler;
|
|
55
|
+
/**
|
|
56
|
+
* Test context that manages mock server and temp directories.
|
|
57
|
+
*/
|
|
58
|
+
export declare class IntegrationTestContext {
|
|
59
|
+
private mockServer;
|
|
60
|
+
private tempConfigDir;
|
|
61
|
+
mockServerUrl: string;
|
|
62
|
+
/**
|
|
63
|
+
* Sets up the mock server with the given handlers.
|
|
64
|
+
*/
|
|
65
|
+
setupServer(handlers: RequestHandler[]): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Creates a minimal temp config directory (no credentials).
|
|
68
|
+
*/
|
|
69
|
+
setupConfigDir(): string;
|
|
70
|
+
/**
|
|
71
|
+
* Writes org config to the config directory.
|
|
72
|
+
* Call after setupConfigDir() when tests need a pre-configured org.
|
|
73
|
+
*/
|
|
74
|
+
writeOrgConfig(org?: {
|
|
75
|
+
id: string;
|
|
76
|
+
name: string;
|
|
77
|
+
subdomain: string;
|
|
78
|
+
}): void;
|
|
79
|
+
/**
|
|
80
|
+
* Gets the straion home path.
|
|
81
|
+
*/
|
|
82
|
+
getStraionHome(): string;
|
|
83
|
+
/**
|
|
84
|
+
* Runs the CLI with the given arguments.
|
|
85
|
+
*/
|
|
86
|
+
runCLI(args: string[], options?: RunCLIOptions): Promise<CLIResult>;
|
|
87
|
+
/**
|
|
88
|
+
* Cleans up temp directories only (call in afterEach).
|
|
89
|
+
*/
|
|
90
|
+
cleanupConfigDir(): void;
|
|
91
|
+
/**
|
|
92
|
+
* Cleans up everything including the mock server (call in afterAll).
|
|
93
|
+
*/
|
|
94
|
+
cleanup(): void;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Parses JSON output from CLI, handling potential non-JSON content.
|
|
98
|
+
* Supports both arrays and objects.
|
|
99
|
+
*/
|
|
100
|
+
export declare function parseJSONOutput<T>(output: string): T | null;
|
|
101
|
+
//# sourceMappingURL=integration-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration-helpers.d.ts","sourceRoot":"","sources":["../../src/test/integration-helpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAejE;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;CAkBpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO;;;;CAInB,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,SAAqB,gCAmB9D;AAED;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,aAAa,CAAuB;IACrC,aAAa,SAAM;IAE1B;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5D;;OAEG;IACH,cAAc,IAAI,MAAM;IASxB;;;OAGG;IACH,cAAc,CAAC,GAAG;;;;KAAU,GAAG,IAAI;IAKnC;;OAEG;IACH,cAAc,IAAI,MAAM;IAOxB;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IA+CvE;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAOxB;;OAEG;IACH,OAAO,IAAI,IAAI;CAKhB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAU3D"}
|