@pristine-ts/cli 2.0.7 → 2.0.17
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/dist/lib/cjs/bootstrap/build-staleness-prompt.js +12 -13
- package/dist/lib/cjs/bootstrap/build-staleness-prompt.js.map +1 -1
- package/dist/lib/cjs/bootstrap/init-prompt.js +16 -47
- package/dist/lib/cjs/bootstrap/init-prompt.js.map +1 -1
- package/dist/lib/cjs/cli.configuration-keys.js +24 -0
- package/dist/lib/cjs/cli.configuration-keys.js.map +1 -0
- package/dist/lib/cjs/cli.js +23 -10
- package/dist/lib/cjs/cli.js.map +1 -1
- package/dist/lib/cjs/cli.module.js +29 -1
- package/dist/lib/cjs/cli.module.js.map +1 -1
- package/dist/lib/cjs/commands/commands.js +6 -0
- package/dist/lib/cjs/commands/commands.js.map +1 -1
- package/dist/lib/cjs/commands/logs-alias.command.js +49 -0
- package/dist/lib/cjs/commands/logs-alias.command.js.map +1 -0
- package/dist/lib/cjs/commands/logs.command-options.js +72 -0
- package/dist/lib/cjs/commands/logs.command-options.js.map +1 -0
- package/dist/lib/cjs/commands/logs.command.js +102 -0
- package/dist/lib/cjs/commands/logs.command.js.map +1 -0
- package/dist/lib/cjs/commands/requests-alias.command.js +49 -0
- package/dist/lib/cjs/commands/requests-alias.command.js.map +1 -0
- package/dist/lib/cjs/commands/requests.command-options.js +26 -0
- package/dist/lib/cjs/commands/requests.command-options.js.map +1 -0
- package/dist/lib/cjs/commands/requests.command.js +88 -0
- package/dist/lib/cjs/commands/requests.command.js.map +1 -0
- package/dist/lib/cjs/commands/trace-alias.command.js +49 -0
- package/dist/lib/cjs/commands/trace-alias.command.js.map +1 -0
- package/dist/lib/cjs/commands/trace.command-options.js +59 -0
- package/dist/lib/cjs/commands/trace.command-options.js.map +1 -0
- package/dist/lib/cjs/commands/trace.command.js +84 -0
- package/dist/lib/cjs/commands/trace.command.js.map +1 -0
- package/dist/lib/cjs/config/config-loader.js +34 -13
- package/dist/lib/cjs/config/config-loader.js.map +1 -1
- package/dist/lib/cjs/decorators/command-parameter.decorator.js +40 -0
- package/dist/lib/cjs/decorators/command-parameter.decorator.js.map +1 -0
- package/dist/lib/cjs/decorators/decorators.js +18 -0
- package/dist/lib/cjs/decorators/decorators.js.map +1 -0
- package/dist/lib/cjs/enums/cli-decorator-metadata-keyname.enum.js +14 -0
- package/dist/lib/cjs/enums/cli-decorator-metadata-keyname.enum.js.map +1 -0
- package/dist/lib/cjs/enums/enums.js +19 -0
- package/dist/lib/cjs/enums/enums.js.map +1 -0
- package/dist/lib/cjs/enums/terminal-key-name.enum.js +21 -0
- package/dist/lib/cjs/enums/terminal-key-name.enum.js.map +1 -0
- package/dist/lib/cjs/errors/cli-error-code.enum.js +11 -1
- package/dist/lib/cjs/errors/cli-error-code.enum.js.map +1 -1
- package/dist/lib/cjs/errors/errors.js +1 -0
- package/dist/lib/cjs/errors/errors.js.map +1 -1
- package/dist/lib/cjs/errors/prompt-cancelled.error.js +25 -0
- package/dist/lib/cjs/errors/prompt-cancelled.error.js.map +1 -0
- package/dist/lib/cjs/event-handlers/cli.event-handler.js +21 -65
- package/dist/lib/cjs/event-handlers/cli.event-handler.js.map +1 -1
- package/dist/lib/cjs/event-handlers/event-handlers.js +1 -0
- package/dist/lib/cjs/event-handlers/event-handlers.js.map +1 -1
- package/dist/lib/cjs/event-handlers/repl-start.event-handler.js +280 -0
- package/dist/lib/cjs/event-handlers/repl-start.event-handler.js.map +1 -0
- package/dist/lib/cjs/event-payloads/event-payloads.js +1 -0
- package/dist/lib/cjs/event-payloads/event-payloads.js.map +1 -1
- package/dist/lib/cjs/event-payloads/start-repl.event-payload.js +19 -0
- package/dist/lib/cjs/event-payloads/start-repl.event-payload.js.map +1 -0
- package/dist/lib/cjs/interfaces/interfaces.js +1 -0
- package/dist/lib/cjs/interfaces/interfaces.js.map +1 -1
- package/dist/lib/cjs/interfaces/terminal-key.interface.js +3 -0
- package/dist/lib/cjs/interfaces/terminal-key.interface.js.map +1 -0
- package/dist/lib/cjs/managers/cli-prompt.manager.js +181 -15
- package/dist/lib/cjs/managers/cli-prompt.manager.js.map +1 -1
- package/dist/lib/cjs/managers/managers.js +1 -0
- package/dist/lib/cjs/managers/managers.js.map +1 -1
- package/dist/lib/cjs/managers/terminal-key-reader.manager.js +99 -0
- package/dist/lib/cjs/managers/terminal-key-reader.manager.js.map +1 -0
- package/dist/lib/cjs/mappers/command-event.mapper.js +48 -8
- package/dist/lib/cjs/mappers/command-event.mapper.js.map +1 -1
- package/dist/lib/cjs/mappers/mappers.js +1 -0
- package/dist/lib/cjs/mappers/mappers.js.map +1 -1
- package/dist/lib/cjs/mappers/repl-start-event.mapper.js +80 -0
- package/dist/lib/cjs/mappers/repl-start-event.mapper.js.map +1 -0
- package/dist/lib/cjs/options/command-parameter.options.js +3 -0
- package/dist/lib/cjs/options/command-parameter.options.js.map +1 -0
- package/dist/lib/cjs/options/options.js +1 -0
- package/dist/lib/cjs/options/options.js.map +1 -1
- package/dist/lib/cjs/services/command-argument-resolver.js +62 -0
- package/dist/lib/cjs/services/command-argument-resolver.js.map +1 -0
- package/dist/lib/cjs/services/command-options-resolver.js +114 -0
- package/dist/lib/cjs/services/command-options-resolver.js.map +1 -0
- package/dist/lib/cjs/services/command-parameter-prompter.js +311 -0
- package/dist/lib/cjs/services/command-parameter-prompter.js.map +1 -0
- package/dist/lib/cjs/services/services.js +20 -0
- package/dist/lib/cjs/services/services.js.map +1 -0
- package/dist/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/lib/cjs/types/start-repl-event-response.type.js +13 -0
- package/dist/lib/cjs/types/start-repl-event-response.type.js.map +1 -0
- package/dist/lib/cjs/types/types.js +1 -0
- package/dist/lib/cjs/types/types.js.map +1 -1
- package/dist/lib/cjs/utils/boolean-answer-parser.js +25 -0
- package/dist/lib/cjs/utils/boolean-answer-parser.js.map +1 -0
- package/dist/lib/cjs/utils/pristine-argv.js +87 -0
- package/dist/lib/cjs/utils/pristine-argv.js.map +1 -0
- package/dist/lib/cjs/utils/terminal-key-decoder.js +71 -0
- package/dist/lib/cjs/utils/terminal-key-decoder.js.map +1 -0
- package/dist/lib/esm/bootstrap/build-staleness-prompt.js +12 -13
- package/dist/lib/esm/bootstrap/build-staleness-prompt.js.map +1 -1
- package/dist/lib/esm/bootstrap/init-prompt.js +16 -47
- package/dist/lib/esm/bootstrap/init-prompt.js.map +1 -1
- package/dist/lib/esm/cli.configuration-keys.js +21 -0
- package/dist/lib/esm/cli.configuration-keys.js.map +1 -0
- package/dist/lib/esm/cli.js +23 -10
- package/dist/lib/esm/cli.js.map +1 -1
- package/dist/lib/esm/cli.module.js +29 -1
- package/dist/lib/esm/cli.module.js.map +1 -1
- package/dist/lib/esm/commands/commands.js +6 -0
- package/dist/lib/esm/commands/commands.js.map +1 -1
- package/dist/lib/esm/commands/logs-alias.command.js +46 -0
- package/dist/lib/esm/commands/logs-alias.command.js.map +1 -0
- package/dist/lib/esm/commands/logs.command-options.js +68 -0
- package/dist/lib/esm/commands/logs.command-options.js.map +1 -0
- package/dist/lib/esm/commands/logs.command.js +99 -0
- package/dist/lib/esm/commands/logs.command.js.map +1 -0
- package/dist/lib/esm/commands/requests-alias.command.js +46 -0
- package/dist/lib/esm/commands/requests-alias.command.js.map +1 -0
- package/dist/lib/esm/commands/requests.command-options.js +22 -0
- package/dist/lib/esm/commands/requests.command-options.js.map +1 -0
- package/dist/lib/esm/commands/requests.command.js +85 -0
- package/dist/lib/esm/commands/requests.command.js.map +1 -0
- package/dist/lib/esm/commands/trace-alias.command.js +46 -0
- package/dist/lib/esm/commands/trace-alias.command.js.map +1 -0
- package/dist/lib/esm/commands/trace.command-options.js +55 -0
- package/dist/lib/esm/commands/trace.command-options.js.map +1 -0
- package/dist/lib/esm/commands/trace.command.js +81 -0
- package/dist/lib/esm/commands/trace.command.js.map +1 -0
- package/dist/lib/esm/config/config-loader.js +34 -13
- package/dist/lib/esm/config/config-loader.js.map +1 -1
- package/dist/lib/esm/decorators/command-parameter.decorator.js +36 -0
- package/dist/lib/esm/decorators/command-parameter.decorator.js.map +1 -0
- package/dist/lib/esm/decorators/decorators.js +2 -0
- package/dist/lib/esm/decorators/decorators.js.map +1 -0
- package/dist/lib/esm/enums/cli-decorator-metadata-keyname.enum.js +11 -0
- package/dist/lib/esm/enums/cli-decorator-metadata-keyname.enum.js.map +1 -0
- package/dist/lib/esm/enums/enums.js +3 -0
- package/dist/lib/esm/enums/enums.js.map +1 -0
- package/dist/lib/esm/enums/terminal-key-name.enum.js +18 -0
- package/dist/lib/esm/enums/terminal-key-name.enum.js.map +1 -0
- package/dist/lib/esm/errors/cli-error-code.enum.js +11 -1
- package/dist/lib/esm/errors/cli-error-code.enum.js.map +1 -1
- package/dist/lib/esm/errors/errors.js +1 -0
- package/dist/lib/esm/errors/errors.js.map +1 -1
- package/dist/lib/esm/errors/prompt-cancelled.error.js +21 -0
- package/dist/lib/esm/errors/prompt-cancelled.error.js.map +1 -0
- package/dist/lib/esm/event-handlers/cli.event-handler.js +22 -66
- package/dist/lib/esm/event-handlers/cli.event-handler.js.map +1 -1
- package/dist/lib/esm/event-handlers/event-handlers.js +1 -0
- package/dist/lib/esm/event-handlers/event-handlers.js.map +1 -1
- package/dist/lib/esm/event-handlers/repl-start.event-handler.js +244 -0
- package/dist/lib/esm/event-handlers/repl-start.event-handler.js.map +1 -0
- package/dist/lib/esm/event-payloads/event-payloads.js +1 -0
- package/dist/lib/esm/event-payloads/event-payloads.js.map +1 -1
- package/dist/lib/esm/event-payloads/start-repl.event-payload.js +15 -0
- package/dist/lib/esm/event-payloads/start-repl.event-payload.js.map +1 -0
- package/dist/lib/esm/interfaces/interfaces.js +1 -0
- package/dist/lib/esm/interfaces/interfaces.js.map +1 -1
- package/dist/lib/esm/interfaces/terminal-key.interface.js +2 -0
- package/dist/lib/esm/interfaces/terminal-key.interface.js.map +1 -0
- package/dist/lib/esm/managers/cli-prompt.manager.js +182 -16
- package/dist/lib/esm/managers/cli-prompt.manager.js.map +1 -1
- package/dist/lib/esm/managers/managers.js +1 -0
- package/dist/lib/esm/managers/managers.js.map +1 -1
- package/dist/lib/esm/managers/terminal-key-reader.manager.js +96 -0
- package/dist/lib/esm/managers/terminal-key-reader.manager.js.map +1 -0
- package/dist/lib/esm/mappers/command-event.mapper.js +49 -9
- package/dist/lib/esm/mappers/command-event.mapper.js.map +1 -1
- package/dist/lib/esm/mappers/mappers.js +1 -0
- package/dist/lib/esm/mappers/mappers.js.map +1 -1
- package/dist/lib/esm/mappers/repl-start-event.mapper.js +77 -0
- package/dist/lib/esm/mappers/repl-start-event.mapper.js.map +1 -0
- package/dist/lib/esm/options/command-parameter.options.js +2 -0
- package/dist/lib/esm/options/command-parameter.options.js.map +1 -0
- package/dist/lib/esm/options/options.js +1 -0
- package/dist/lib/esm/options/options.js.map +1 -1
- package/dist/lib/esm/services/command-argument-resolver.js +59 -0
- package/dist/lib/esm/services/command-argument-resolver.js.map +1 -0
- package/dist/lib/esm/services/command-options-resolver.js +111 -0
- package/dist/lib/esm/services/command-options-resolver.js.map +1 -0
- package/dist/lib/esm/services/command-parameter-prompter.js +308 -0
- package/dist/lib/esm/services/command-parameter-prompter.js.map +1 -0
- package/dist/lib/esm/services/services.js +4 -0
- package/dist/lib/esm/services/services.js.map +1 -0
- package/dist/lib/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/lib/esm/types/start-repl-event-response.type.js +9 -0
- package/dist/lib/esm/types/start-repl-event-response.type.js.map +1 -0
- package/dist/lib/esm/types/types.js +1 -0
- package/dist/lib/esm/types/types.js.map +1 -1
- package/dist/lib/esm/utils/boolean-answer-parser.js +21 -0
- package/dist/lib/esm/utils/boolean-answer-parser.js.map +1 -0
- package/dist/lib/esm/utils/pristine-argv.js +50 -0
- package/dist/lib/esm/utils/pristine-argv.js.map +1 -0
- package/dist/lib/esm/utils/terminal-key-decoder.js +67 -0
- package/dist/lib/esm/utils/terminal-key-decoder.js.map +1 -0
- package/dist/types/bootstrap/build-staleness-prompt.d.ts +3 -3
- package/dist/types/bootstrap/init-prompt.d.ts +5 -5
- package/dist/types/cli.configuration-keys.d.ts +32 -0
- package/dist/types/cli.d.ts +8 -4
- package/dist/types/cli.module.d.ts +4 -0
- package/dist/types/commands/commands.d.ts +6 -0
- package/dist/types/commands/logs-alias.command.d.ts +14 -0
- package/dist/types/commands/logs.command-options.d.ts +38 -0
- package/dist/types/commands/logs.command.d.ts +31 -0
- package/dist/types/commands/requests-alias.command.d.ts +14 -0
- package/dist/types/commands/requests.command-options.d.ts +8 -0
- package/dist/types/commands/requests.command.d.ts +25 -0
- package/dist/types/commands/trace-alias.command.d.ts +14 -0
- package/dist/types/commands/trace.command-options.d.ts +31 -0
- package/dist/types/commands/trace.command.d.ts +21 -0
- package/dist/types/config/config-loader.d.ts +15 -3
- package/dist/types/decorators/command-parameter.decorator.d.ts +30 -0
- package/dist/types/decorators/decorators.d.ts +1 -0
- package/dist/types/enums/cli-decorator-metadata-keyname.enum.d.ts +9 -0
- package/dist/types/enums/enums.d.ts +2 -0
- package/dist/types/enums/terminal-key-name.enum.d.ts +16 -0
- package/dist/types/errors/cli-error-code.enum.d.ts +12 -2
- package/dist/types/errors/errors.d.ts +1 -0
- package/dist/types/errors/prompt-cancelled.error.d.ts +13 -0
- package/dist/types/event-handlers/cli.event-handler.d.ts +16 -13
- package/dist/types/event-handlers/event-handlers.d.ts +1 -0
- package/dist/types/event-handlers/repl-start.event-handler.d.ts +70 -0
- package/dist/types/event-payloads/event-payloads.d.ts +1 -0
- package/dist/types/event-payloads/start-repl.event-payload.d.ts +13 -0
- package/dist/types/interfaces/interfaces.d.ts +1 -0
- package/dist/types/interfaces/terminal-key.interface.d.ts +11 -0
- package/dist/types/managers/cli-prompt.manager.d.ts +63 -6
- package/dist/types/managers/managers.d.ts +1 -0
- package/dist/types/managers/terminal-key-reader.manager.d.ts +31 -0
- package/dist/types/mappers/command-event.mapper.d.ts +10 -1
- package/dist/types/mappers/mappers.d.ts +1 -0
- package/dist/types/mappers/repl-start-event.mapper.d.ts +28 -0
- package/dist/types/options/command-parameter.options.d.ts +29 -0
- package/dist/types/options/options.d.ts +1 -0
- package/dist/types/services/command-argument-resolver.d.ts +24 -0
- package/dist/types/services/command-options-resolver.d.ts +35 -0
- package/dist/types/services/command-parameter-prompter.d.ts +113 -0
- package/dist/types/services/services.d.ts +3 -0
- package/dist/types/types/start-repl-event-response.type.d.ts +10 -0
- package/dist/types/types/types.d.ts +1 -0
- package/dist/types/utils/boolean-answer-parser.d.ts +11 -0
- package/dist/types/utils/pristine-argv.d.ts +33 -0
- package/dist/types/utils/terminal-key-decoder.d.ts +28 -0
- package/package.json +16 -12
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.LogsCommand = void 0;
|
|
22
|
+
const common_1 = require("@pristine-ts/common");
|
|
23
|
+
const tsyringe_1 = require("tsyringe");
|
|
24
|
+
const logging_1 = require("@pristine-ts/logging");
|
|
25
|
+
const observability_1 = require("@pristine-ts/observability");
|
|
26
|
+
const cli_output_manager_1 = require("../managers/cli-output.manager");
|
|
27
|
+
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
28
|
+
const logs_command_options_1 = require("./logs.command-options");
|
|
29
|
+
/**
|
|
30
|
+
* Renders captured logs: `pristine logs` for everything (newest first across all
|
|
31
|
+
* processes), `pristine logs <id>` to filter by any of event/trace/request id, or
|
|
32
|
+
* the explicit `--event-id` / `--trace-id` / `--request-id` flags. With `--follow`/`-f`
|
|
33
|
+
* it tails the live writers (Ctrl-C to stop). A pure report command: output goes
|
|
34
|
+
* through `CliOutput`.
|
|
35
|
+
*/
|
|
36
|
+
let LogsCommand = class LogsCommand {
|
|
37
|
+
constructor(cliOutput, logStore) {
|
|
38
|
+
this.cliOutput = cliOutput;
|
|
39
|
+
this.logStore = logStore;
|
|
40
|
+
this.optionsType = logs_command_options_1.LogsCommandOptions;
|
|
41
|
+
this.name = "p:logs";
|
|
42
|
+
this.description = "Show captured logs, optionally filtered by event/trace/request id, optionally following live.";
|
|
43
|
+
}
|
|
44
|
+
run(args) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
const filterId = args.filterId;
|
|
47
|
+
const entries = this.logStore.read(filterId);
|
|
48
|
+
if (entries.length === 0 && args.isFollowing === false) {
|
|
49
|
+
this.cliOutput.writeLine(filterId === undefined
|
|
50
|
+
? "No captured observability data found. Run your app first."
|
|
51
|
+
: `No logs found matching '${filterId}'.`);
|
|
52
|
+
return common_1.ExitCode.Success;
|
|
53
|
+
}
|
|
54
|
+
for (const entry of entries) {
|
|
55
|
+
this.render(entry);
|
|
56
|
+
}
|
|
57
|
+
if (args.isFollowing === false) {
|
|
58
|
+
return common_1.ExitCode.Success;
|
|
59
|
+
}
|
|
60
|
+
return this.followLogs(filterId);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Tails live writes, rendering each newly-appended line until SIGINT.
|
|
65
|
+
*/
|
|
66
|
+
followLogs(filterId) {
|
|
67
|
+
return new Promise((resolve) => {
|
|
68
|
+
const handle = this.logStore.tail(filterId, (line) => {
|
|
69
|
+
try {
|
|
70
|
+
this.render(JSON.parse(line));
|
|
71
|
+
}
|
|
72
|
+
catch (_a) {
|
|
73
|
+
// Skip a malformed line rather than aborting the follow.
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
const onSigint = () => {
|
|
77
|
+
handle.stop();
|
|
78
|
+
process.off("SIGINT", onSigint);
|
|
79
|
+
resolve(common_1.ExitCode.Success);
|
|
80
|
+
};
|
|
81
|
+
process.on("SIGINT", onSigint);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Renders one stored log entry through `PrettyLogFormatter`. The store keeps `date`
|
|
86
|
+
* as an ISO string and `severity` as a numeric `SeverityEnum`; rehydrate the date so
|
|
87
|
+
* the formatter (date-fns) can format it.
|
|
88
|
+
*/
|
|
89
|
+
render(entry) {
|
|
90
|
+
entry.date = new Date(entry.date);
|
|
91
|
+
this.cliOutput.writeLine(logging_1.PrettyLogFormatter.format(entry));
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
exports.LogsCommand = LogsCommand;
|
|
95
|
+
exports.LogsCommand = LogsCommand = __decorate([
|
|
96
|
+
(0, common_1.tag)(common_1.ServiceDefinitionTagEnum.Command),
|
|
97
|
+
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
|
|
98
|
+
(0, tsyringe_1.injectable)(),
|
|
99
|
+
__metadata("design:paramtypes", [cli_output_manager_1.CliOutput,
|
|
100
|
+
observability_1.LogStore])
|
|
101
|
+
], LogsCommand);
|
|
102
|
+
//# sourceMappingURL=logs.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.command.js","sourceRoot":"","sources":["../../../../src/commands/logs.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0F;AAC1F,uCAAoC;AACpC,kDAAwD;AACxD,8DAAoD;AAEpD,uEAAyD;AACzD,8DAAuD;AACvD,iEAA0D;AAE1D;;;;;;GAMG;AAII,IAAM,WAAW,GAAjB,MAAM,WAAW;IAKtB,YACmB,SAAoB,EACpB,QAAkB;QADlB,cAAS,GAAT,SAAS,CAAW;QACpB,aAAQ,GAAR,QAAQ,CAAU;QANrC,gBAAW,GAAG,yCAAkB,CAAC;QACjC,SAAI,GAAG,QAAQ,CAAC;QAChB,gBAAW,GAAG,+FAA+F,CAAC;IAM9G,CAAC;IAEK,GAAG,CAAC,IAAwB;;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;gBACvD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS;oBAC7C,CAAC,CAAC,2DAA2D;oBAC7D,CAAC,CAAC,2BAA2B,QAAQ,IAAI,CAAC,CAAC;gBAC7C,OAAO,iBAAQ,CAAC,OAAO,CAAC;YAC1B,CAAC;YAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YAED,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;gBAC/B,OAAO,iBAAQ,CAAC,OAAO,CAAC;YAC1B,CAAC;YAED,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;KAAA;IAED;;OAEG;IACK,UAAU,CAAC,QAAiB;QAClC,OAAO,IAAI,OAAO,CAAoB,CAAC,OAAO,EAAE,EAAE;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;gBACnD,IAAI,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChC,CAAC;gBAAC,WAAM,CAAC;oBACP,yDAAyD;gBAC3D,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,GAAS,EAAE;gBAC1B,MAAM,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAChC,OAAO,CAAC,iBAAQ,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC,CAAC;YACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,KAA0B;QACvC,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,4BAAkB,CAAC,MAAM,CAAC,KAAY,CAAC,CAAC,CAAC;IACpE,CAAC;CACF,CAAA;AAhEY,kCAAW;sBAAX,WAAW;IAHvB,IAAA,YAAG,EAAC,iCAAwB,CAAC,OAAO,CAAC;IACrC,IAAA,qBAAY,EAAC,qCAAgB,CAAC;IAC9B,IAAA,qBAAU,GAAE;qCAOmB,8BAAS;QACV,wBAAQ;GAP1B,WAAW,CAgEvB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.RequestsAliasCommand = void 0;
|
|
22
|
+
const common_1 = require("@pristine-ts/common");
|
|
23
|
+
const tsyringe_1 = require("tsyringe");
|
|
24
|
+
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
25
|
+
const requests_command_1 = require("./requests.command");
|
|
26
|
+
/**
|
|
27
|
+
* Top-level alias for `p:requests`.
|
|
28
|
+
*/
|
|
29
|
+
let RequestsAliasCommand = class RequestsAliasCommand {
|
|
30
|
+
constructor(delegate) {
|
|
31
|
+
this.delegate = delegate;
|
|
32
|
+
this.optionsType = null;
|
|
33
|
+
this.name = "requests";
|
|
34
|
+
this.description = "Alias for p:requests.";
|
|
35
|
+
}
|
|
36
|
+
run(args) {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
return this.delegate.run(args);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports.RequestsAliasCommand = RequestsAliasCommand;
|
|
43
|
+
exports.RequestsAliasCommand = RequestsAliasCommand = __decorate([
|
|
44
|
+
(0, common_1.tag)(common_1.ServiceDefinitionTagEnum.Command),
|
|
45
|
+
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
|
|
46
|
+
(0, tsyringe_1.injectable)(),
|
|
47
|
+
__metadata("design:paramtypes", [requests_command_1.RequestsCommand])
|
|
48
|
+
], RequestsAliasCommand);
|
|
49
|
+
//# sourceMappingURL=requests-alias.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requests-alias.command.js","sourceRoot":"","sources":["../../../../src/commands/requests-alias.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0F;AAC1F,uCAAoC;AAEpC,8DAAuD;AACvD,yDAAmD;AAEnD;;GAEG;AAII,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAK/B,YAA6B,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;QAJtD,gBAAW,GAAG,IAAI,CAAC;QACnB,SAAI,GAAG,UAAU,CAAC;QAClB,gBAAW,GAAG,uBAAuB,CAAC;IAGtC,CAAC;IAEK,GAAG,CAAC,IAAS;;YACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;KAAA;CACF,CAAA;AAXY,oDAAoB;+BAApB,oBAAoB;IAHhC,IAAA,YAAG,EAAC,iCAAwB,CAAC,OAAO,CAAC;IACrC,IAAA,qBAAY,EAAC,qCAAgB,CAAC;IAC9B,IAAA,qBAAU,GAAE;qCAM4B,kCAAe;GAL3C,oBAAoB,CAWhC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.RequestsCommandOptions = void 0;
|
|
13
|
+
require("reflect-metadata");
|
|
14
|
+
const class_validator_1 = require("@pristine-ts/class-validator");
|
|
15
|
+
/**
|
|
16
|
+
* Flags for `pristine requests [--limit <n>]`.
|
|
17
|
+
*/
|
|
18
|
+
class RequestsCommandOptions {
|
|
19
|
+
}
|
|
20
|
+
exports.RequestsCommandOptions = RequestsCommandOptions;
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, class_validator_1.IsOptional)(),
|
|
23
|
+
(0, class_validator_1.IsNumber)(),
|
|
24
|
+
__metadata("design:type", Number)
|
|
25
|
+
], RequestsCommandOptions.prototype, "limit", void 0);
|
|
26
|
+
//# sourceMappingURL=requests.command-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requests.command-options.js","sourceRoot":"","sources":["../../../../src/commands/requests.command-options.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4BAA0B;AAC1B,kEAAkE;AAElE;;GAEG;AACH,MAAa,sBAAsB;CAKlC;AALD,wDAKC;AADC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;qDACI"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
var RequestsCommand_1;
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.RequestsCommand = void 0;
|
|
23
|
+
const common_1 = require("@pristine-ts/common");
|
|
24
|
+
const tsyringe_1 = require("tsyringe");
|
|
25
|
+
const observability_1 = require("@pristine-ts/observability");
|
|
26
|
+
const cli_output_manager_1 = require("../managers/cli-output.manager");
|
|
27
|
+
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
28
|
+
const requests_command_options_1 = require("./requests.command-options");
|
|
29
|
+
/**
|
|
30
|
+
* Lists recent requests captured in the observability store — the entry point for
|
|
31
|
+
* "what just happened, and what's the event id I want to inspect?".
|
|
32
|
+
*
|
|
33
|
+
* Pulls summaries from every captured process newest-first. A pure report command: all
|
|
34
|
+
* output goes through `CliOutput` so it pipes cleanly.
|
|
35
|
+
*
|
|
36
|
+
* Flags: `--limit <n>` (default 20).
|
|
37
|
+
*/
|
|
38
|
+
let RequestsCommand = RequestsCommand_1 = class RequestsCommand {
|
|
39
|
+
constructor(cliOutput, traceStore) {
|
|
40
|
+
this.cliOutput = cliOutput;
|
|
41
|
+
this.traceStore = traceStore;
|
|
42
|
+
this.optionsType = requests_command_options_1.RequestsCommandOptions;
|
|
43
|
+
this.name = "p:requests";
|
|
44
|
+
this.description = "List recent requests captured in the observability store.";
|
|
45
|
+
}
|
|
46
|
+
run(args) {
|
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
var _a;
|
|
49
|
+
const limit = (_a = args.limit) !== null && _a !== void 0 ? _a : RequestsCommand_1.DEFAULT_LIMIT;
|
|
50
|
+
const summaries = this.traceStore.recentRequests(limit);
|
|
51
|
+
if (summaries.length === 0) {
|
|
52
|
+
this.cliOutput.writeLine("No captured requests yet. Run your app first.");
|
|
53
|
+
return common_1.ExitCode.Success;
|
|
54
|
+
}
|
|
55
|
+
const headers = ["TIME", "METHOD", "PATH", "STATUS", "DURATION", "EVENT"];
|
|
56
|
+
const rows = summaries.map(summary => {
|
|
57
|
+
var _a, _b;
|
|
58
|
+
return [
|
|
59
|
+
new Date(summary.startedAt).toTimeString().slice(0, 8),
|
|
60
|
+
(_a = summary.httpMethod) !== null && _a !== void 0 ? _a : "-",
|
|
61
|
+
(_b = summary.httpPath) !== null && _b !== void 0 ? _b : summary.rootKeyname,
|
|
62
|
+
summary.httpStatus !== undefined ? String(summary.httpStatus) : "-",
|
|
63
|
+
`${summary.durationMs}ms`,
|
|
64
|
+
summary.eventId,
|
|
65
|
+
];
|
|
66
|
+
});
|
|
67
|
+
for (const line of this.renderTable(headers, rows)) {
|
|
68
|
+
this.cliOutput.writeLine(line);
|
|
69
|
+
}
|
|
70
|
+
return common_1.ExitCode.Success;
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
renderTable(headers, rows) {
|
|
74
|
+
const widths = headers.map((header, column) => Math.max(header.length, ...rows.map(row => row[column].length)));
|
|
75
|
+
const formatRow = (cells) => cells.map((cell, column) => cell.padEnd(widths[column])).join(" ").trimEnd();
|
|
76
|
+
return [formatRow(headers), ...rows.map(formatRow)];
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
exports.RequestsCommand = RequestsCommand;
|
|
80
|
+
RequestsCommand.DEFAULT_LIMIT = 20;
|
|
81
|
+
exports.RequestsCommand = RequestsCommand = RequestsCommand_1 = __decorate([
|
|
82
|
+
(0, common_1.tag)(common_1.ServiceDefinitionTagEnum.Command),
|
|
83
|
+
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
|
|
84
|
+
(0, tsyringe_1.injectable)(),
|
|
85
|
+
__metadata("design:paramtypes", [cli_output_manager_1.CliOutput,
|
|
86
|
+
observability_1.TraceStore])
|
|
87
|
+
], RequestsCommand);
|
|
88
|
+
//# sourceMappingURL=requests.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requests.command.js","sourceRoot":"","sources":["../../../../src/commands/requests.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.TraceAliasCommand = void 0;
|
|
22
|
+
const common_1 = require("@pristine-ts/common");
|
|
23
|
+
const tsyringe_1 = require("tsyringe");
|
|
24
|
+
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
25
|
+
const trace_command_1 = require("./trace.command");
|
|
26
|
+
/**
|
|
27
|
+
* Top-level alias for `p:trace`.
|
|
28
|
+
*/
|
|
29
|
+
let TraceAliasCommand = class TraceAliasCommand {
|
|
30
|
+
constructor(delegate) {
|
|
31
|
+
this.delegate = delegate;
|
|
32
|
+
this.optionsType = null;
|
|
33
|
+
this.name = "trace";
|
|
34
|
+
this.description = "Alias for p:trace.";
|
|
35
|
+
}
|
|
36
|
+
run(args) {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
return this.delegate.run(args);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
exports.TraceAliasCommand = TraceAliasCommand;
|
|
43
|
+
exports.TraceAliasCommand = TraceAliasCommand = __decorate([
|
|
44
|
+
(0, common_1.tag)(common_1.ServiceDefinitionTagEnum.Command),
|
|
45
|
+
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
|
|
46
|
+
(0, tsyringe_1.injectable)(),
|
|
47
|
+
__metadata("design:paramtypes", [trace_command_1.TraceCommand])
|
|
48
|
+
], TraceAliasCommand);
|
|
49
|
+
//# sourceMappingURL=trace-alias.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-alias.command.js","sourceRoot":"","sources":["../../../../src/commands/trace-alias.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0F;AAC1F,uCAAoC;AAEpC,8DAAuD;AACvD,mDAA6C;AAE7C;;GAEG;AAII,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAK5B,YAA6B,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;QAJnD,gBAAW,GAAG,IAAI,CAAC;QACnB,SAAI,GAAG,OAAO,CAAC;QACf,gBAAW,GAAG,oBAAoB,CAAC;IAGnC,CAAC;IAEK,GAAG,CAAC,IAAS;;YACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;KAAA;CACF,CAAA;AAXY,8CAAiB;4BAAjB,iBAAiB;IAH7B,IAAA,YAAG,EAAC,iCAAwB,CAAC,OAAO,CAAC;IACrC,IAAA,qBAAY,EAAC,qCAAgB,CAAC;IAC9B,IAAA,qBAAU,GAAE;qCAM4B,4BAAY;GALxC,iBAAiB,CAW7B"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.TraceCommandOptions = void 0;
|
|
13
|
+
require("reflect-metadata");
|
|
14
|
+
const class_validator_1 = require("@pristine-ts/class-validator");
|
|
15
|
+
/**
|
|
16
|
+
* Flags + positional for `pristine trace [<id>] [--event-id <x>] [--trace-id <x>] [--request-id <x>] [--format tree|flat|json]`.
|
|
17
|
+
*
|
|
18
|
+
* Look up a trace by any of three correlation ids — `--event-id` is canonical,
|
|
19
|
+
* `--trace-id` covers the distributed-tracing case (a propagated `traceparent`),
|
|
20
|
+
* `--request-id` covers HTTP requests with an `x-pristine-request-id` header. A
|
|
21
|
+
* positional id is tried against all three.
|
|
22
|
+
*/
|
|
23
|
+
class TraceCommandOptions {
|
|
24
|
+
/**
|
|
25
|
+
* Resolves the lookup id: an explicit flag wins over the positional, and explicit
|
|
26
|
+
* flags are preferred in `eventId > traceId > requestId` order.
|
|
27
|
+
*/
|
|
28
|
+
get lookupId() {
|
|
29
|
+
var _a, _b, _c, _d;
|
|
30
|
+
return (_c = (_b = (_a = this["event-id"]) !== null && _a !== void 0 ? _a : this["trace-id"]) !== null && _b !== void 0 ? _b : this["request-id"]) !== null && _c !== void 0 ? _c : (_d = this._) === null || _d === void 0 ? void 0 : _d[0];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.TraceCommandOptions = TraceCommandOptions;
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, class_validator_1.IsOptional)(),
|
|
36
|
+
(0, class_validator_1.IsString)(),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], TraceCommandOptions.prototype, "event-id", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, class_validator_1.IsOptional)(),
|
|
41
|
+
(0, class_validator_1.IsString)(),
|
|
42
|
+
__metadata("design:type", String)
|
|
43
|
+
], TraceCommandOptions.prototype, "trace-id", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
(0, class_validator_1.IsOptional)(),
|
|
46
|
+
(0, class_validator_1.IsString)(),
|
|
47
|
+
__metadata("design:type", String)
|
|
48
|
+
], TraceCommandOptions.prototype, "request-id", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, class_validator_1.IsOptional)(),
|
|
51
|
+
(0, class_validator_1.IsIn)(["tree", "flat", "json"]),
|
|
52
|
+
__metadata("design:type", String)
|
|
53
|
+
], TraceCommandOptions.prototype, "format", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
(0, class_validator_1.IsOptional)(),
|
|
56
|
+
(0, class_validator_1.IsArray)(),
|
|
57
|
+
__metadata("design:type", Array)
|
|
58
|
+
], TraceCommandOptions.prototype, "_", void 0);
|
|
59
|
+
//# sourceMappingURL=trace.command-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.command-options.js","sourceRoot":"","sources":["../../../../src/commands/trace.command-options.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4BAA0B;AAC1B,kEAAiF;AAIjF;;;;;;;GAOG;AACH,MAAa,mBAAmB;IA8B9B;;;OAGG;IACH,IAAI,QAAQ;;QACV,OAAO,MAAA,MAAA,MAAA,IAAI,CAAC,UAAU,CAAC,mCAAI,IAAI,CAAC,UAAU,CAAC,mCAAI,IAAI,CAAC,YAAY,CAAC,mCAAI,MAAA,IAAI,CAAC,CAAC,0CAAG,CAAC,CAAC,CAAC;IACnF,CAAC;CACF;AArCD,kDAqCC;AAjCC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;qDACS;AAKpB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;qDACS;AAKpB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;uDACW;AAKtB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,sBAAI,EAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;;mDACV;AASrB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;;8CACG"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
13
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
14
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
15
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
16
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
17
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.TraceCommand = void 0;
|
|
22
|
+
const common_1 = require("@pristine-ts/common");
|
|
23
|
+
const tsyringe_1 = require("tsyringe");
|
|
24
|
+
const observability_1 = require("@pristine-ts/observability");
|
|
25
|
+
const telemetry_1 = require("@pristine-ts/telemetry");
|
|
26
|
+
const cli_output_manager_1 = require("../managers/cli-output.manager");
|
|
27
|
+
const cli_module_keyname_1 = require("../cli.module.keyname");
|
|
28
|
+
const trace_command_options_1 = require("./trace.command-options");
|
|
29
|
+
/**
|
|
30
|
+
* Renders the span tree of one captured trace. Look it up by any of event/trace/request
|
|
31
|
+
* id — `pristine trace <id>` tries all three, or use the explicit `--event-id`,
|
|
32
|
+
* `--trace-id`, `--request-id` flags.
|
|
33
|
+
*
|
|
34
|
+
* `--format tree|flat|json` controls the rendering (defaults to `tree`).
|
|
35
|
+
*/
|
|
36
|
+
let TraceCommand = class TraceCommand {
|
|
37
|
+
constructor(cliOutput, traceStore) {
|
|
38
|
+
this.cliOutput = cliOutput;
|
|
39
|
+
this.traceStore = traceStore;
|
|
40
|
+
this.optionsType = trace_command_options_1.TraceCommandOptions;
|
|
41
|
+
this.name = "p:trace";
|
|
42
|
+
this.description = "Render the span tree of a captured trace by event/trace/request id.";
|
|
43
|
+
}
|
|
44
|
+
run(args) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
var _a;
|
|
47
|
+
const lookupId = args.lookupId;
|
|
48
|
+
if (lookupId === undefined) {
|
|
49
|
+
this.cliOutput.writeLine("Usage: pristine trace <id> [--format tree|flat|json]");
|
|
50
|
+
this.cliOutput.writeLine(" pristine trace --event-id <id> | --trace-id <id> | --request-id <id>");
|
|
51
|
+
return common_1.ExitCode.Error;
|
|
52
|
+
}
|
|
53
|
+
const format = (_a = args.format) !== null && _a !== void 0 ? _a : "tree";
|
|
54
|
+
if (format === "json") {
|
|
55
|
+
const serialized = this.traceStore.findSerialized(lookupId);
|
|
56
|
+
if (serialized === undefined) {
|
|
57
|
+
this.cliOutput.writeLine(`No trace found matching '${lookupId}'.`);
|
|
58
|
+
return common_1.ExitCode.Error;
|
|
59
|
+
}
|
|
60
|
+
this.cliOutput.writeLine(JSON.stringify(serialized.trace, null, 2));
|
|
61
|
+
return common_1.ExitCode.Success;
|
|
62
|
+
}
|
|
63
|
+
const found = this.traceStore.find(lookupId);
|
|
64
|
+
if (found === undefined) {
|
|
65
|
+
this.cliOutput.writeLine(`No trace found matching '${lookupId}'.`);
|
|
66
|
+
return common_1.ExitCode.Error;
|
|
67
|
+
}
|
|
68
|
+
const rendered = format === "flat"
|
|
69
|
+
? telemetry_1.traceRenderer.renderFlat(found.trace)
|
|
70
|
+
: telemetry_1.traceRenderer.renderTree(found.trace);
|
|
71
|
+
this.cliOutput.writeLine(rendered);
|
|
72
|
+
return common_1.ExitCode.Success;
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
exports.TraceCommand = TraceCommand;
|
|
77
|
+
exports.TraceCommand = TraceCommand = __decorate([
|
|
78
|
+
(0, common_1.tag)(common_1.ServiceDefinitionTagEnum.Command),
|
|
79
|
+
(0, common_1.moduleScoped)(cli_module_keyname_1.CliModuleKeyname),
|
|
80
|
+
(0, tsyringe_1.injectable)(),
|
|
81
|
+
__metadata("design:paramtypes", [cli_output_manager_1.CliOutput,
|
|
82
|
+
observability_1.TraceStore])
|
|
83
|
+
], TraceCommand);
|
|
84
|
+
//# sourceMappingURL=trace.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.command.js","sourceRoot":"","sources":["../../../../src/commands/trace.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0F;AAC1F,uCAAoC;AACpC,8DAAsD;AACtD,sDAAqD;AAErD,uEAAyD;AACzD,8DAAuD;AACvD,mEAA4D;AAE5D;;;;;;GAMG;AAII,IAAM,YAAY,GAAlB,MAAM,YAAY;IAKvB,YACmB,SAAoB,EACpB,UAAsB;QADtB,cAAS,GAAT,SAAS,CAAW;QACpB,eAAU,GAAV,UAAU,CAAY;QANzC,gBAAW,GAAG,2CAAmB,CAAC;QAClC,SAAI,GAAG,SAAS,CAAC;QACjB,gBAAW,GAAG,qEAAqE,CAAC;IAMpF,CAAC;IAEK,GAAG,CAAC,IAAyB;;;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,sDAAsD,CAAC,CAAC;gBACjF,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,6EAA6E,CAAC,CAAC;gBACxG,OAAO,iBAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;YAED,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,MAAM,CAAC;YAErC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAC5D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC7B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,4BAA4B,QAAQ,IAAI,CAAC,CAAC;oBACnE,OAAO,iBAAQ,CAAC,KAAK,CAAC;gBACxB,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpE,OAAO,iBAAQ,CAAC,OAAO,CAAC;YAC1B,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,4BAA4B,QAAQ,IAAI,CAAC,CAAC;gBACnE,OAAO,iBAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,MAAM;gBAChC,CAAC,CAAC,yBAAa,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;gBACvC,CAAC,CAAC,yBAAa,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEnC,OAAO,iBAAQ,CAAC,OAAO,CAAC;QAC1B,CAAC;KAAA;CACF,CAAA;AA5CY,oCAAY;uBAAZ,YAAY;IAHxB,IAAA,YAAG,EAAC,iCAAwB,CAAC,OAAO,CAAC;IACrC,IAAA,qBAAY,EAAC,qCAAgB,CAAC;IAC9B,IAAA,qBAAU,GAAE;qCAOmB,8BAAS;QACR,0BAAU;GAP9B,YAAY,CA4CxB"}
|
|
@@ -31,7 +31,8 @@ const dynamic_importer_1 = require("../bootstrap/dynamic-importer");
|
|
|
31
31
|
/**
|
|
32
32
|
* Loads `pristine.config.ts` (preferred) or `pristine.config.js` (escape hatch for
|
|
33
33
|
* pure-JS projects). Walks up from `process.cwd()` looking for the file, then loads it
|
|
34
|
-
* through
|
|
34
|
+
* through Node's native dynamic `import()`: TypeScript type-stripping (Node >= 22.18)
|
|
35
|
+
* handles `.ts`, while `.js` loads directly.
|
|
35
36
|
*
|
|
36
37
|
* Returns a `ResolvedPristineConfig` carrying the file path (when found) and per-field
|
|
37
38
|
* provenance, which `pristine p:config:print` uses to render an annotated dump.
|
|
@@ -100,26 +101,23 @@ let ConfigLoader = class ConfigLoader {
|
|
|
100
101
|
}
|
|
101
102
|
}
|
|
102
103
|
/**
|
|
103
|
-
* Loads a config file from `absolutePath
|
|
104
|
-
*
|
|
104
|
+
* Loads a config file from `absolutePath` via Node's native dynamic `import()`. A `.ts`
|
|
105
|
+
* config is handled by Node's built-in TypeScript type-stripping (Node >= 22.18); a `.js`
|
|
106
|
+
* config loads directly. Extracts the default export, falling back to a named
|
|
105
107
|
* `pristineConfig` export for users who prefer not to use `export default`.
|
|
106
108
|
* @private
|
|
107
109
|
*/
|
|
108
110
|
importConfigFile(absolutePath) {
|
|
109
111
|
return __awaiter(this, void 0, void 0, function* () {
|
|
110
|
-
var _a, _b
|
|
111
|
-
const ext = path_1.default.extname(absolutePath).toLowerCase();
|
|
112
|
+
var _a, _b;
|
|
112
113
|
let loaded;
|
|
113
|
-
|
|
114
|
-
const jitiModule = yield this.dynamicImporter.import("jiti");
|
|
115
|
-
const createJiti = (_b = (_a = jitiModule.default) !== null && _a !== void 0 ? _a : jitiModule.createJiti) !== null && _b !== void 0 ? _b : jitiModule;
|
|
116
|
-
const jiti = createJiti(absolutePath, { interopDefault: true });
|
|
117
|
-
loaded = jiti(absolutePath);
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
114
|
+
try {
|
|
120
115
|
loaded = yield this.dynamicImporter.import(`file://${absolutePath}`);
|
|
121
116
|
}
|
|
122
|
-
|
|
117
|
+
catch (error) {
|
|
118
|
+
throw this.describeImportError(error, absolutePath);
|
|
119
|
+
}
|
|
120
|
+
const config = (_b = (_a = loaded === null || loaded === void 0 ? void 0 : loaded.default) !== null && _a !== void 0 ? _a : loaded === null || loaded === void 0 ? void 0 : loaded.pristineConfig) !== null && _b !== void 0 ? _b : loaded;
|
|
123
121
|
if (!config || typeof config !== "object") {
|
|
124
122
|
throw new Error(`[pristine] Config file at '${absolutePath}' did not export a valid configuration. ` +
|
|
125
123
|
`Use \`export default defineConfig({ ... })\` or \`export const pristineConfig = { ... }\`.`);
|
|
@@ -127,6 +125,29 @@ let ConfigLoader = class ConfigLoader {
|
|
|
127
125
|
return config;
|
|
128
126
|
});
|
|
129
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Translates Node's low-level module-loading failures for a `.ts` config into an
|
|
130
|
+
* actionable error. Native type-stripping has two distinct failure modes worth telling
|
|
131
|
+
* apart: the running Node is too old (or has stripping disabled) to import `.ts` at all
|
|
132
|
+
* (`ERR_UNKNOWN_FILE_EXTENSION`), versus a config written with non-erasable TypeScript that
|
|
133
|
+
* stripping refuses (`ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX`). Any other error is passed through
|
|
134
|
+
* unchanged so genuine config bugs surface as-is.
|
|
135
|
+
* @private
|
|
136
|
+
*/
|
|
137
|
+
describeImportError(error, absolutePath) {
|
|
138
|
+
var _a;
|
|
139
|
+
if ((error === null || error === void 0 ? void 0 : error.code) === "ERR_UNKNOWN_FILE_EXTENSION") {
|
|
140
|
+
return new Error(`[pristine] Loading '${absolutePath}' requires Node >= 22.18 (native TypeScript ` +
|
|
141
|
+
`type-stripping); you are running ${process.version}. Upgrade Node, or rename the ` +
|
|
142
|
+
`file to 'pristine.config.js'.`);
|
|
143
|
+
}
|
|
144
|
+
if ((error === null || error === void 0 ? void 0 : error.code) === "ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX") {
|
|
145
|
+
return new Error(`[pristine] '${absolutePath}' uses TypeScript that Node cannot type-strip (enum, ` +
|
|
146
|
+
`namespace, parameter properties, ...). Use only erasable TypeScript in your config, ` +
|
|
147
|
+
`or rename the file to 'pristine.config.js'.\nOriginal error: ${(_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : error}`);
|
|
148
|
+
}
|
|
149
|
+
return error instanceof Error ? error : new Error(String(error));
|
|
150
|
+
}
|
|
130
151
|
};
|
|
131
152
|
exports.ConfigLoader = ConfigLoader;
|
|
132
153
|
exports.ConfigLoader = ConfigLoader = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../../src/config/config-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAoC;AACpC,4CAAoB;AACpB,gDAAwB;AACxB,qEAA8D;AAE9D,yEAAkE;AAClE,oEAA8D;AAE9D
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../../src/config/config-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.commandParameter = void 0;
|
|
4
|
+
const metadata_1 = require("@pristine-ts/metadata");
|
|
5
|
+
const cli_decorator_metadata_keyname_enum_1 = require("../enums/cli-decorator-metadata-keyname.enum");
|
|
6
|
+
/**
|
|
7
|
+
* Describes a command-line parameter on a command's options class. Stored as property
|
|
8
|
+
* metadata and read by the CLI while resolving a command's arguments — before the arguments
|
|
9
|
+
* are mapped onto the options instance and validated.
|
|
10
|
+
*
|
|
11
|
+
* Two behaviors flow from the options:
|
|
12
|
+
*
|
|
13
|
+
* - `flag` rebinds the property to a differently-named flag (the property name is the
|
|
14
|
+
* default), so the property and the flag no longer have to be spelled identically.
|
|
15
|
+
* - `question` makes the CLI ask for the value interactively when the flag is absent
|
|
16
|
+
* (subject to configuration and an interactive terminal). Omit it to never prompt.
|
|
17
|
+
*
|
|
18
|
+
* ```ts
|
|
19
|
+
* import {IsString, IsOptional} from "@pristine-ts/class-validator";
|
|
20
|
+
* import {commandParameter} from "@pristine-ts/cli";
|
|
21
|
+
*
|
|
22
|
+
* export class MigrateCommandOptions {
|
|
23
|
+
* @commandParameter({flag: "db-url", question: "What is the database URL?"})
|
|
24
|
+
* @IsString()
|
|
25
|
+
* databaseUrl?: string; // bound to --db-url; asked for when missing
|
|
26
|
+
*
|
|
27
|
+
* @commandParameter({flag: "dir"}) // bound to --dir; never asked for
|
|
28
|
+
* @IsOptional()
|
|
29
|
+
* @IsString()
|
|
30
|
+
* migrationsDirectory?: string;
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
const commandParameter = (options = {}) => {
|
|
35
|
+
return (target, propertyKey) => {
|
|
36
|
+
metadata_1.PropertyMetadata.defineMetadata(target, propertyKey, cli_decorator_metadata_keyname_enum_1.CliDecoratorMetadataKeynameEnum.CommandParameter, options);
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
exports.commandParameter = commandParameter;
|
|
40
|
+
//# sourceMappingURL=command-parameter.decorator.js.map
|