@rsdk/cli 4.2.5-next.0 → 4.3.0-next.1
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 +12 -0
- package/README.MD +15 -0
- package/TODO.MD +5 -0
- package/bin.js +10 -0
- package/dist/exception.d.ts +4 -0
- package/dist/exception.js +23 -0
- package/dist/exception.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +62 -0
- package/dist/index.js.map +1 -0
- package/dist/package.loader.d.ts +6 -0
- package/dist/package.loader.js +28 -0
- package/dist/package.loader.js.map +1 -0
- package/dist/reconfigure-logger.d.ts +5 -0
- package/dist/reconfigure-logger.js +12 -0
- package/dist/reconfigure-logger.js.map +1 -0
- package/package.json +11 -6
- package/src/exception.ts +25 -0
- package/src/index.ts +73 -0
- package/src/package.loader.ts +36 -0
- package/src/reconfigure-logger.ts +13 -0
- package/dist/bin.d.ts +0 -2
- package/dist/bin.js +0 -21
- package/dist/bin.js.map +0 -1
- package/dist/kafka/commands/extract/extract.command.d.ts +0 -2
- package/dist/kafka/commands/extract/extract.command.js +0 -17
- package/dist/kafka/commands/extract/extract.command.js.map +0 -1
- package/dist/kafka/commands/extract/kafka-config.extractor.d.ts +0 -6
- package/dist/kafka/commands/extract/kafka-config.extractor.js +0 -40
- package/dist/kafka/commands/extract/kafka-config.extractor.js.map +0 -1
- package/dist/kafka/commands/extract/types.d.ts +0 -85
- package/dist/kafka/commands/extract/types.js +0 -3
- package/dist/kafka/commands/extract/types.js.map +0 -1
- package/dist/kafka/commands/schema/print-schema.d.ts +0 -5
- package/dist/kafka/commands/schema/print-schema.js +0 -11
- package/dist/kafka/commands/schema/print-schema.js.map +0 -1
- package/dist/kafka/commands/schema/schema.command.d.ts +0 -2
- package/dist/kafka/commands/schema/schema.command.js +0 -12
- package/dist/kafka/commands/schema/schema.command.js.map +0 -1
- package/dist/kafka/commands/sync/check-exist.d.ts +0 -7
- package/dist/kafka/commands/sync/check-exist.js +0 -57
- package/dist/kafka/commands/sync/check-exist.js.map +0 -1
- package/dist/kafka/commands/sync/context.d.ts +0 -3
- package/dist/kafka/commands/sync/context.js +0 -3
- package/dist/kafka/commands/sync/context.js.map +0 -1
- package/dist/kafka/commands/sync/create-topic.task.d.ts +0 -5
- package/dist/kafka/commands/sync/create-topic.task.js +0 -28
- package/dist/kafka/commands/sync/create-topic.task.js.map +0 -1
- package/dist/kafka/commands/sync/get-config.d.ts +0 -5
- package/dist/kafka/commands/sync/get-config.js +0 -28
- package/dist/kafka/commands/sync/get-config.js.map +0 -1
- package/dist/kafka/commands/sync/kafka.creds-provider.d.ts +0 -4
- package/dist/kafka/commands/sync/kafka.creds-provider.js +0 -22
- package/dist/kafka/commands/sync/kafka.creds-provider.js.map +0 -1
- package/dist/kafka/commands/sync/sync.command.d.ts +0 -2
- package/dist/kafka/commands/sync/sync.command.js +0 -49
- package/dist/kafka/commands/sync/sync.command.js.map +0 -1
- package/dist/kafka/config.schema.d.ts +0 -34
- package/dist/kafka/config.schema.js +0 -26
- package/dist/kafka/config.schema.js.map +0 -1
- package/dist/kafka/schemas/string-enum.d.ts +0 -2
- package/dist/kafka/schemas/string-enum.js +0 -14
- package/dist/kafka/schemas/string-enum.js.map +0 -1
- package/src/bin.ts +0 -26
- package/src/kafka/commands/extract/extract.command.ts +0 -16
- package/src/kafka/commands/extract/kafka-config.extractor.ts +0 -47
- package/src/kafka/commands/extract/types.ts +0 -101
- package/src/kafka/commands/schema/print-schema.ts +0 -15
- package/src/kafka/commands/schema/schema.command.ts +0 -10
- package/src/kafka/commands/sync/check-exist.ts +0 -68
- package/src/kafka/commands/sync/context.ts +0 -3
- package/src/kafka/commands/sync/create-topic.task.ts +0 -35
- package/src/kafka/commands/sync/get-config.ts +0 -25
- package/src/kafka/commands/sync/kafka.creds-provider.ts +0 -16
- package/src/kafka/commands/sync/sync.command.ts +0 -66
- package/src/kafka/config.schema.ts +0 -31
- package/src/kafka/schemas/string-enum.ts +0 -15
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [4.3.0-next.1](https://github.com/R-Vision/rsdk/compare/v4.3.0-next.0...v4.3.0-next.1) (2024-03-21)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* enchanche cli api and announce 4.3 ([#217](https://github.com/R-Vision/rsdk/issues/217)) ([65536bc](https://github.com/R-Vision/rsdk/commit/65536bcd13473790e4be901a44c07e49c2a79cff))
|
|
11
|
+
|
|
12
|
+
## [4.3.0-next.0](https://github.com/R-Vision/rsdk/compare/v4.2.5-next.0...v4.3.0-next.0) (2024-03-19)
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* reworked cli system ([745ebf5](https://github.com/R-Vision/rsdk/commit/745ebf53635de135a4a9083f47ce833efe2d4411))
|
|
17
|
+
|
|
6
18
|
## [4.2.5-next.0](https://github.com/R-Vision/rsdk/compare/v4.2.4...v4.2.5-next.0) (2024-03-04)
|
|
7
19
|
|
|
8
20
|
**Note:** Version bump only for package @rsdk/cli
|
package/README.MD
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Cli
|
|
2
|
+
|
|
3
|
+
Лаунчер для rsdk команд
|
|
4
|
+
|
|
5
|
+
## Concepts
|
|
6
|
+
|
|
7
|
+
При вызове `rsdk <command>` лаунчер попытается найти пакет соответствующий этой команде (алгоритм поиска описан ниже) и/или предложит его установить, после чего делегирует обработку команды этому пакету.
|
|
8
|
+
|
|
9
|
+
## Алгоритм поиска пакета
|
|
10
|
+
|
|
11
|
+
Из названия команды берется первая подстрока до двоеточия - `:`, этот фрагмент команды используется в названии команды `@rsdk/cli.cmd.<trimmed>`
|
|
12
|
+
|
|
13
|
+
## Интерфейс взаимодействия
|
|
14
|
+
|
|
15
|
+
Основной интерфейс взаимодействия с пакетом команды обеспечивается через `RsdkCliCommand` из пакета `@rsdk/cli.common`
|
package/TODO.MD
ADDED
package/bin.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FailedToInstall = void 0;
|
|
4
|
+
class FailedToInstall extends Error {
|
|
5
|
+
constructor(packageName, rsdkCommand, cause) {
|
|
6
|
+
super('Failed to install ' + packageName, {
|
|
7
|
+
cause: {
|
|
8
|
+
packageName,
|
|
9
|
+
rsdkCommand,
|
|
10
|
+
cause,
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
this.name = this.constructor.name;
|
|
14
|
+
}
|
|
15
|
+
static assertError(error, packageName, rsdkCommand) {
|
|
16
|
+
const isFailedToInstall = error.message.startsWith('Failed to install');
|
|
17
|
+
if (isFailedToInstall) {
|
|
18
|
+
throw new FailedToInstall(packageName, rsdkCommand, error);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.FailedToInstall = FailedToInstall;
|
|
23
|
+
//# sourceMappingURL=exception.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exception.js","sourceRoot":"","sources":["../src/exception.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,WAAmB,EAAE,WAAmB,EAAE,KAAW;QAC/D,KAAK,CAAC,oBAAoB,GAAG,WAAW,EAAE;YACxC,KAAK,EAAE;gBACL,WAAW;gBACX,WAAW;gBACX,KAAK;aACN;SACF,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,WAAW,CAChB,KAAY,EACZ,WAAmB,EACnB,WAAmB;QAEnB,MAAM,iBAAiB,GAAI,KAAK,CAAC,OAAkB,CAAC,UAAU,CAC5D,mBAAmB,CACpB,CAAC;QACF,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,IAAI,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF;AAxBD,0CAwBC"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.execute = void 0;
|
|
4
|
+
const fs_1 = require("@parcel/fs");
|
|
5
|
+
const package_manager_1 = require("@parcel/package-manager");
|
|
6
|
+
const commander_1 = require("commander");
|
|
7
|
+
const enquirer_1 = require("enquirer");
|
|
8
|
+
const node_path_1 = require("node:path");
|
|
9
|
+
require("./reconfigure-logger");
|
|
10
|
+
const exception_1 = require("./exception");
|
|
11
|
+
const package_loader_1 = require("./package.loader");
|
|
12
|
+
// TODO: сделать более понятным, переиспользуемым, консистентным и контролируем
|
|
13
|
+
process.env.RSDK_CLI_MODE = 'true';
|
|
14
|
+
process.title = 'rsdk';
|
|
15
|
+
const execute = async () => {
|
|
16
|
+
const rsdkCommand = process.argv.slice(2)[0];
|
|
17
|
+
if (!rsdkCommand || rsdkCommand.startsWith('-')) {
|
|
18
|
+
commander_1.program.parse();
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
const cmd = rsdkCommand.split(':')[0];
|
|
22
|
+
const cmdPackage = '@rsdk/cli.cmd.' + cmd;
|
|
23
|
+
const packageManager = new package_manager_1.NodePackageManager(new fs_1.NodeFS(), (0, node_path_1.resolve)());
|
|
24
|
+
const resolveResult = await packageManager
|
|
25
|
+
.resolve(cmdPackage, (0, node_path_1.resolve)(), null)
|
|
26
|
+
.catch((error) => error);
|
|
27
|
+
try {
|
|
28
|
+
const isNotResolved = resolveResult instanceof Error;
|
|
29
|
+
if (isNotResolved) {
|
|
30
|
+
console.log(`Unable to resolve ${cmdPackage} cause:`, resolveResult.message);
|
|
31
|
+
const response = await (0, enquirer_1.prompt)({
|
|
32
|
+
type: 'confirm',
|
|
33
|
+
name: 'isInstall',
|
|
34
|
+
message: 'Install ' + cmdPackage + ' package?',
|
|
35
|
+
initial: true,
|
|
36
|
+
});
|
|
37
|
+
if (!response.isInstall) {
|
|
38
|
+
console.log('Install was aborted');
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
await package_loader_1.PackageLoader.installPackage(packageManager, cmdPackage);
|
|
42
|
+
}
|
|
43
|
+
const resolvedPackage = isNotResolved
|
|
44
|
+
? await packageManager.resolve(cmdPackage, (0, node_path_1.resolve)(), void 0)
|
|
45
|
+
: resolveResult;
|
|
46
|
+
const rsdkCliCommand = package_loader_1.PackageLoader.getEntry(resolvedPackage.resolved);
|
|
47
|
+
const cmds = rsdkCliCommand.getCommands();
|
|
48
|
+
for (const cmd of cmds) {
|
|
49
|
+
commander_1.program.addCommand(cmd);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
if (!(error instanceof Error)) {
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
exception_1.FailedToInstall.assertError(error, cmdPackage, rsdkCommand);
|
|
57
|
+
throw error;
|
|
58
|
+
}
|
|
59
|
+
commander_1.program.parse();
|
|
60
|
+
};
|
|
61
|
+
exports.execute = execute;
|
|
62
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AACpC,6DAA6D;AAC7D,yCAAoC;AACpC,uCAAkC;AAClC,yCAAoC;AAEpC,gCAA8B;AAE9B,2CAA8C;AAC9C,qDAAiD;AAEjD,+EAA+E;AAC/E,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC;AAEnC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;AAEhB,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;IAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7C,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,mBAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IACD,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,gBAAgB,GAAG,GAAG,CAAC;IAE1C,MAAM,cAAc,GAAG,IAAI,oCAAkB,CAAC,IAAI,WAAM,EAAE,EAAE,IAAA,mBAAO,GAAE,CAAC,CAAC;IAEvE,MAAM,aAAa,GAAG,MAAM,cAAc;SACvC,OAAO,CAAC,UAAU,EAAE,IAAA,mBAAO,GAAE,EAAE,IAAI,CAAC;SACpC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,aAAa,YAAY,KAAK,CAAC;QACrD,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CACT,qBAAqB,UAAU,SAAS,EACxC,aAAa,CAAC,OAAO,CACtB,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,IAAA,iBAAM,EAAyB;gBACpD,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW;gBAC9C,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBACnC,OAAO;YACT,CAAC;YACD,MAAM,8BAAa,CAAC,cAAc,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,eAAe,GAAG,aAAa;YACnC,CAAC,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,IAAA,mBAAO,GAAE,EAAE,KAAK,CAAC,CAAC;YAC7D,CAAC,CAAC,aAAa,CAAC;QAElB,MAAM,cAAc,GAAG,8BAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAExE,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;QAE1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,mBAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,KAAK,CAAC;QACd,CAAC;QACD,2BAAe,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC;IACd,CAAC;IAED,mBAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC,CAAC;AAxDW,QAAA,OAAO,WAwDlB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PackageManager } from '@parcel/package-manager';
|
|
2
|
+
import type { RsdkCliCommand } from '@rsdk/cli.common';
|
|
3
|
+
export declare class PackageLoader {
|
|
4
|
+
static getEntry(cmdPackageName: string): RsdkCliCommand;
|
|
5
|
+
static installPackage(packageManager: PackageManager, cmdPackage: string): Promise<void>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PackageLoader = void 0;
|
|
4
|
+
const node_path_1 = require("node:path");
|
|
5
|
+
class PackageLoader {
|
|
6
|
+
static getEntry(cmdPackageName) {
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
8
|
+
return require(cmdPackageName).Cmd;
|
|
9
|
+
}
|
|
10
|
+
static async installPackage(packageManager, cmdPackage) {
|
|
11
|
+
const cliPackageJsonPath = require.resolve('../package.json', {
|
|
12
|
+
paths: [__dirname],
|
|
13
|
+
});
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
15
|
+
const cliPackageJson = require(cliPackageJsonPath);
|
|
16
|
+
// @ts-expect-error not declared method
|
|
17
|
+
await packageManager.install([
|
|
18
|
+
{
|
|
19
|
+
name: cmdPackage,
|
|
20
|
+
semVer: cliPackageJson.version,
|
|
21
|
+
},
|
|
22
|
+
], (0, node_path_1.resolve)(''), {
|
|
23
|
+
saveDev: true,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.PackageLoader = PackageLoader;
|
|
28
|
+
//# sourceMappingURL=package.loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.loader.js","sourceRoot":"","sources":["../src/package.loader.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AAEpC,MAAa,aAAa;IACxB,MAAM,CAAC,QAAQ,CAAC,cAAsB;QACpC,8DAA8D;QAC9D,OAAO,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CACzB,cAA8B,EAC9B,UAAkB;QAElB,MAAM,kBAAkB,GAAW,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE;YACpE,KAAK,EAAE,CAAC,SAAS,CAAC;SACnB,CAAC,CAAC;QAEH,8DAA8D;QAC9D,MAAM,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAEnD,uCAAuC;QACvC,MAAM,cAAc,CAAC,OAAO,CAC1B;YACE;gBACE,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,cAAc,CAAC,OAAO;aAC/B;SACF,EACD,IAAA,mBAAO,EAAC,EAAE,CAAC,EACX;YACE,OAAO,EAAE,IAAI;SACd,CACF,CAAC;IACJ,CAAC;CACF;AA/BD,sCA+BC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TODO: написать корректную работу с логгером, с учетом того что она может (уже используется вне DI) и может аффектить tracing
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.logLevelFromEnv = void 0;
|
|
7
|
+
const logging_1 = require("@rsdk/logging");
|
|
8
|
+
exports.logLevelFromEnv = logging_1.LogLevel[(process.env.LOG_LEVEL ?? 'info')];
|
|
9
|
+
logging_1.LoggerFactory.reconfigure({
|
|
10
|
+
level: exports.logLevelFromEnv ?? logging_1.LogLevel.info,
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=reconfigure-logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconfigure-logger.js","sourceRoot":"","sources":["../src/reconfigure-logger.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,2CAAwD;AAE3C,QAAA,eAAe,GAAG,kBAAQ,CACrC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM,CAAa,CACtB,CAAC;AAE1B,uBAAa,CAAC,WAAW,CAAC;IACxB,KAAK,EAAE,uBAAe,IAAI,kBAAQ,CAAC,IAAI;CACxC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsdk/cli",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.3.0-next.1",
|
|
4
4
|
"description": "entry package to cli functions",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
7
|
-
"rsdk": "
|
|
7
|
+
"rsdk": "bin.js"
|
|
8
8
|
},
|
|
9
9
|
"publishConfig": {
|
|
10
10
|
"access": "public"
|
|
@@ -15,15 +15,20 @@
|
|
|
15
15
|
],
|
|
16
16
|
"license": "Apache License 2.0",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@
|
|
19
|
-
"
|
|
18
|
+
"@parcel/fs": "^2.11.0",
|
|
19
|
+
"@parcel/package-manager": "^2.11.0",
|
|
20
|
+
"@sinclair/typebox": "^0.32.13",
|
|
21
|
+
"commander": "^12.0.0",
|
|
20
22
|
"dotenv": "^16.3.1",
|
|
23
|
+
"enquirer": "^2.4.1",
|
|
21
24
|
"kafkajs": "^2.2.4",
|
|
22
25
|
"listr2": "^6.6.1",
|
|
23
26
|
"yaml": "^2.3.1"
|
|
24
27
|
},
|
|
25
28
|
"peerDependencies": {
|
|
26
|
-
"@rsdk/
|
|
29
|
+
"@rsdk/cli.cmd.kafka": "^4.3.0-next.1",
|
|
30
|
+
"@rsdk/cli.common": "^4.3.0-next.1",
|
|
31
|
+
"@rsdk/logging": "^4.3.0-next.1"
|
|
27
32
|
},
|
|
28
|
-
"gitHead": "
|
|
33
|
+
"gitHead": "da58041323f3145aa436e02774d36d44606c1217"
|
|
29
34
|
}
|
package/src/exception.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export class FailedToInstall extends Error {
|
|
2
|
+
constructor(packageName: string, rsdkCommand: string, cause?: any) {
|
|
3
|
+
super('Failed to install ' + packageName, {
|
|
4
|
+
cause: {
|
|
5
|
+
packageName,
|
|
6
|
+
rsdkCommand,
|
|
7
|
+
cause,
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
this.name = this.constructor.name;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
static assertError(
|
|
14
|
+
error: Error,
|
|
15
|
+
packageName: string,
|
|
16
|
+
rsdkCommand: string,
|
|
17
|
+
): void {
|
|
18
|
+
const isFailedToInstall = (error.message as string).startsWith(
|
|
19
|
+
'Failed to install',
|
|
20
|
+
);
|
|
21
|
+
if (isFailedToInstall) {
|
|
22
|
+
throw new FailedToInstall(packageName, rsdkCommand, error);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { NodeFS } from '@parcel/fs';
|
|
2
|
+
import { NodePackageManager } from '@parcel/package-manager';
|
|
3
|
+
import { program } from 'commander';
|
|
4
|
+
import { prompt } from 'enquirer';
|
|
5
|
+
import { resolve } from 'node:path';
|
|
6
|
+
|
|
7
|
+
import './reconfigure-logger';
|
|
8
|
+
|
|
9
|
+
import { FailedToInstall } from './exception';
|
|
10
|
+
import { PackageLoader } from './package.loader';
|
|
11
|
+
|
|
12
|
+
// TODO: сделать более понятным, переиспользуемым, консистентным и контролируем
|
|
13
|
+
process.env.RSDK_CLI_MODE = 'true';
|
|
14
|
+
|
|
15
|
+
process.title = 'rsdk';
|
|
16
|
+
|
|
17
|
+
export const execute = async (): Promise<void> => {
|
|
18
|
+
const rsdkCommand = process.argv.slice(2)[0];
|
|
19
|
+
|
|
20
|
+
if (!rsdkCommand || rsdkCommand.startsWith('-')) {
|
|
21
|
+
program.parse();
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const cmd = rsdkCommand.split(':')[0];
|
|
25
|
+
const cmdPackage = '@rsdk/cli.cmd.' + cmd;
|
|
26
|
+
|
|
27
|
+
const packageManager = new NodePackageManager(new NodeFS(), resolve());
|
|
28
|
+
|
|
29
|
+
const resolveResult = await packageManager
|
|
30
|
+
.resolve(cmdPackage, resolve(), null)
|
|
31
|
+
.catch((error) => error);
|
|
32
|
+
|
|
33
|
+
try {
|
|
34
|
+
const isNotResolved = resolveResult instanceof Error;
|
|
35
|
+
if (isNotResolved) {
|
|
36
|
+
console.log(
|
|
37
|
+
`Unable to resolve ${cmdPackage} cause:`,
|
|
38
|
+
resolveResult.message,
|
|
39
|
+
);
|
|
40
|
+
const response = await prompt<{ isInstall: boolean }>({
|
|
41
|
+
type: 'confirm',
|
|
42
|
+
name: 'isInstall',
|
|
43
|
+
message: 'Install ' + cmdPackage + ' package?',
|
|
44
|
+
initial: true,
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
if (!response.isInstall) {
|
|
48
|
+
console.log('Install was aborted');
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
await PackageLoader.installPackage(packageManager, cmdPackage);
|
|
52
|
+
}
|
|
53
|
+
const resolvedPackage = isNotResolved
|
|
54
|
+
? await packageManager.resolve(cmdPackage, resolve(), void 0)
|
|
55
|
+
: resolveResult;
|
|
56
|
+
|
|
57
|
+
const rsdkCliCommand = PackageLoader.getEntry(resolvedPackage.resolved);
|
|
58
|
+
|
|
59
|
+
const cmds = rsdkCliCommand.getCommands();
|
|
60
|
+
|
|
61
|
+
for (const cmd of cmds) {
|
|
62
|
+
program.addCommand(cmd);
|
|
63
|
+
}
|
|
64
|
+
} catch (error: any) {
|
|
65
|
+
if (!(error instanceof Error)) {
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
FailedToInstall.assertError(error, cmdPackage, rsdkCommand);
|
|
69
|
+
throw error;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
program.parse();
|
|
73
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { PackageManager } from '@parcel/package-manager';
|
|
2
|
+
import type { RsdkCliCommand } from '@rsdk/cli.common';
|
|
3
|
+
import { resolve } from 'node:path';
|
|
4
|
+
|
|
5
|
+
export class PackageLoader {
|
|
6
|
+
static getEntry(cmdPackageName: string): RsdkCliCommand {
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
8
|
+
return require(cmdPackageName).Cmd;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
static async installPackage(
|
|
12
|
+
packageManager: PackageManager,
|
|
13
|
+
cmdPackage: string,
|
|
14
|
+
): Promise<void> {
|
|
15
|
+
const cliPackageJsonPath: string = require.resolve('../package.json', {
|
|
16
|
+
paths: [__dirname],
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
20
|
+
const cliPackageJson = require(cliPackageJsonPath);
|
|
21
|
+
|
|
22
|
+
// @ts-expect-error not declared method
|
|
23
|
+
await packageManager.install(
|
|
24
|
+
[
|
|
25
|
+
{
|
|
26
|
+
name: cmdPackage,
|
|
27
|
+
semVer: cliPackageJson.version,
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
resolve(''),
|
|
31
|
+
{
|
|
32
|
+
saveDev: true,
|
|
33
|
+
},
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TODO: написать корректную работу с логгером, с учетом того что она может (уже используется вне DI) и может аффектить tracing
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { LoggerFactory, LogLevel } from '@rsdk/logging';
|
|
6
|
+
|
|
7
|
+
export const logLevelFromEnv = LogLevel[
|
|
8
|
+
(process.env.LOG_LEVEL ?? 'info') as LogLevel
|
|
9
|
+
] as LogLevel | undefined;
|
|
10
|
+
|
|
11
|
+
LoggerFactory.reconfigure({
|
|
12
|
+
level: logLevelFromEnv ?? LogLevel.info,
|
|
13
|
+
});
|
package/dist/bin.d.ts
DELETED
package/dist/bin.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
const commander_1 = require("commander");
|
|
5
|
-
const extract_command_1 = require("./kafka/commands/extract/extract.command");
|
|
6
|
-
const schema_command_1 = require("./kafka/commands/schema/schema.command");
|
|
7
|
-
const sync_command_1 = require("./kafka/commands/sync/sync.command");
|
|
8
|
-
// TODO: сделать более понятным, переиспользуемым, консистентным и контролируем
|
|
9
|
-
process.env.RSDK_CLI_MODE = 'true';
|
|
10
|
-
const kafkaCommand = new commander_1.Command('kafka');
|
|
11
|
-
commander_1.program.addCommand(kafkaCommand
|
|
12
|
-
.addCommand(sync_command_1.KafkaSyncCommand)
|
|
13
|
-
.addCommand(extract_command_1.KafkaExtractCommand)
|
|
14
|
-
.addCommand(schema_command_1.SchemaCommand));
|
|
15
|
-
const execute = () => {
|
|
16
|
-
commander_1.program.parse();
|
|
17
|
-
};
|
|
18
|
-
if (require.main === module) {
|
|
19
|
-
execute();
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";;;AACA,yCAA6C;AAE7C,8EAA+E;AAC/E,2EAAuE;AACvE,qEAAsE;AAEtE,+EAA+E;AAC/E,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC;AAEnC,MAAM,YAAY,GAAG,IAAI,mBAAO,CAAC,OAAO,CAAC,CAAC;AAE1C,mBAAO,CAAC,UAAU,CAChB,YAAY;KACT,UAAU,CAAC,+BAAgB,CAAC;KAC5B,UAAU,CAAC,qCAAmB,CAAC;KAC/B,UAAU,CAAC,8BAAa,CAAC,CAC7B,CAAC;AAEF,MAAM,OAAO,GAAG,GAAS,EAAE;IACzB,mBAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC,CAAC;AAEF,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KafkaExtractCommand = void 0;
|
|
4
|
-
const commander_1 = require("commander");
|
|
5
|
-
const print_schema_1 = require("../schema/print-schema");
|
|
6
|
-
const kafka_config_extractor_1 = require("./kafka-config.extractor");
|
|
7
|
-
exports.KafkaExtractCommand = new commander_1.Command('extract')
|
|
8
|
-
.description('extract kafka.yml from rsdk.json')
|
|
9
|
-
.option('--with-schema', 'print and include $schema to yaml for autocomplete')
|
|
10
|
-
.action(async (_, cmd) => {
|
|
11
|
-
const options = cmd.opts();
|
|
12
|
-
if (options.withSchema) {
|
|
13
|
-
await (0, print_schema_1.printSchema)({ outFile: print_schema_1.printDefaultOutFile, pretty: true });
|
|
14
|
-
}
|
|
15
|
-
await kafka_config_extractor_1.KafkaConfigExtractor.extractCommand(print_schema_1.printDefaultOutFile);
|
|
16
|
-
});
|
|
17
|
-
//# sourceMappingURL=extract.command.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extract.command.js","sourceRoot":"","sources":["../../../../src/kafka/commands/extract/extract.command.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AAEpC,yDAA0E;AAE1E,qEAAgE;AAEnD,QAAA,mBAAmB,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC;KACtD,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,eAAe,EAAE,oDAAoD,CAAC;KAC7E,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAY,EAAE,EAAE;IAChC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,IAAA,0BAAW,EAAC,EAAE,OAAO,EAAE,kCAAmB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,6CAAoB,CAAC,cAAc,CAAC,kCAAmB,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { Static } from '@sinclair/typebox';
|
|
2
|
-
import type { CliKafkaConfigSchema } from '../../config.schema';
|
|
3
|
-
export declare class KafkaConfigExtractor {
|
|
4
|
-
static extractCommand(includeSchema?: string): Promise<void>;
|
|
5
|
-
static extract(): Promise<Static<typeof CliKafkaConfigSchema>>;
|
|
6
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.KafkaConfigExtractor = void 0;
|
|
7
|
-
const core_1 = require("@rsdk/core");
|
|
8
|
-
const promises_1 = require("node:fs/promises");
|
|
9
|
-
const node_path_1 = require("node:path");
|
|
10
|
-
const yaml_1 = __importDefault(require("yaml"));
|
|
11
|
-
class KafkaConfigExtractor {
|
|
12
|
-
static async extractCommand(includeSchema) {
|
|
13
|
-
const resultKafkaConfig = await this.extract();
|
|
14
|
-
await (0, promises_1.writeFile)((0, node_path_1.resolve)('kafka.yml'), yaml_1.default.stringify({
|
|
15
|
-
...(includeSchema && { $schema: includeSchema }),
|
|
16
|
-
...resultKafkaConfig,
|
|
17
|
-
}));
|
|
18
|
-
}
|
|
19
|
-
static async extract() {
|
|
20
|
-
const pathToRsdkJson = (0, node_path_1.resolve)('autodoc/rsdk.json');
|
|
21
|
-
const rsdkJson = JSON.parse(await (0, promises_1.readFile)(pathToRsdkJson, 'utf8'));
|
|
22
|
-
const kafkaMetadata = rsdkJson.rsdkMetadata
|
|
23
|
-
.filter(({ scope }) => scope === 'kafka-topic')
|
|
24
|
-
.map(({ value }) => value);
|
|
25
|
-
const topics = kafkaMetadata.map((meta) => {
|
|
26
|
-
const topicName = meta.topicName;
|
|
27
|
-
if (!topicName) {
|
|
28
|
-
throw new core_1.InputException('topicName must be provided', {
|
|
29
|
-
details: meta,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
return {
|
|
33
|
-
name: topicName,
|
|
34
|
-
};
|
|
35
|
-
});
|
|
36
|
-
return { topics };
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.KafkaConfigExtractor = KafkaConfigExtractor;
|
|
40
|
-
//# sourceMappingURL=kafka-config.extractor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kafka-config.extractor.js","sourceRoot":"","sources":["../../../../src/kafka/commands/extract/kafka-config.extractor.ts"],"names":[],"mappings":";;;;;;AAAA,qCAA4C;AAE5C,+CAAuD;AACvD,yCAAoC;AACpC,gDAAwB;AAMxB,MAAa,oBAAoB;IAC/B,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,aAAsB;QAChD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAE/C,MAAM,IAAA,oBAAS,EACb,IAAA,mBAAO,EAAC,WAAW,CAAC,EACpB,cAAI,CAAC,SAAS,CAAC;YACb,GAAG,CAAC,aAAa,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;YAChD,GAAG,iBAAiB;SACrB,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO;QAClB,MAAM,cAAc,GAAG,IAAA,mBAAO,EAAC,mBAAmB,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAS,IAAI,CAAC,KAAK,CAAC,MAAM,IAAA,mBAAQ,EAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QAE1E,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY;aACxC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,aAAa,CAAC;aAC9C,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAE7B,MAAM,MAAM,GACV,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACzB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,qBAAc,CAAC,4BAA4B,EAAE;oBACrD,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;YACL,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,SAAS;aAChB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEL,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AApCD,oDAoCC"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
export interface Root {
|
|
2
|
-
metadata: Metadata;
|
|
3
|
-
rsdkMetadata: RsdkMetadaum[];
|
|
4
|
-
}
|
|
5
|
-
export interface Metadata {
|
|
6
|
-
name: string;
|
|
7
|
-
version: string;
|
|
8
|
-
description: string;
|
|
9
|
-
protocols: string[];
|
|
10
|
-
config: Config;
|
|
11
|
-
}
|
|
12
|
-
export interface Config {
|
|
13
|
-
prefix: string;
|
|
14
|
-
sections: Section[];
|
|
15
|
-
sources: any[];
|
|
16
|
-
properties: any[];
|
|
17
|
-
}
|
|
18
|
-
export interface Section {
|
|
19
|
-
tags?: string[];
|
|
20
|
-
constructorName: string;
|
|
21
|
-
properties: Property[];
|
|
22
|
-
name?: string;
|
|
23
|
-
}
|
|
24
|
-
export interface Property {
|
|
25
|
-
expectedInEnv: boolean;
|
|
26
|
-
key: string;
|
|
27
|
-
description: string;
|
|
28
|
-
parser: Parser;
|
|
29
|
-
defaultValue: any;
|
|
30
|
-
}
|
|
31
|
-
export interface Parser {
|
|
32
|
-
type: string;
|
|
33
|
-
description: string;
|
|
34
|
-
}
|
|
35
|
-
export interface RsdkMetadaum {
|
|
36
|
-
scope: string;
|
|
37
|
-
value: Value;
|
|
38
|
-
}
|
|
39
|
-
export interface Value {
|
|
40
|
-
global?: boolean;
|
|
41
|
-
imports?: Import[];
|
|
42
|
-
providers?: Provider2[];
|
|
43
|
-
exports?: string[];
|
|
44
|
-
token?: string;
|
|
45
|
-
partitionKeyField: any;
|
|
46
|
-
topicName?: string;
|
|
47
|
-
group?: string;
|
|
48
|
-
type?: number;
|
|
49
|
-
eventType?: EventType;
|
|
50
|
-
options?: Options3;
|
|
51
|
-
constructorName?: string;
|
|
52
|
-
}
|
|
53
|
-
export interface Import {
|
|
54
|
-
providers: Provider[];
|
|
55
|
-
exports: Export[];
|
|
56
|
-
}
|
|
57
|
-
export interface Provider {
|
|
58
|
-
inject: Inject | undefined[];
|
|
59
|
-
}
|
|
60
|
-
export interface Inject {
|
|
61
|
-
optional: boolean;
|
|
62
|
-
}
|
|
63
|
-
export interface Export {
|
|
64
|
-
inject: Inject2 | undefined[];
|
|
65
|
-
}
|
|
66
|
-
export interface Inject2 {
|
|
67
|
-
optional: boolean;
|
|
68
|
-
}
|
|
69
|
-
export interface Provider2 {
|
|
70
|
-
provide: string;
|
|
71
|
-
useValue: UseValue;
|
|
72
|
-
}
|
|
73
|
-
export interface UseValue {
|
|
74
|
-
context: string;
|
|
75
|
-
}
|
|
76
|
-
export interface EventType {
|
|
77
|
-
$group: string;
|
|
78
|
-
$partitionKeyField: any;
|
|
79
|
-
$type: string;
|
|
80
|
-
}
|
|
81
|
-
export interface Options3 {
|
|
82
|
-
key: string;
|
|
83
|
-
scope: string;
|
|
84
|
-
description: string;
|
|
85
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/kafka/commands/extract/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.printSchema = exports.printDefaultOutFile = void 0;
|
|
4
|
-
const promises_1 = require("node:fs/promises");
|
|
5
|
-
const config_schema_1 = require("../../config.schema");
|
|
6
|
-
exports.printDefaultOutFile = './kafka.schema.json';
|
|
7
|
-
async function printSchema(options) {
|
|
8
|
-
await (0, promises_1.writeFile)(options?.outFile ?? exports.printDefaultOutFile, JSON.stringify(config_schema_1.CliKafkaConfigSchema, null, options?.pretty ? 2 : 0));
|
|
9
|
-
}
|
|
10
|
-
exports.printSchema = printSchema;
|
|
11
|
-
//# sourceMappingURL=print-schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"print-schema.js","sourceRoot":"","sources":["../../../../src/kafka/commands/schema/print-schema.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAE7C,uDAA2D;AAE9C,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAElD,KAAK,UAAU,WAAW,CAAC,OAGjC;IACC,MAAM,IAAA,oBAAS,EACb,OAAO,EAAE,OAAO,IAAI,2BAAmB,EACvC,IAAI,CAAC,SAAS,CAAC,oCAAoB,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC;AARD,kCAQC"}
|