@oncoding/bsteam 0.2.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/CHANGELOG.md +40 -0
- package/README.md +260 -0
- package/bin/argv.js +35 -0
- package/bin/dev.js +23 -0
- package/bin/run.js +25 -0
- package/bin/workspace-plugin.js +16 -0
- package/dist/auth/context-config.d.ts +91 -0
- package/dist/auth/context-config.d.ts.map +1 -0
- package/dist/auth/context-config.js +258 -0
- package/dist/auth/context-config.js.map +1 -0
- package/dist/auth/credential-store.d.ts +57 -0
- package/dist/auth/credential-store.d.ts.map +1 -0
- package/dist/auth/credential-store.js +146 -0
- package/dist/auth/credential-store.js.map +1 -0
- package/dist/base-command.d.ts +22 -0
- package/dist/base-command.d.ts.map +1 -0
- package/dist/base-command.js +33 -0
- package/dist/base-command.js.map +1 -0
- package/dist/command-utils/platform-command.d.ts +51 -0
- package/dist/command-utils/platform-command.d.ts.map +1 -0
- package/dist/command-utils/platform-command.js +178 -0
- package/dist/command-utils/platform-command.js.map +1 -0
- package/dist/commands/api.d.ts +26 -0
- package/dist/commands/api.d.ts.map +1 -0
- package/dist/commands/api.js +132 -0
- package/dist/commands/api.js.map +1 -0
- package/dist/commands/auth/check.d.ts +21 -0
- package/dist/commands/auth/check.d.ts.map +1 -0
- package/dist/commands/auth/check.js +57 -0
- package/dist/commands/auth/check.js.map +1 -0
- package/dist/commands/auth/list.d.ts +13 -0
- package/dist/commands/auth/list.d.ts.map +1 -0
- package/dist/commands/auth/list.js +56 -0
- package/dist/commands/auth/list.js.map +1 -0
- package/dist/commands/auth/login.d.ts +27 -0
- package/dist/commands/auth/login.d.ts.map +1 -0
- package/dist/commands/auth/login.js +155 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/auth/logout.d.ts +15 -0
- package/dist/commands/auth/logout.d.ts.map +1 -0
- package/dist/commands/auth/logout.js +55 -0
- package/dist/commands/auth/logout.js.map +1 -0
- package/dist/commands/auth/scopes.d.ts +18 -0
- package/dist/commands/auth/scopes.d.ts.map +1 -0
- package/dist/commands/auth/scopes.js +56 -0
- package/dist/commands/auth/scopes.js.map +1 -0
- package/dist/commands/auth/status.d.ts +17 -0
- package/dist/commands/auth/status.d.ts.map +1 -0
- package/dist/commands/auth/status.js +81 -0
- package/dist/commands/auth/status.js.map +1 -0
- package/dist/commands/auth/token/create.d.ts +22 -0
- package/dist/commands/auth/token/create.d.ts.map +1 -0
- package/dist/commands/auth/token/create.js +46 -0
- package/dist/commands/auth/token/create.js.map +1 -0
- package/dist/commands/auth/token/list.d.ts +17 -0
- package/dist/commands/auth/token/list.d.ts.map +1 -0
- package/dist/commands/auth/token/list.js +33 -0
- package/dist/commands/auth/token/list.js.map +1 -0
- package/dist/commands/auth/token/revoke.d.ts +24 -0
- package/dist/commands/auth/token/revoke.d.ts.map +1 -0
- package/dist/commands/auth/token/revoke.js +29 -0
- package/dist/commands/auth/token/revoke.js.map +1 -0
- package/dist/commands/config/show.d.ts +13 -0
- package/dist/commands/config/show.d.ts.map +1 -0
- package/dist/commands/config/show.js +34 -0
- package/dist/commands/config/show.js.map +1 -0
- package/dist/commands/kb/acl/grant.d.ts +27 -0
- package/dist/commands/kb/acl/grant.d.ts.map +1 -0
- package/dist/commands/kb/acl/grant.js +49 -0
- package/dist/commands/kb/acl/grant.js.map +1 -0
- package/dist/commands/kb/acl/list.d.ts +20 -0
- package/dist/commands/kb/acl/list.d.ts.map +1 -0
- package/dist/commands/kb/acl/list.js +35 -0
- package/dist/commands/kb/acl/list.js.map +1 -0
- package/dist/commands/kb/acl/revoke.d.ts +25 -0
- package/dist/commands/kb/acl/revoke.d.ts.map +1 -0
- package/dist/commands/kb/acl/revoke.js +27 -0
- package/dist/commands/kb/acl/revoke.js.map +1 -0
- package/dist/commands/kb/acl/update.d.ts +28 -0
- package/dist/commands/kb/acl/update.d.ts.map +1 -0
- package/dist/commands/kb/acl/update.js +40 -0
- package/dist/commands/kb/acl/update.js.map +1 -0
- package/dist/commands/kb/create.d.ts +26 -0
- package/dist/commands/kb/create.d.ts.map +1 -0
- package/dist/commands/kb/create.js +59 -0
- package/dist/commands/kb/create.js.map +1 -0
- package/dist/commands/kb/delete.d.ts +24 -0
- package/dist/commands/kb/delete.d.ts.map +1 -0
- package/dist/commands/kb/delete.js +29 -0
- package/dist/commands/kb/delete.js.map +1 -0
- package/dist/commands/kb/doctor.d.ts +17 -0
- package/dist/commands/kb/doctor.d.ts.map +1 -0
- package/dist/commands/kb/doctor.js +48 -0
- package/dist/commands/kb/doctor.js.map +1 -0
- package/dist/commands/kb/file.d.ts +23 -0
- package/dist/commands/kb/file.d.ts.map +1 -0
- package/dist/commands/kb/file.js +97 -0
- package/dist/commands/kb/file.js.map +1 -0
- package/dist/commands/kb/get.d.ts +20 -0
- package/dist/commands/kb/get.d.ts.map +1 -0
- package/dist/commands/kb/get.js +37 -0
- package/dist/commands/kb/get.js.map +1 -0
- package/dist/commands/kb/git.d.ts +20 -0
- package/dist/commands/kb/git.d.ts.map +1 -0
- package/dist/commands/kb/git.js +46 -0
- package/dist/commands/kb/git.js.map +1 -0
- package/dist/commands/kb/list.d.ts +17 -0
- package/dist/commands/kb/list.d.ts.map +1 -0
- package/dist/commands/kb/list.js +36 -0
- package/dist/commands/kb/list.js.map +1 -0
- package/dist/commands/kb/share/create.d.ts +25 -0
- package/dist/commands/kb/share/create.d.ts.map +1 -0
- package/dist/commands/kb/share/create.js +42 -0
- package/dist/commands/kb/share/create.js.map +1 -0
- package/dist/commands/kb/share/list.d.ts +20 -0
- package/dist/commands/kb/share/list.d.ts.map +1 -0
- package/dist/commands/kb/share/list.js +35 -0
- package/dist/commands/kb/share/list.js.map +1 -0
- package/dist/commands/kb/share/revoke.d.ts +25 -0
- package/dist/commands/kb/share/revoke.d.ts.map +1 -0
- package/dist/commands/kb/share/revoke.js +27 -0
- package/dist/commands/kb/share/revoke.js.map +1 -0
- package/dist/commands/kb/tree.d.ts +20 -0
- package/dist/commands/kb/tree.d.ts.map +1 -0
- package/dist/commands/kb/tree.js +39 -0
- package/dist/commands/kb/tree.js.map +1 -0
- package/dist/commands/kb/update.d.ts +29 -0
- package/dist/commands/kb/update.d.ts.map +1 -0
- package/dist/commands/kb/update.js +49 -0
- package/dist/commands/kb/update.js.map +1 -0
- package/dist/commands/reimbursement/create.d.ts +31 -0
- package/dist/commands/reimbursement/create.d.ts.map +1 -0
- package/dist/commands/reimbursement/create.js +67 -0
- package/dist/commands/reimbursement/create.js.map +1 -0
- package/dist/commands/reimbursement/delete.d.ts +24 -0
- package/dist/commands/reimbursement/delete.d.ts.map +1 -0
- package/dist/commands/reimbursement/delete.js +26 -0
- package/dist/commands/reimbursement/delete.js.map +1 -0
- package/dist/commands/reimbursement/list.d.ts +17 -0
- package/dist/commands/reimbursement/list.d.ts.map +1 -0
- package/dist/commands/reimbursement/list.js +33 -0
- package/dist/commands/reimbursement/list.js.map +1 -0
- package/dist/commands/reimbursement/operations.d.ts +17 -0
- package/dist/commands/reimbursement/operations.d.ts.map +1 -0
- package/dist/commands/reimbursement/operations.js +19 -0
- package/dist/commands/reimbursement/operations.js.map +1 -0
- package/dist/commands/reimbursement/permissions/list.d.ts +17 -0
- package/dist/commands/reimbursement/permissions/list.d.ts.map +1 -0
- package/dist/commands/reimbursement/permissions/list.js +32 -0
- package/dist/commands/reimbursement/permissions/list.js.map +1 -0
- package/dist/commands/reimbursement/permissions/replace.d.ts +22 -0
- package/dist/commands/reimbursement/permissions/replace.d.ts.map +1 -0
- package/dist/commands/reimbursement/permissions/replace.js +32 -0
- package/dist/commands/reimbursement/permissions/replace.js.map +1 -0
- package/dist/commands/reimbursement/update.d.ts +31 -0
- package/dist/commands/reimbursement/update.d.ts.map +1 -0
- package/dist/commands/reimbursement/update.js +56 -0
- package/dist/commands/reimbursement/update.js.map +1 -0
- package/dist/commands/token/create.d.ts +26 -0
- package/dist/commands/token/create.d.ts.map +1 -0
- package/dist/commands/token/create.js +52 -0
- package/dist/commands/token/create.js.map +1 -0
- package/dist/commands/token/delete.d.ts +24 -0
- package/dist/commands/token/delete.d.ts.map +1 -0
- package/dist/commands/token/delete.js +26 -0
- package/dist/commands/token/delete.js.map +1 -0
- package/dist/commands/token/list.d.ts +17 -0
- package/dist/commands/token/list.d.ts.map +1 -0
- package/dist/commands/token/list.js +33 -0
- package/dist/commands/token/list.js.map +1 -0
- package/dist/commands/token/operations.d.ts +17 -0
- package/dist/commands/token/operations.d.ts.map +1 -0
- package/dist/commands/token/operations.js +19 -0
- package/dist/commands/token/operations.js.map +1 -0
- package/dist/commands/token/permissions/list.d.ts +17 -0
- package/dist/commands/token/permissions/list.d.ts.map +1 -0
- package/dist/commands/token/permissions/list.js +32 -0
- package/dist/commands/token/permissions/list.js.map +1 -0
- package/dist/commands/token/permissions/replace.d.ts +22 -0
- package/dist/commands/token/permissions/replace.d.ts.map +1 -0
- package/dist/commands/token/permissions/replace.js +32 -0
- package/dist/commands/token/permissions/replace.js.map +1 -0
- package/dist/commands/token/precheck.d.ts +20 -0
- package/dist/commands/token/precheck.d.ts.map +1 -0
- package/dist/commands/token/precheck.js +30 -0
- package/dist/commands/token/precheck.js.map +1 -0
- package/dist/commands/token/reveal.d.ts +24 -0
- package/dist/commands/token/reveal.d.ts.map +1 -0
- package/dist/commands/token/reveal.js +29 -0
- package/dist/commands/token/reveal.js.map +1 -0
- package/dist/commands/token/update.d.ts +29 -0
- package/dist/commands/token/update.d.ts.map +1 -0
- package/dist/commands/token/update.js +47 -0
- package/dist/commands/token/update.js.map +1 -0
- package/dist/commands/version.d.ts +13 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +16 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/config/config-loader.d.ts +23 -0
- package/dist/config/config-loader.d.ts.map +1 -0
- package/dist/config/config-loader.js +35 -0
- package/dist/config/config-loader.js.map +1 -0
- package/dist/config/exit-codes.d.ts +14 -0
- package/dist/config/exit-codes.d.ts.map +1 -0
- package/dist/config/exit-codes.js +15 -0
- package/dist/config/exit-codes.js.map +1 -0
- package/dist/config/profiles.d.ts +14 -0
- package/dist/config/profiles.d.ts.map +1 -0
- package/dist/config/profiles.js +28 -0
- package/dist/config/profiles.js.map +1 -0
- package/dist/formatters/envelope.d.ts +10 -0
- package/dist/formatters/envelope.d.ts.map +1 -0
- package/dist/formatters/envelope.js +13 -0
- package/dist/formatters/envelope.js.map +1 -0
- package/dist/formatters/index.d.ts +4 -0
- package/dist/formatters/index.d.ts.map +1 -0
- package/dist/formatters/index.js +3 -0
- package/dist/formatters/index.js.map +1 -0
- package/dist/formatters/table.d.ts +7 -0
- package/dist/formatters/table.d.ts.map +1 -0
- package/dist/formatters/table.js +17 -0
- package/dist/formatters/table.js.map +1 -0
- package/dist/hooks/init.d.ts +8 -0
- package/dist/hooks/init.d.ts.map +1 -0
- package/dist/hooks/init.js +17 -0
- package/dist/hooks/init.js.map +1 -0
- package/dist/hooks/prerun.d.ts +8 -0
- package/dist/hooks/prerun.d.ts.map +1 -0
- package/dist/hooks/prerun.js +29 -0
- package/dist/hooks/prerun.js.map +1 -0
- package/dist/http/platform-api.d.ts +48 -0
- package/dist/http/platform-api.d.ts.map +1 -0
- package/dist/http/platform-api.js +228 -0
- package/dist/http/platform-api.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/package.json +83 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command.js';
|
|
2
|
+
import { ExitCodes } from '../../config/exit-codes.js';
|
|
3
|
+
import { formatTable } from '../../formatters/table.js';
|
|
4
|
+
import { countItems, platformApiFlags, platformApiGet, resolvePlatformApiOptions, valueText } from '../../http/platform-api.js';
|
|
5
|
+
export default class KbDoctor extends BaseCommand {
|
|
6
|
+
static description = '检查知识库 HTTP API、默认树和认证状态';
|
|
7
|
+
static flags = {
|
|
8
|
+
...BaseCommand.baseFlags,
|
|
9
|
+
...platformApiFlags,
|
|
10
|
+
};
|
|
11
|
+
async run() {
|
|
12
|
+
const { flags } = await this.parse(KbDoctor);
|
|
13
|
+
const options = await resolvePlatformApiOptions(flags);
|
|
14
|
+
const endpoints = [
|
|
15
|
+
{ id: 'registry', path: '/api/v1/kb' },
|
|
16
|
+
{ id: 'default-tree', path: '/api/v1/kb/tree' },
|
|
17
|
+
];
|
|
18
|
+
const checks = [];
|
|
19
|
+
for (const endpoint of endpoints) {
|
|
20
|
+
const result = await platformApiGet(options, endpoint.path);
|
|
21
|
+
checks.push({
|
|
22
|
+
...endpoint,
|
|
23
|
+
ok: result.ok,
|
|
24
|
+
status: result.status,
|
|
25
|
+
count: result.ok ? countItems(result.data) : 0,
|
|
26
|
+
error: result.error,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
const ok = checks.every((check) => check.ok);
|
|
30
|
+
if (flags.json) {
|
|
31
|
+
this.outputEnvelope({ apiUrl: options.apiUrl, authenticated: Boolean(options.token), ok, checks }, ok);
|
|
32
|
+
if (!ok)
|
|
33
|
+
this.exit(ExitCodes.NETWORK_ERROR);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
this.log(`API: ${options.apiUrl}`);
|
|
37
|
+
this.log(`Token: ${options.token ? 'provided' : 'missing'}`);
|
|
38
|
+
this.log(formatTable(['Check', 'Status', 'Items', 'Result'], checks.map((check) => [
|
|
39
|
+
check.id,
|
|
40
|
+
check.status === 0 ? 'network' : String(check.status),
|
|
41
|
+
String(check.count),
|
|
42
|
+
check.ok ? 'ok' : valueText(check.error),
|
|
43
|
+
])));
|
|
44
|
+
if (!ok)
|
|
45
|
+
this.exit(ExitCodes.NETWORK_ERROR);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/commands/kb/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command.js';
|
|
2
|
+
export default class KbFile extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static args: {
|
|
5
|
+
slug: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
|
+
path: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static flags: {
|
|
9
|
+
raw: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
output: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
'api-url': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
token: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
credential: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
16
|
+
profile: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
|
+
context: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
19
|
+
'trace-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
20
|
+
};
|
|
21
|
+
run(): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/commands/kb/file.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMpD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW;IAC7C,OAAgB,WAAW,SAA6C;IAExE,OAAgB,IAAI;;;MASlB;IAEF,OAAgB,KAAK;;;;;;;;;;;;MAWnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgE3B"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { writeFile } from 'node:fs/promises';
|
|
2
|
+
import { Args, Flags } from '@oclif/core';
|
|
3
|
+
import { BaseCommand } from '../../base-command.js';
|
|
4
|
+
import { ExitCodes } from '../../config/exit-codes.js';
|
|
5
|
+
import { createEnvelope, formatEnvelope } from '../../formatters/envelope.js';
|
|
6
|
+
import { buildPlatformUrl, platformApiFlags, resolvePlatformApiOptions } from '../../http/platform-api.js';
|
|
7
|
+
import { encodeFilePath, encodePathSegment } from '../../command-utils/platform-command.js';
|
|
8
|
+
export default class KbFile extends BaseCommand {
|
|
9
|
+
static description = '读取知识库文件;文本默认输出到 stdout,二进制建议使用 --output';
|
|
10
|
+
static args = {
|
|
11
|
+
slug: Args.string({
|
|
12
|
+
description: 'knowledge base slug',
|
|
13
|
+
required: true,
|
|
14
|
+
}),
|
|
15
|
+
path: Args.string({
|
|
16
|
+
description: 'file path in the knowledge base',
|
|
17
|
+
required: true,
|
|
18
|
+
}),
|
|
19
|
+
};
|
|
20
|
+
static flags = {
|
|
21
|
+
...BaseCommand.baseFlags,
|
|
22
|
+
...platformApiFlags,
|
|
23
|
+
raw: Flags.boolean({
|
|
24
|
+
description: '使用 raw 文件流端点',
|
|
25
|
+
default: false,
|
|
26
|
+
}),
|
|
27
|
+
output: Flags.string({
|
|
28
|
+
char: 'o',
|
|
29
|
+
description: '写入本地文件;二进制文件建议使用该参数',
|
|
30
|
+
}),
|
|
31
|
+
};
|
|
32
|
+
async run() {
|
|
33
|
+
const { args, flags } = await this.parse(KbFile);
|
|
34
|
+
const options = await resolvePlatformApiOptions(flags);
|
|
35
|
+
const endpoint = flags.raw ? 'raw' : 'files';
|
|
36
|
+
const path = `/api/v1/kb/${encodePathSegment(args.slug)}/${endpoint}/${encodeFilePath(args.path)}`;
|
|
37
|
+
const url = buildPlatformUrl(options.apiUrl, path);
|
|
38
|
+
const response = await fetch(url, {
|
|
39
|
+
headers: {
|
|
40
|
+
...(options.token ? { Authorization: `Bearer ${options.token}` } : {}),
|
|
41
|
+
...(options.activeDomainId ? { 'X-Bsteam-Active-Domain-Id': options.activeDomainId } : {}),
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
if (!response.ok) {
|
|
45
|
+
const message = await response.text();
|
|
46
|
+
const error = {
|
|
47
|
+
code: response.status === 401 || response.status === 403 ? 'AUTH_REQUIRED' : 'REQUEST_FAILED',
|
|
48
|
+
status: response.status,
|
|
49
|
+
message: message || response.statusText,
|
|
50
|
+
url,
|
|
51
|
+
};
|
|
52
|
+
if (flags.json)
|
|
53
|
+
this.log(formatEnvelope(createEnvelope(error, false), process.stdout.isTTY));
|
|
54
|
+
else
|
|
55
|
+
this.error(`${error.status}: ${error.message}`, { exit: false });
|
|
56
|
+
this.exit(response.status === 401 || response.status === 403 ? ExitCodes.AUTH_REQUIRED : ExitCodes.NETWORK_ERROR);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const contentType = response.headers.get('content-type') ?? '';
|
|
60
|
+
const buffer = Buffer.from(await response.arrayBuffer());
|
|
61
|
+
if (flags.output) {
|
|
62
|
+
await writeFile(flags.output, buffer);
|
|
63
|
+
if (flags.json) {
|
|
64
|
+
this.log(formatEnvelope(createEnvelope({
|
|
65
|
+
output: flags.output,
|
|
66
|
+
bytes: buffer.length,
|
|
67
|
+
contentType,
|
|
68
|
+
url,
|
|
69
|
+
}), process.stdout.isTTY));
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
this.log(`Wrote ${buffer.length} bytes to ${flags.output}`);
|
|
73
|
+
}
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const textLike = contentType.startsWith('text/') || contentType.includes('json') || contentType.includes('xml');
|
|
77
|
+
if (flags.json) {
|
|
78
|
+
this.log(formatEnvelope(createEnvelope({
|
|
79
|
+
slug: args.slug,
|
|
80
|
+
path: args.path,
|
|
81
|
+
contentType,
|
|
82
|
+
bytes: buffer.length,
|
|
83
|
+
content: textLike ? buffer.toString('utf8') : undefined,
|
|
84
|
+
base64: textLike ? undefined : buffer.toString('base64'),
|
|
85
|
+
}), process.stdout.isTTY));
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (!textLike) {
|
|
89
|
+
this.error('Binary file output requires --output, or use --json for base64 output.', { exit: ExitCodes.INVALID_ARGS });
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
process.stdout.write(buffer);
|
|
93
|
+
if (!buffer.toString('utf8').endsWith('\n'))
|
|
94
|
+
process.stdout.write('\n');
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/commands/kb/file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command.js';
|
|
2
|
+
export default class KbGet extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static args: {
|
|
5
|
+
slug: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
static flags: {
|
|
8
|
+
'api-url': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
token: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
credential: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
profile: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
context: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
+
'trace-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
};
|
|
18
|
+
run(): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=get.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/kb/get.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC5C,OAAgB,WAAW,SAAiC;IAE5D,OAAgB,IAAI;;MAKlB;IAEF,OAAgB,KAAK;;;;;;;;;;MAGnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAmB3B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Args } from '@oclif/core';
|
|
2
|
+
import { BaseCommand } from '../../base-command.js';
|
|
3
|
+
import { platformApiFlags } from '../../http/platform-api.js';
|
|
4
|
+
import { encodePathSegment, requestAndOutput } from '../../command-utils/platform-command.js';
|
|
5
|
+
export default class KbGet extends BaseCommand {
|
|
6
|
+
static description = '查看知识库详情、Git clone URL 与当前权限';
|
|
7
|
+
static args = {
|
|
8
|
+
slug: Args.string({
|
|
9
|
+
description: 'knowledge base slug',
|
|
10
|
+
required: true,
|
|
11
|
+
}),
|
|
12
|
+
};
|
|
13
|
+
static flags = {
|
|
14
|
+
...BaseCommand.baseFlags,
|
|
15
|
+
...platformApiFlags,
|
|
16
|
+
};
|
|
17
|
+
async run() {
|
|
18
|
+
const { args, flags } = await this.parse(KbGet);
|
|
19
|
+
await requestAndOutput(this, flags, {
|
|
20
|
+
method: 'GET',
|
|
21
|
+
path: `/api/v1/kb/${encodePathSegment(args.slug)}`,
|
|
22
|
+
human: (data) => {
|
|
23
|
+
const caps = (data.capabilities ?? {});
|
|
24
|
+
return [
|
|
25
|
+
`Slug: ${data.slug ?? '-'}`,
|
|
26
|
+
`Name: ${data.name ?? '-'}`,
|
|
27
|
+
`Status: ${data.status ?? '-'}`,
|
|
28
|
+
`Visibility: ${data.visibility ?? '-'}`,
|
|
29
|
+
`Description: ${data.description ?? '-'}`,
|
|
30
|
+
`Git: ${data.ssh_clone_url ?? '-'}`,
|
|
31
|
+
`Capabilities: read=${caps.read === true ? 'yes' : 'no'} write=${caps.write === true ? 'yes' : 'no'} manage=${caps.manage === true ? 'yes' : 'no'} share=${caps.share === true ? 'yes' : 'no'}`,
|
|
32
|
+
].join('\n');
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/kb/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE9F,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC5C,MAAM,CAAU,WAAW,GAAG,6BAA6B,CAAC;IAE5D,MAAM,CAAU,IAAI,GAAG;QACrB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,WAAW,CAAC,SAAS;QACxB,GAAG,gBAAgB;KACpB,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,gBAAgB,CAA0B,IAAI,EAAE,KAAK,EAAE;YAC3D,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAClD,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;gBACd,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAA4B,CAAC;gBAClE,OAAO;oBACL,SAAS,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE;oBAC3B,SAAS,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE;oBAC3B,WAAW,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE;oBAC/B,eAAe,IAAI,CAAC,UAAU,IAAI,GAAG,EAAE;oBACvC,gBAAgB,IAAI,CAAC,WAAW,IAAI,GAAG,EAAE;oBACzC,QAAQ,IAAI,CAAC,aAAa,IAAI,GAAG,EAAE;oBACnC,sBAAsB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,WAAW,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;iBAChM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;SACF,CAAC,CAAC;IACL,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command.js';
|
|
2
|
+
export default class KbGit extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static args: {
|
|
5
|
+
slug: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
static flags: {
|
|
8
|
+
'api-url': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
token: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
credential: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
profile: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
context: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
+
'trace-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
};
|
|
18
|
+
run(): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=git.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/commands/kb/git.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC5C,OAAgB,WAAW,SAAwB;IAEnD,OAAgB,IAAI;;MAKlB;IAEF,OAAgB,KAAK;;;;;;;;;;MAGnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA4B3B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Args } from '@oclif/core';
|
|
2
|
+
import { BaseCommand } from '../../base-command.js';
|
|
3
|
+
import { platformApiFlags } from '../../http/platform-api.js';
|
|
4
|
+
import { encodePathSegment, requestAndOutput } from '../../command-utils/platform-command.js';
|
|
5
|
+
export default class KbGit extends BaseCommand {
|
|
6
|
+
static description = '显示知识库 Git clone 信息';
|
|
7
|
+
static args = {
|
|
8
|
+
slug: Args.string({
|
|
9
|
+
description: 'knowledge base slug',
|
|
10
|
+
required: true,
|
|
11
|
+
}),
|
|
12
|
+
};
|
|
13
|
+
static flags = {
|
|
14
|
+
...BaseCommand.baseFlags,
|
|
15
|
+
...platformApiFlags,
|
|
16
|
+
};
|
|
17
|
+
async run() {
|
|
18
|
+
const { args, flags } = await this.parse(KbGit);
|
|
19
|
+
await requestAndOutput(this, flags, {
|
|
20
|
+
method: 'GET',
|
|
21
|
+
path: `/api/v1/kb/${encodePathSegment(args.slug)}`,
|
|
22
|
+
jsonData: (data) => ({
|
|
23
|
+
slug: data.slug,
|
|
24
|
+
ssh_clone_url: data.ssh_clone_url,
|
|
25
|
+
git_repo_path: data.git_repo_path,
|
|
26
|
+
capabilities: data.capabilities,
|
|
27
|
+
}),
|
|
28
|
+
human: (data) => {
|
|
29
|
+
const cloneUrl = data.ssh_clone_url;
|
|
30
|
+
if (!cloneUrl) {
|
|
31
|
+
return [
|
|
32
|
+
`KB: ${data.slug ?? args.slug}`,
|
|
33
|
+
'Git clone URL: unavailable',
|
|
34
|
+
'Reason: this KB is not git-enabled or current user cannot clone it.',
|
|
35
|
+
].join('\n');
|
|
36
|
+
}
|
|
37
|
+
return [
|
|
38
|
+
`KB: ${data.slug ?? args.slug}`,
|
|
39
|
+
`Git clone URL: ${cloneUrl}`,
|
|
40
|
+
`Clone: git clone ${cloneUrl}`,
|
|
41
|
+
].join('\n');
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/commands/kb/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE9F,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW;IAC5C,MAAM,CAAU,WAAW,GAAG,oBAAoB,CAAC;IAEnD,MAAM,CAAU,IAAI,GAAG;QACrB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,qBAAqB;YAClC,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,WAAW,CAAC,SAAS;QACxB,GAAG,gBAAgB;KACpB,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,gBAAgB,CAA0B,IAAI,EAAE,KAAK,EAAE;YAC3D,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAClD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC,CAAC;YACF,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;gBACd,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;gBACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO;wBACL,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;wBAC/B,4BAA4B;wBAC5B,qEAAqE;qBACtE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACf,CAAC;gBACD,OAAO;oBACL,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;oBAC/B,kBAAkB,QAAQ,EAAE;oBAC5B,oBAAoB,QAAQ,EAAE;iBAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;SACF,CAAC,CAAC;IACL,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command.js';
|
|
2
|
+
export default class KbList extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static flags: {
|
|
5
|
+
'api-url': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
6
|
+
token: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
credential: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
profile: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
context: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
'trace-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
};
|
|
15
|
+
run(): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/kb/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKpD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW;IAC7C,OAAgB,WAAW,SAAkB;IAE7C,OAAgB,KAAK;;;;;;;;;;MAGnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0B3B"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { BaseCommand } from '../../base-command.js';
|
|
2
|
+
import { formatTable } from '../../formatters/table.js';
|
|
3
|
+
import { platformApiFlags } from '../../http/platform-api.js';
|
|
4
|
+
import { extractItems, pickText, requestAndOutput } from '../../command-utils/platform-command.js';
|
|
5
|
+
export default class KbList extends BaseCommand {
|
|
6
|
+
static description = '列出当前用户可见的知识库';
|
|
7
|
+
static flags = {
|
|
8
|
+
...BaseCommand.baseFlags,
|
|
9
|
+
...platformApiFlags,
|
|
10
|
+
};
|
|
11
|
+
async run() {
|
|
12
|
+
const { flags } = await this.parse(KbList);
|
|
13
|
+
await requestAndOutput(this, flags, {
|
|
14
|
+
method: 'GET',
|
|
15
|
+
path: '/api/v1/kb',
|
|
16
|
+
human: (data) => {
|
|
17
|
+
const items = extractItems(data);
|
|
18
|
+
if (items.length === 0)
|
|
19
|
+
return 'No knowledge bases';
|
|
20
|
+
return formatTable(['Slug', 'Name', 'Visibility', 'Status', 'Clone', 'Manage', 'Share'], items.map((item) => {
|
|
21
|
+
const caps = (item.capabilities ?? {});
|
|
22
|
+
return [
|
|
23
|
+
pickText(item, ['slug']),
|
|
24
|
+
pickText(item, ['name']),
|
|
25
|
+
pickText(item, ['visibility']),
|
|
26
|
+
pickText(item, ['status']),
|
|
27
|
+
item.ssh_clone_url ? 'yes' : 'no',
|
|
28
|
+
caps.manage === true ? 'yes' : 'no',
|
|
29
|
+
caps.share === true ? 'yes' : 'no',
|
|
30
|
+
];
|
|
31
|
+
}));
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/kb/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAEnG,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW;IAC7C,MAAM,CAAU,WAAW,GAAG,cAAc,CAAC;IAE7C,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,WAAW,CAAC,SAAS;QACxB,GAAG,gBAAgB;KACpB,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE;YAClC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;gBACd,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,oBAAoB,CAAC;gBACpD,OAAO,WAAW,CAChB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EACpE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBACjB,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAA4B,CAAC;oBAClE,OAAO;wBACL,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;wBACxB,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;wBACxB,QAAQ,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC;wBAC9B,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;wBAC1B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;wBACjC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;wBACnC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;qBACnC,CAAC;gBACJ,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base-command.js';
|
|
2
|
+
export default class KbShareCreate extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static args: {
|
|
5
|
+
slug: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
static flags: {
|
|
8
|
+
path: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
'expires-in-hours': import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
data: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
'data-file': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
'api-url': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
token: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
credential: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
+
domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
18
|
+
profile: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
19
|
+
config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
20
|
+
context: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
21
|
+
'trace-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
22
|
+
};
|
|
23
|
+
run(): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/commands/kb/share/create.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAIvD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IACpD,OAAgB,WAAW,SAAe;IAE1C,OAAgB,IAAI;;MAElB;IAEF,OAAgB,KAAK;;;;;;;;;;;;;;;MAcnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAiB3B"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Args, Flags } from '@oclif/core';
|
|
2
|
+
import { BaseCommand } from '../../../base-command.js';
|
|
3
|
+
import { platformApiFlags } from '../../../http/platform-api.js';
|
|
4
|
+
import { buildBody, encodePathSegment, jsonBodyFlags, requestAndOutput } from '../../../command-utils/platform-command.js';
|
|
5
|
+
export default class KbShareCreate extends BaseCommand {
|
|
6
|
+
static description = '创建知识库分享链接';
|
|
7
|
+
static args = {
|
|
8
|
+
slug: Args.string({ description: 'knowledge base slug', required: true }),
|
|
9
|
+
};
|
|
10
|
+
static flags = {
|
|
11
|
+
...BaseCommand.baseFlags,
|
|
12
|
+
...platformApiFlags,
|
|
13
|
+
...jsonBodyFlags,
|
|
14
|
+
path: Flags.string({
|
|
15
|
+
description: '分享路径;不填由服务端默认到知识库根路径',
|
|
16
|
+
}),
|
|
17
|
+
'expires-in-hours': Flags.integer({
|
|
18
|
+
description: '有效小时数;不填由服务端默认策略决定',
|
|
19
|
+
}),
|
|
20
|
+
'dry-run': Flags.boolean({
|
|
21
|
+
description: '只预览请求,不实际创建分享链接',
|
|
22
|
+
default: false,
|
|
23
|
+
}),
|
|
24
|
+
};
|
|
25
|
+
async run() {
|
|
26
|
+
const { args, flags } = await this.parse(KbShareCreate);
|
|
27
|
+
const body = await buildBody(flags, {
|
|
28
|
+
path: flags.path,
|
|
29
|
+
expiresInHours: flags['expires-in-hours'],
|
|
30
|
+
});
|
|
31
|
+
await requestAndOutput(this, flags, {
|
|
32
|
+
method: 'POST',
|
|
33
|
+
path: `/api/v1/kb/${encodePathSegment(args.slug)}/share-links`,
|
|
34
|
+
body,
|
|
35
|
+
human: (data) => [
|
|
36
|
+
'Share link created.',
|
|
37
|
+
JSON.stringify(data, null, 2),
|
|
38
|
+
].join('\n'),
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/kb/share/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAE3H,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IACpD,MAAM,CAAU,WAAW,GAAG,WAAW,CAAC;IAE1C,MAAM,CAAU,IAAI,GAAG;QACrB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KAC1E,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,WAAW,CAAC,SAAS;QACxB,GAAG,gBAAgB;QACnB,GAAG,aAAa;QAChB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,sBAAsB;SACpC,CAAC;QACF,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC;YAChC,WAAW,EAAE,oBAAoB;SAClC,CAAC;QACF,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC;YACvB,WAAW,EAAE,iBAAiB;YAC9B,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE;YAClC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,cAAc,EAAE,KAAK,CAAC,kBAAkB,CAAC;SAC1C,CAAC,CAAC;QAEH,MAAM,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE;YAClC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,cAAc,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc;YAC9D,IAAI;YACJ,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;gBACf,qBAAqB;gBACrB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aAC9B,CAAC,IAAI,CAAC,IAAI,CAAC;SACb,CAAC,CAAC;IACL,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base-command.js';
|
|
2
|
+
export default class KbShareList extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static args: {
|
|
5
|
+
slug: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
|
+
};
|
|
7
|
+
static flags: {
|
|
8
|
+
'api-url': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
token: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
credential: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
13
|
+
profile: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
context: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
+
'trace-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
};
|
|
18
|
+
run(): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/kb/share/list.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAIvD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,OAAgB,WAAW,SAAe;IAE1C,OAAgB,IAAI;;MAElB;IAEF,OAAgB,KAAK;;;;;;;;;;MAGnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAmB3B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Args } from '@oclif/core';
|
|
2
|
+
import { BaseCommand } from '../../../base-command.js';
|
|
3
|
+
import { platformApiFlags } from '../../../http/platform-api.js';
|
|
4
|
+
import { encodePathSegment, extractItems, pickText, requestAndOutput } from '../../../command-utils/platform-command.js';
|
|
5
|
+
export default class KbShareList extends BaseCommand {
|
|
6
|
+
static description = '查看知识库分享链接';
|
|
7
|
+
static args = {
|
|
8
|
+
slug: Args.string({ description: 'knowledge base slug', required: true }),
|
|
9
|
+
};
|
|
10
|
+
static flags = {
|
|
11
|
+
...BaseCommand.baseFlags,
|
|
12
|
+
...platformApiFlags,
|
|
13
|
+
};
|
|
14
|
+
async run() {
|
|
15
|
+
const { args, flags } = await this.parse(KbShareList);
|
|
16
|
+
await requestAndOutput(this, flags, {
|
|
17
|
+
method: 'GET',
|
|
18
|
+
path: `/api/v1/kb/${encodePathSegment(args.slug)}/share-links`,
|
|
19
|
+
human: (data) => {
|
|
20
|
+
const items = extractItems(data);
|
|
21
|
+
if (items.length === 0)
|
|
22
|
+
return 'No share links.';
|
|
23
|
+
return items
|
|
24
|
+
.map((row) => [
|
|
25
|
+
pickText(row, ['id']),
|
|
26
|
+
pickText(row, ['path']),
|
|
27
|
+
pickText(row, ['expires_at', 'expiresAt']),
|
|
28
|
+
pickText(row, ['created_at', 'createdAt']),
|
|
29
|
+
].join('\t'))
|
|
30
|
+
.join('\n');
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/kb/share/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAEzH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAU,WAAW,GAAG,WAAW,CAAC;IAE1C,MAAM,CAAU,IAAI,GAAG;QACrB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KAC1E,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,WAAW,CAAC,SAAS;QACxB,GAAG,gBAAgB;KACpB,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE;YAClC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc;YAC9D,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;gBACd,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,iBAAiB,CAAC;gBACjD,OAAO,KAAK;qBACT,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;oBACZ,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;oBACrB,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;oBACvB,QAAQ,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;oBAC1C,QAAQ,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;iBAC3C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACZ,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;SACF,CAAC,CAAC;IACL,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BaseCommand } from '../../../base-command.js';
|
|
2
|
+
export default class KbShareRevoke extends BaseCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static args: {
|
|
5
|
+
slug: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
|
+
id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static flags: {
|
|
9
|
+
'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
yes: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
data: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
'data-file': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
'api-url': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
|
+
token: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
credential: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
+
domain: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
18
|
+
profile: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
19
|
+
config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
20
|
+
context: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
21
|
+
'trace-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
22
|
+
};
|
|
23
|
+
run(): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=revoke.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revoke.d.ts","sourceRoot":"","sources":["../../../../src/commands/kb/share/revoke.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAIvD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IACpD,OAAgB,WAAW,SAAe;IAE1C,OAAgB,IAAI;;;MAGlB;IAEF,OAAgB,KAAK;;;;;;;;;;;;;;MAInB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAU3B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Args } from '@oclif/core';
|
|
2
|
+
import { BaseCommand } from '../../../base-command.js';
|
|
3
|
+
import { platformApiFlags } from '../../../http/platform-api.js';
|
|
4
|
+
import { encodePathSegment, mutationFlags, requestAndOutput } from '../../../command-utils/platform-command.js';
|
|
5
|
+
export default class KbShareRevoke extends BaseCommand {
|
|
6
|
+
static description = '吊销知识库分享链接';
|
|
7
|
+
static args = {
|
|
8
|
+
slug: Args.string({ description: 'knowledge base slug', required: true }),
|
|
9
|
+
id: Args.string({ description: 'share link id', required: true }),
|
|
10
|
+
};
|
|
11
|
+
static flags = {
|
|
12
|
+
...BaseCommand.baseFlags,
|
|
13
|
+
...platformApiFlags,
|
|
14
|
+
...mutationFlags,
|
|
15
|
+
};
|
|
16
|
+
async run() {
|
|
17
|
+
const { args, flags } = await this.parse(KbShareRevoke);
|
|
18
|
+
await requestAndOutput(this, flags, {
|
|
19
|
+
method: 'DELETE',
|
|
20
|
+
path: `/api/v1/kb/${encodePathSegment(args.slug)}/share-links/${encodePathSegment(args.id)}`,
|
|
21
|
+
requiresConfirmation: true,
|
|
22
|
+
confirmationHint: 'Add --yes to revoke this share link.',
|
|
23
|
+
human: () => `Revoked share link: ${args.id}`,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=revoke.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revoke.js","sourceRoot":"","sources":["../../../../src/commands/kb/share/revoke.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAEhH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IACpD,MAAM,CAAU,WAAW,GAAG,WAAW,CAAC;IAE1C,MAAM,CAAU,IAAI,GAAG;QACrB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACzE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KAClE,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,WAAW,CAAC,SAAS;QACxB,GAAG,gBAAgB;QACnB,GAAG,aAAa;KACjB,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxD,MAAM,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE;YAClC,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,cAAc,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAC5F,oBAAoB,EAAE,IAAI;YAC1B,gBAAgB,EAAE,sCAAsC;YACxD,KAAK,EAAE,GAAG,EAAE,CAAC,uBAAuB,IAAI,CAAC,EAAE,EAAE;SAC9C,CAAC,CAAC;IACL,CAAC"}
|