@absmartly/cli 1.1.0 → 1.3.0
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/README.md +24 -0
- package/dist/api-client/api-client.d.ts +132 -14
- package/dist/api-client/api-client.d.ts.map +1 -1
- package/dist/api-client/api-client.js +255 -66
- package/dist/api-client/api-client.js.map +1 -1
- package/dist/commands/apikeys/index.js +9 -1
- package/dist/commands/apikeys/index.js.map +1 -1
- package/dist/commands/apps/index.js +9 -1
- package/dist/commands/apps/index.js.map +1 -1
- package/dist/commands/auth/index.js +30 -0
- package/dist/commands/auth/index.js.map +1 -1
- package/dist/commands/customfields/index.js +9 -1
- package/dist/commands/customfields/index.js.map +1 -1
- package/dist/commands/envs/index.js +9 -1
- package/dist/commands/envs/index.js.map +1 -1
- package/dist/commands/experiments/activity.js +1 -1
- package/dist/commands/experiments/activity.js.map +1 -1
- package/dist/commands/experiments/export.d.ts.map +1 -1
- package/dist/commands/experiments/export.js +11 -4
- package/dist/commands/experiments/export.js.map +1 -1
- package/dist/commands/experiments/list.js +1 -1
- package/dist/commands/experiments/list.js.map +1 -1
- package/dist/commands/goals/index.js +9 -1
- package/dist/commands/goals/index.js.map +1 -1
- package/dist/commands/goaltags/index.js +9 -1
- package/dist/commands/goaltags/index.js.map +1 -1
- package/dist/commands/metriccategories/index.js +9 -1
- package/dist/commands/metriccategories/index.js.map +1 -1
- package/dist/commands/metrics/index.d.ts.map +1 -1
- package/dist/commands/metrics/index.js +179 -29
- package/dist/commands/metrics/index.js.map +1 -1
- package/dist/commands/metrictags/index.js +9 -1
- package/dist/commands/metrictags/index.js.map +1 -1
- package/dist/commands/roles/index.js +9 -1
- package/dist/commands/roles/index.js.map +1 -1
- package/dist/commands/segments/index.js +9 -1
- package/dist/commands/segments/index.js.map +1 -1
- package/dist/commands/tags/index.js +9 -1
- package/dist/commands/tags/index.js.map +1 -1
- package/dist/commands/teams/index.js +10 -1
- package/dist/commands/teams/index.js.map +1 -1
- package/dist/commands/units/index.js +9 -1
- package/dist/commands/units/index.js.map +1 -1
- package/dist/commands/webhooks/index.js +9 -1
- package/dist/commands/webhooks/index.js.map +1 -1
- package/dist/core/activity/activity.js +1 -1
- package/dist/core/activity/activity.js.map +1 -1
- package/dist/core/apikeys/apikeys.js +1 -1
- package/dist/core/apikeys/apikeys.js.map +1 -1
- package/dist/core/apps/apps.js +1 -1
- package/dist/core/apps/apps.js.map +1 -1
- package/dist/core/customfields/list.js +1 -1
- package/dist/core/customfields/list.js.map +1 -1
- package/dist/core/envs/envs.js +1 -1
- package/dist/core/envs/envs.js.map +1 -1
- package/dist/core/experiments/custom-fields.js +1 -1
- package/dist/core/experiments/custom-fields.js.map +1 -1
- package/dist/core/experiments/metrics.js +1 -1
- package/dist/core/experiments/metrics.js.map +1 -1
- package/dist/core/goals/list.js +1 -1
- package/dist/core/goals/list.js.map +1 -1
- package/dist/core/goaltags/goaltags.js +1 -1
- package/dist/core/goaltags/goaltags.js.map +1 -1
- package/dist/core/metriccategories/metriccategories.js +1 -1
- package/dist/core/metriccategories/metriccategories.js.map +1 -1
- package/dist/core/metrics/create.d.ts +2 -12
- package/dist/core/metrics/create.d.ts.map +1 -1
- package/dist/core/metrics/create.js +3 -19
- package/dist/core/metrics/create.js.map +1 -1
- package/dist/core/metrics/new-version.d.ts +13 -0
- package/dist/core/metrics/new-version.d.ts.map +1 -0
- package/dist/core/metrics/new-version.js +9 -0
- package/dist/core/metrics/new-version.js.map +1 -0
- package/dist/core/metrics/payload.d.ts +56 -0
- package/dist/core/metrics/payload.d.ts.map +1 -0
- package/dist/core/metrics/payload.js +173 -0
- package/dist/core/metrics/payload.js.map +1 -0
- package/dist/core/metrics/update.d.ts +2 -0
- package/dist/core/metrics/update.d.ts.map +1 -1
- package/dist/core/metrics/update.js +4 -0
- package/dist/core/metrics/update.js.map +1 -1
- package/dist/core/metrictags/metrictags.js +1 -1
- package/dist/core/metrictags/metrictags.js.map +1 -1
- package/dist/core/resolve.d.ts +1 -0
- package/dist/core/resolve.d.ts.map +1 -1
- package/dist/core/resolve.js +8 -0
- package/dist/core/resolve.js.map +1 -1
- package/dist/core/roles/roles.js +1 -1
- package/dist/core/roles/roles.js.map +1 -1
- package/dist/core/segments/segments.js +1 -1
- package/dist/core/segments/segments.js.map +1 -1
- package/dist/core/tags/tags.js +1 -1
- package/dist/core/tags/tags.js.map +1 -1
- package/dist/core/teams/list.d.ts.map +1 -1
- package/dist/core/teams/list.js +5 -1
- package/dist/core/teams/list.js.map +1 -1
- package/dist/core/units/units.js +1 -1
- package/dist/core/units/units.js.map +1 -1
- package/dist/core/webhooks/list.js +1 -1
- package/dist/core/webhooks/list.js.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/api/axios-adapter.d.ts +44 -11
- package/dist/lib/api/axios-adapter.d.ts.map +1 -1
- package/dist/lib/api/axios-adapter.js +211 -2
- package/dist/lib/api/axios-adapter.js.map +1 -1
- package/dist/lib/api/client.d.ts +2 -6
- package/dist/lib/api/client.d.ts.map +1 -1
- package/dist/lib/api/client.js +1 -1
- package/dist/lib/api/client.js.map +1 -1
- package/dist/lib/api/request-logger.d.ts +18 -0
- package/dist/lib/api/request-logger.d.ts.map +1 -0
- package/dist/lib/api/request-logger.js +353 -0
- package/dist/lib/api/request-logger.js.map +1 -0
- package/dist/lib/auth/token-exchange.d.ts.map +1 -1
- package/dist/lib/auth/token-exchange.js +30 -4
- package/dist/lib/auth/token-exchange.js.map +1 -1
- package/dist/lib/output/formatter.d.ts +1 -1
- package/dist/lib/output/formatter.d.ts.map +1 -1
- package/dist/lib/output/formatter.js +5 -0
- package/dist/lib/output/formatter.js.map +1 -1
- package/dist/lib/utils/api-helper.d.ts +7 -0
- package/dist/lib/utils/api-helper.d.ts.map +1 -1
- package/dist/lib/utils/api-helper.js +23 -1
- package/dist/lib/utils/api-helper.js.map +1 -1
- package/dist/lib/utils/download.d.ts +10 -1
- package/dist/lib/utils/download.d.ts.map +1 -1
- package/dist/lib/utils/download.js +69 -8
- package/dist/lib/utils/download.js.map +1 -1
- package/dist/lib/utils/list-command.d.ts.map +1 -1
- package/dist/lib/utils/list-command.js +7 -1
- package/dist/lib/utils/list-command.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
export interface
|
|
1
|
+
export interface DownloadLoggingOptions {
|
|
2
|
+
showRequest?: boolean;
|
|
3
|
+
showResponse?: boolean;
|
|
4
|
+
curl?: boolean;
|
|
5
|
+
showSecrets?: boolean;
|
|
6
|
+
headersOnly?: boolean;
|
|
7
|
+
statusOnly?: boolean;
|
|
8
|
+
noColor?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface DownloadOptions extends DownloadLoggingOptions {
|
|
2
11
|
url: string;
|
|
3
12
|
outputPath: string;
|
|
4
13
|
headers?: Record<string, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/download.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/download.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,sBAAsB;IAC7D,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACjE;AAgED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAsGD,wBAAsB,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAkFpF"}
|
|
@@ -3,6 +3,53 @@ import { pipeline } from 'stream/promises';
|
|
|
3
3
|
import { Transform } from 'stream';
|
|
4
4
|
import https from 'https';
|
|
5
5
|
import http from 'http';
|
|
6
|
+
import { formatRequestHTTP, formatRequestCurl, formatResponseHTTP, formatGenericError, } from '../api/request-logger.js';
|
|
7
|
+
function resolveLogger(options) {
|
|
8
|
+
const showRequest = options.showRequest ?? false;
|
|
9
|
+
const showResponse = options.showResponse ?? false;
|
|
10
|
+
const curl = options.curl ?? false;
|
|
11
|
+
if (!showRequest && !showResponse && !curl)
|
|
12
|
+
return undefined;
|
|
13
|
+
return {
|
|
14
|
+
showRequest,
|
|
15
|
+
showResponse,
|
|
16
|
+
curl,
|
|
17
|
+
formatOpts: {
|
|
18
|
+
showSecrets: options.showSecrets ?? false,
|
|
19
|
+
omitBody: options.headersOnly ?? false,
|
|
20
|
+
statusOnly: options.statusOnly ?? false,
|
|
21
|
+
color: !!process.stderr.isTTY && !(options.noColor ?? false),
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function logRequest(method, url, headers, logger) {
|
|
26
|
+
if (!logger || (!logger.showRequest && !logger.curl))
|
|
27
|
+
return;
|
|
28
|
+
const fakeConfig = {
|
|
29
|
+
method,
|
|
30
|
+
url,
|
|
31
|
+
headers,
|
|
32
|
+
data: undefined,
|
|
33
|
+
};
|
|
34
|
+
if (logger.showRequest) {
|
|
35
|
+
process.stderr.write(formatRequestHTTP(fakeConfig, logger.formatOpts) + '\n');
|
|
36
|
+
}
|
|
37
|
+
if (logger.curl) {
|
|
38
|
+
process.stderr.write(formatRequestCurl(fakeConfig, logger.formatOpts) + '\n');
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function logResponse(response, elapsedMs, logger) {
|
|
42
|
+
if (!logger?.showResponse)
|
|
43
|
+
return;
|
|
44
|
+
const fakeResp = {
|
|
45
|
+
status: response.statusCode ?? 0,
|
|
46
|
+
statusText: response.statusMessage ?? '',
|
|
47
|
+
headers: response.headers,
|
|
48
|
+
data: undefined,
|
|
49
|
+
config: {},
|
|
50
|
+
};
|
|
51
|
+
process.stderr.write(formatResponseHTTP(fakeResp, elapsedMs, logger.formatOpts) + '\n');
|
|
52
|
+
}
|
|
6
53
|
function getExistingSize(path) {
|
|
7
54
|
try {
|
|
8
55
|
return statSync(path).size;
|
|
@@ -33,19 +80,32 @@ function cleanupMeta(outputPath) {
|
|
|
33
80
|
// ignore
|
|
34
81
|
}
|
|
35
82
|
}
|
|
36
|
-
function httpGet(url, headers) {
|
|
83
|
+
function httpGet(url, headers, logger) {
|
|
37
84
|
return new Promise((resolve, reject) => {
|
|
85
|
+
const start = Date.now();
|
|
86
|
+
logRequest('GET', url, headers, logger);
|
|
38
87
|
const client = url.startsWith('https:') ? https : http;
|
|
39
|
-
const req = client.get(url, { headers },
|
|
40
|
-
|
|
88
|
+
const req = client.get(url, { headers }, (response) => {
|
|
89
|
+
logResponse(response, Date.now() - start, logger);
|
|
90
|
+
resolve(response);
|
|
91
|
+
});
|
|
92
|
+
req.on('error', (error) => {
|
|
93
|
+
// Surface DNS / TLS / socket failures on stderr when --show-response is on.
|
|
94
|
+
// Without this the raw download path stays silent for errors that never
|
|
95
|
+
// produce an HTTP response, unlike the axios path.
|
|
96
|
+
if (logger?.showResponse) {
|
|
97
|
+
process.stderr.write(formatGenericError(error, Date.now() - start, logger.formatOpts) + '\n');
|
|
98
|
+
}
|
|
99
|
+
reject(error);
|
|
100
|
+
});
|
|
41
101
|
});
|
|
42
102
|
}
|
|
43
|
-
async function resolveRedirects(url, headers, maxRedirects = 10) {
|
|
103
|
+
async function resolveRedirects(url, headers, maxRedirects = 10, logger) {
|
|
44
104
|
let currentUrl = url;
|
|
45
105
|
const reqHeaders = { ...headers };
|
|
46
106
|
let redirectCount = 0;
|
|
47
107
|
while (redirectCount < maxRedirects) {
|
|
48
|
-
const response = await httpGet(currentUrl, reqHeaders);
|
|
108
|
+
const response = await httpGet(currentUrl, reqHeaders, logger);
|
|
49
109
|
const status = response.statusCode ?? 0;
|
|
50
110
|
if (status >= 300 && status < 400 && response.headers.location) {
|
|
51
111
|
response.resume();
|
|
@@ -67,13 +127,14 @@ async function resolveRedirects(url, headers, maxRedirects = 10) {
|
|
|
67
127
|
}
|
|
68
128
|
export async function downloadFile(options) {
|
|
69
129
|
const { url, outputPath, onProgress } = options;
|
|
130
|
+
const logger = resolveLogger(options);
|
|
70
131
|
const existingSize = options.resume ? getExistingSize(outputPath) : 0;
|
|
71
132
|
// On resume, try the saved S3 URL directly (avoids hitting the API which triggers cleanup)
|
|
72
133
|
if (existingSize > 0) {
|
|
73
134
|
const savedUrl = loadMeta(outputPath);
|
|
74
135
|
if (savedUrl) {
|
|
75
136
|
const rangeHeaders = { Range: `bytes=${existingSize}-` };
|
|
76
|
-
const rangeResponse = await httpGet(savedUrl, rangeHeaders);
|
|
137
|
+
const rangeResponse = await httpGet(savedUrl, rangeHeaders, logger);
|
|
77
138
|
const rangeStatus = rangeResponse.statusCode ?? 0;
|
|
78
139
|
if (rangeStatus === 416) {
|
|
79
140
|
rangeResponse.resume();
|
|
@@ -91,7 +152,7 @@ export async function downloadFile(options) {
|
|
|
91
152
|
}
|
|
92
153
|
// Resolve redirects (API → S3) to get the final URL
|
|
93
154
|
const headers = { ...options.headers };
|
|
94
|
-
const { response, finalUrl, finalHeaders } = await resolveRedirects(url, headers);
|
|
155
|
+
const { response, finalUrl, finalHeaders } = await resolveRedirects(url, headers, 10, logger);
|
|
95
156
|
const status = response.statusCode ?? 0;
|
|
96
157
|
if (status < 200 || status >= 300) {
|
|
97
158
|
response.resume();
|
|
@@ -103,7 +164,7 @@ export async function downloadFile(options) {
|
|
|
103
164
|
if (existingSize > 0) {
|
|
104
165
|
response.resume();
|
|
105
166
|
const rangeHeaders = { ...finalHeaders, Range: `bytes=${existingSize}-` };
|
|
106
|
-
const rangeResponse = await httpGet(finalUrl, rangeHeaders);
|
|
167
|
+
const rangeResponse = await httpGet(finalUrl, rangeHeaders, logger);
|
|
107
168
|
const rangeStatus = rangeResponse.statusCode ?? 0;
|
|
108
169
|
if (rangeStatus === 416) {
|
|
109
170
|
rangeResponse.resume();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/lib/utils/download.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/lib/utils/download.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-command.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/list-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEhE,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACnF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1E,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;CAC1C;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"list-command.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/list-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAEhE,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACnF,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1E,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;CAC1C;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAiDnE"}
|
|
@@ -8,6 +8,12 @@ export function createListCommand(opts) {
|
|
|
8
8
|
if (opts.extraOptions)
|
|
9
9
|
cmd = opts.extraOptions(cmd);
|
|
10
10
|
cmd = addPaginationOptions(cmd, opts.defaultItems ?? 20)
|
|
11
|
+
.option('--search <query>', 'search by name or description')
|
|
12
|
+
.option('--sort <field>', 'sort by field (e.g. name, created_at)')
|
|
13
|
+
.option('--asc', 'sort in ascending order')
|
|
14
|
+
.option('--desc', 'sort in descending order')
|
|
15
|
+
.option('--archived', 'include archived items')
|
|
16
|
+
.option('--ids <ids>', 'filter by IDs (comma-separated)')
|
|
11
17
|
.option('--show <fields...>', 'include additional fields from API response')
|
|
12
18
|
.option('--exclude <fields...>', 'hide fields from summary');
|
|
13
19
|
cmd.action(withErrorHandling(async (options) => {
|
|
@@ -16,7 +22,7 @@ export function createListCommand(opts) {
|
|
|
16
22
|
const show = options.show ?? [];
|
|
17
23
|
const exclude = options.exclude ?? [];
|
|
18
24
|
const items = await opts.fetch(client, options);
|
|
19
|
-
if (
|
|
25
|
+
if (globalOptions.output === 'ids' || (isStdoutPiped() && !options.output)) {
|
|
20
26
|
for (const item of items)
|
|
21
27
|
console.log(item.id);
|
|
22
28
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-command.js","sourceRoot":"","sources":["../../../src/lib/utils/list-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAWtE,MAAM,UAAU,iBAAiB,CAAC,IAAwB;IACxD,IAAI,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE5D,IAAI,IAAI,CAAC,YAAY;QAAE,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAEpD,GAAG,GAAG,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;SACrD,MAAM,CAAC,oBAAoB,EAAE,6CAA6C,CAAC;SAC3E,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,CAAC;IAE/D,GAAG,CAAC,MAAM,CACR,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAClC,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,aAAa,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAI,OAAO,CAAC,IAA6B,IAAI,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAI,OAAO,CAAC,OAAgC,IAAI,EAAE,CAAC;QAEhE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEhD,IAAI,aAAa,
|
|
1
|
+
{"version":3,"file":"list-command.js","sourceRoot":"","sources":["../../../src/lib/utils/list-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAWtE,MAAM,UAAU,iBAAiB,CAAC,IAAwB;IACxD,IAAI,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE5D,IAAI,IAAI,CAAC,YAAY;QAAE,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAEpD,GAAG,GAAG,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;SACrD,MAAM,CAAC,kBAAkB,EAAE,+BAA+B,CAAC;SAC3D,MAAM,CAAC,gBAAgB,EAAE,uCAAuC,CAAC;SACjE,MAAM,CAAC,OAAO,EAAE,yBAAyB,CAAC;SAC1C,MAAM,CAAC,QAAQ,EAAE,0BAA0B,CAAC;SAC5C,MAAM,CAAC,YAAY,EAAE,wBAAwB,CAAC;SAC9C,MAAM,CAAC,aAAa,EAAE,iCAAiC,CAAC;SACxD,MAAM,CAAC,oBAAoB,EAAE,6CAA6C,CAAC;SAC3E,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,CAAC;IAE/D,GAAG,CAAC,MAAM,CACR,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAClC,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,aAAa,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAI,OAAO,CAAC,IAA6B,IAAI,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAI,OAAO,CAAC,OAAgC,IAAI,EAAE,CAAC;QAEhE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEhD,IAAI,aAAa,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAE,IAAgC,CAAC,EAAE,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,IAAI,IAAa,CAAC;QAClB,IAAI,aAAa,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;aAAM,CAAC;YACN,IAAI,GAAI,KAAwC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC5D,gBAAgB,CAAC,IAAI,CAAC,YAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAChE,CAAC;QACJ,CAAC;QAED,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACpC,qBAAqB,CACnB,KAAK,CAAC,MAAM,EACZ,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,IAAI,EACZ,aAAa,CAAC,MAAgB,CAC/B,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC"}
|