@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../../src/commands/commands.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../../src/commands/commands.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
13
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
14
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
16
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
import { moduleScoped, ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
|
|
20
|
+
import { injectable } from "tsyringe";
|
|
21
|
+
import { CliModuleKeyname } from "../cli.module.keyname";
|
|
22
|
+
import { LogsCommand } from "./logs.command";
|
|
23
|
+
/**
|
|
24
|
+
* Top-level alias for `p:logs`.
|
|
25
|
+
*/
|
|
26
|
+
let LogsAliasCommand = class LogsAliasCommand {
|
|
27
|
+
constructor(delegate) {
|
|
28
|
+
this.delegate = delegate;
|
|
29
|
+
this.optionsType = null;
|
|
30
|
+
this.name = "logs";
|
|
31
|
+
this.description = "Alias for p:logs.";
|
|
32
|
+
}
|
|
33
|
+
run(args) {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
return this.delegate.run(args);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
LogsAliasCommand = __decorate([
|
|
40
|
+
tag(ServiceDefinitionTagEnum.Command),
|
|
41
|
+
moduleScoped(CliModuleKeyname),
|
|
42
|
+
injectable(),
|
|
43
|
+
__metadata("design:paramtypes", [LogsCommand])
|
|
44
|
+
], LogsAliasCommand);
|
|
45
|
+
export { LogsAliasCommand };
|
|
46
|
+
//# sourceMappingURL=logs-alias.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs-alias.command.js","sourceRoot":"","sources":["../../../../src/commands/logs-alias.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAW,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AAII,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAK3B,YAA6B,QAAqB;QAArB,aAAQ,GAAR,QAAQ,CAAa;QAJlD,gBAAW,GAAG,IAAI,CAAC;QACnB,SAAI,GAAG,MAAM,CAAC;QACd,gBAAW,GAAG,mBAAmB,CAAC;IAGlC,CAAC;IAEK,GAAG,CAAC,IAAS;;YACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;KAAA;CACF,CAAA;AAXY,gBAAgB;IAH5B,GAAG,CAAC,wBAAwB,CAAC,OAAO,CAAC;IACrC,YAAY,CAAC,gBAAgB,CAAC;IAC9B,UAAU,EAAE;qCAM4B,WAAW;GALvC,gBAAgB,CAW5B"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import "reflect-metadata";
|
|
11
|
+
import { IsArray, IsBoolean, IsOptional, IsString } from "@pristine-ts/class-validator";
|
|
12
|
+
/**
|
|
13
|
+
* Flags + positional for `pristine logs [<id>] [--event-id <x>] [--trace-id <x>] [--request-id <x>] [--follow|-f]`.
|
|
14
|
+
*
|
|
15
|
+
* Filter the log stream by any of three correlation ids — `--event-id` is canonical,
|
|
16
|
+
* `--trace-id` covers the distributed-tracing case (a propagated `traceparent`),
|
|
17
|
+
* `--request-id` covers HTTP requests with an `x-pristine-request-id` header. A
|
|
18
|
+
* positional id (e.g. `pristine logs abc-123`) is tried against all three.
|
|
19
|
+
*
|
|
20
|
+
* `--follow` and `-f` are accepted as independent boolean keys (that's how
|
|
21
|
+
* `CommandEventMapper` records short-vs-long flags); the `isFollowing` getter combines
|
|
22
|
+
* them so the command body reads a single field.
|
|
23
|
+
*/
|
|
24
|
+
export class LogsCommandOptions {
|
|
25
|
+
/**
|
|
26
|
+
* Resolves the filter id: an explicit flag wins over the positional, and explicit
|
|
27
|
+
* flags are preferred in `eventId > traceId > requestId` order on the (rare) chance
|
|
28
|
+
* the user passed several.
|
|
29
|
+
*/
|
|
30
|
+
get filterId() {
|
|
31
|
+
var _a, _b, _c, _d;
|
|
32
|
+
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];
|
|
33
|
+
}
|
|
34
|
+
get isFollowing() {
|
|
35
|
+
return this.follow === true || this.f === true;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
__decorate([
|
|
39
|
+
IsOptional(),
|
|
40
|
+
IsString(),
|
|
41
|
+
__metadata("design:type", String)
|
|
42
|
+
], LogsCommandOptions.prototype, "event-id", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
IsOptional(),
|
|
45
|
+
IsString(),
|
|
46
|
+
__metadata("design:type", String)
|
|
47
|
+
], LogsCommandOptions.prototype, "trace-id", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
IsOptional(),
|
|
50
|
+
IsString(),
|
|
51
|
+
__metadata("design:type", String)
|
|
52
|
+
], LogsCommandOptions.prototype, "request-id", void 0);
|
|
53
|
+
__decorate([
|
|
54
|
+
IsOptional(),
|
|
55
|
+
IsBoolean(),
|
|
56
|
+
__metadata("design:type", Boolean)
|
|
57
|
+
], LogsCommandOptions.prototype, "follow", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
IsOptional(),
|
|
60
|
+
IsBoolean(),
|
|
61
|
+
__metadata("design:type", Boolean)
|
|
62
|
+
], LogsCommandOptions.prototype, "f", void 0);
|
|
63
|
+
__decorate([
|
|
64
|
+
IsOptional(),
|
|
65
|
+
IsArray(),
|
|
66
|
+
__metadata("design:type", Array)
|
|
67
|
+
], LogsCommandOptions.prototype, "_", void 0);
|
|
68
|
+
//# sourceMappingURL=logs.command-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.command-options.js","sourceRoot":"","sources":["../../../../src/commands/logs.command-options.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAC,MAAM,8BAA8B,CAAC;AAEtF;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,kBAAkB;IAmC7B;;;;OAIG;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;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC;IACjD,CAAC;CACF;AA3CC;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;oDACS;AAKpB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;oDACS;AAKpB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;sDACW;AAKtB;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;kDACK;AAKjB;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;6CACA;AASZ;IAFC,UAAU,EAAE;IACZ,OAAO,EAAE;;6CACG"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
13
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
14
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
16
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
import { moduleScoped, ServiceDefinitionTagEnum, tag, ExitCode } from "@pristine-ts/common";
|
|
20
|
+
import { injectable } from "tsyringe";
|
|
21
|
+
import { PrettyLogFormatter } from "@pristine-ts/logging";
|
|
22
|
+
import { LogStore } from "@pristine-ts/observability";
|
|
23
|
+
import { CliOutput } from "../managers/cli-output.manager";
|
|
24
|
+
import { CliModuleKeyname } from "../cli.module.keyname";
|
|
25
|
+
import { LogsCommandOptions } from "./logs.command-options";
|
|
26
|
+
/**
|
|
27
|
+
* Renders captured logs: `pristine logs` for everything (newest first across all
|
|
28
|
+
* processes), `pristine logs <id>` to filter by any of event/trace/request id, or
|
|
29
|
+
* the explicit `--event-id` / `--trace-id` / `--request-id` flags. With `--follow`/`-f`
|
|
30
|
+
* it tails the live writers (Ctrl-C to stop). A pure report command: output goes
|
|
31
|
+
* through `CliOutput`.
|
|
32
|
+
*/
|
|
33
|
+
let LogsCommand = class LogsCommand {
|
|
34
|
+
constructor(cliOutput, logStore) {
|
|
35
|
+
this.cliOutput = cliOutput;
|
|
36
|
+
this.logStore = logStore;
|
|
37
|
+
this.optionsType = LogsCommandOptions;
|
|
38
|
+
this.name = "p:logs";
|
|
39
|
+
this.description = "Show captured logs, optionally filtered by event/trace/request id, optionally following live.";
|
|
40
|
+
}
|
|
41
|
+
run(args) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
const filterId = args.filterId;
|
|
44
|
+
const entries = this.logStore.read(filterId);
|
|
45
|
+
if (entries.length === 0 && args.isFollowing === false) {
|
|
46
|
+
this.cliOutput.writeLine(filterId === undefined
|
|
47
|
+
? "No captured observability data found. Run your app first."
|
|
48
|
+
: `No logs found matching '${filterId}'.`);
|
|
49
|
+
return ExitCode.Success;
|
|
50
|
+
}
|
|
51
|
+
for (const entry of entries) {
|
|
52
|
+
this.render(entry);
|
|
53
|
+
}
|
|
54
|
+
if (args.isFollowing === false) {
|
|
55
|
+
return ExitCode.Success;
|
|
56
|
+
}
|
|
57
|
+
return this.followLogs(filterId);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Tails live writes, rendering each newly-appended line until SIGINT.
|
|
62
|
+
*/
|
|
63
|
+
followLogs(filterId) {
|
|
64
|
+
return new Promise((resolve) => {
|
|
65
|
+
const handle = this.logStore.tail(filterId, (line) => {
|
|
66
|
+
try {
|
|
67
|
+
this.render(JSON.parse(line));
|
|
68
|
+
}
|
|
69
|
+
catch (_a) {
|
|
70
|
+
// Skip a malformed line rather than aborting the follow.
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
const onSigint = () => {
|
|
74
|
+
handle.stop();
|
|
75
|
+
process.off("SIGINT", onSigint);
|
|
76
|
+
resolve(ExitCode.Success);
|
|
77
|
+
};
|
|
78
|
+
process.on("SIGINT", onSigint);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Renders one stored log entry through `PrettyLogFormatter`. The store keeps `date`
|
|
83
|
+
* as an ISO string and `severity` as a numeric `SeverityEnum`; rehydrate the date so
|
|
84
|
+
* the formatter (date-fns) can format it.
|
|
85
|
+
*/
|
|
86
|
+
render(entry) {
|
|
87
|
+
entry.date = new Date(entry.date);
|
|
88
|
+
this.cliOutput.writeLine(PrettyLogFormatter.format(entry));
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
LogsCommand = __decorate([
|
|
92
|
+
tag(ServiceDefinitionTagEnum.Command),
|
|
93
|
+
moduleScoped(CliModuleKeyname),
|
|
94
|
+
injectable(),
|
|
95
|
+
__metadata("design:paramtypes", [CliOutput,
|
|
96
|
+
LogStore])
|
|
97
|
+
], LogsCommand);
|
|
98
|
+
export { LogsCommand };
|
|
99
|
+
//# sourceMappingURL=logs.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.command.js","sourceRoot":"","sources":["../../../../src/commands/logs.command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
13
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
14
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
16
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
import { moduleScoped, ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
|
|
20
|
+
import { injectable } from "tsyringe";
|
|
21
|
+
import { CliModuleKeyname } from "../cli.module.keyname";
|
|
22
|
+
import { RequestsCommand } from "./requests.command";
|
|
23
|
+
/**
|
|
24
|
+
* Top-level alias for `p:requests`.
|
|
25
|
+
*/
|
|
26
|
+
let RequestsAliasCommand = class RequestsAliasCommand {
|
|
27
|
+
constructor(delegate) {
|
|
28
|
+
this.delegate = delegate;
|
|
29
|
+
this.optionsType = null;
|
|
30
|
+
this.name = "requests";
|
|
31
|
+
this.description = "Alias for p:requests.";
|
|
32
|
+
}
|
|
33
|
+
run(args) {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
return this.delegate.run(args);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
RequestsAliasCommand = __decorate([
|
|
40
|
+
tag(ServiceDefinitionTagEnum.Command),
|
|
41
|
+
moduleScoped(CliModuleKeyname),
|
|
42
|
+
injectable(),
|
|
43
|
+
__metadata("design:paramtypes", [RequestsCommand])
|
|
44
|
+
], RequestsAliasCommand);
|
|
45
|
+
export { RequestsAliasCommand };
|
|
46
|
+
//# 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,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAW,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;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,oBAAoB;IAHhC,GAAG,CAAC,wBAAwB,CAAC,OAAO,CAAC;IACrC,YAAY,CAAC,gBAAgB,CAAC;IAC9B,UAAU,EAAE;qCAM4B,eAAe;GAL3C,oBAAoB,CAWhC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import "reflect-metadata";
|
|
11
|
+
import { IsNumber, IsOptional } from "@pristine-ts/class-validator";
|
|
12
|
+
/**
|
|
13
|
+
* Flags for `pristine requests [--limit <n>]`.
|
|
14
|
+
*/
|
|
15
|
+
export class RequestsCommandOptions {
|
|
16
|
+
}
|
|
17
|
+
__decorate([
|
|
18
|
+
IsOptional(),
|
|
19
|
+
IsNumber(),
|
|
20
|
+
__metadata("design:type", Number)
|
|
21
|
+
], RequestsCommandOptions.prototype, "limit", void 0);
|
|
22
|
+
//# 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,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,QAAQ,EAAE,UAAU,EAAC,MAAM,8BAA8B,CAAC;AAElE;;GAEG;AACH,MAAM,OAAO,sBAAsB;CAKlC;AADC;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;qDACI"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
13
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
14
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
16
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
var RequestsCommand_1;
|
|
20
|
+
import { moduleScoped, ServiceDefinitionTagEnum, tag, ExitCode } from "@pristine-ts/common";
|
|
21
|
+
import { injectable } from "tsyringe";
|
|
22
|
+
import { TraceStore } from "@pristine-ts/observability";
|
|
23
|
+
import { CliOutput } from "../managers/cli-output.manager";
|
|
24
|
+
import { CliModuleKeyname } from "../cli.module.keyname";
|
|
25
|
+
import { RequestsCommandOptions } from "./requests.command-options";
|
|
26
|
+
/**
|
|
27
|
+
* Lists recent requests captured in the observability store — the entry point for
|
|
28
|
+
* "what just happened, and what's the event id I want to inspect?".
|
|
29
|
+
*
|
|
30
|
+
* Pulls summaries from every captured process newest-first. A pure report command: all
|
|
31
|
+
* output goes through `CliOutput` so it pipes cleanly.
|
|
32
|
+
*
|
|
33
|
+
* Flags: `--limit <n>` (default 20).
|
|
34
|
+
*/
|
|
35
|
+
let RequestsCommand = RequestsCommand_1 = class RequestsCommand {
|
|
36
|
+
constructor(cliOutput, traceStore) {
|
|
37
|
+
this.cliOutput = cliOutput;
|
|
38
|
+
this.traceStore = traceStore;
|
|
39
|
+
this.optionsType = RequestsCommandOptions;
|
|
40
|
+
this.name = "p:requests";
|
|
41
|
+
this.description = "List recent requests captured in the observability store.";
|
|
42
|
+
}
|
|
43
|
+
run(args) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
var _a;
|
|
46
|
+
const limit = (_a = args.limit) !== null && _a !== void 0 ? _a : RequestsCommand_1.DEFAULT_LIMIT;
|
|
47
|
+
const summaries = this.traceStore.recentRequests(limit);
|
|
48
|
+
if (summaries.length === 0) {
|
|
49
|
+
this.cliOutput.writeLine("No captured requests yet. Run your app first.");
|
|
50
|
+
return ExitCode.Success;
|
|
51
|
+
}
|
|
52
|
+
const headers = ["TIME", "METHOD", "PATH", "STATUS", "DURATION", "EVENT"];
|
|
53
|
+
const rows = summaries.map(summary => {
|
|
54
|
+
var _a, _b;
|
|
55
|
+
return [
|
|
56
|
+
new Date(summary.startedAt).toTimeString().slice(0, 8),
|
|
57
|
+
(_a = summary.httpMethod) !== null && _a !== void 0 ? _a : "-",
|
|
58
|
+
(_b = summary.httpPath) !== null && _b !== void 0 ? _b : summary.rootKeyname,
|
|
59
|
+
summary.httpStatus !== undefined ? String(summary.httpStatus) : "-",
|
|
60
|
+
`${summary.durationMs}ms`,
|
|
61
|
+
summary.eventId,
|
|
62
|
+
];
|
|
63
|
+
});
|
|
64
|
+
for (const line of this.renderTable(headers, rows)) {
|
|
65
|
+
this.cliOutput.writeLine(line);
|
|
66
|
+
}
|
|
67
|
+
return ExitCode.Success;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
renderTable(headers, rows) {
|
|
71
|
+
const widths = headers.map((header, column) => Math.max(header.length, ...rows.map(row => row[column].length)));
|
|
72
|
+
const formatRow = (cells) => cells.map((cell, column) => cell.padEnd(widths[column])).join(" ").trimEnd();
|
|
73
|
+
return [formatRow(headers), ...rows.map(formatRow)];
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
RequestsCommand.DEFAULT_LIMIT = 20;
|
|
77
|
+
RequestsCommand = RequestsCommand_1 = __decorate([
|
|
78
|
+
tag(ServiceDefinitionTagEnum.Command),
|
|
79
|
+
moduleScoped(CliModuleKeyname),
|
|
80
|
+
injectable(),
|
|
81
|
+
__metadata("design:paramtypes", [CliOutput,
|
|
82
|
+
TraceStore])
|
|
83
|
+
], RequestsCommand);
|
|
84
|
+
export { RequestsCommand };
|
|
85
|
+
//# sourceMappingURL=requests.command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requests.command.js","sourceRoot":"","sources":["../../../../src/commands/requests.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAE,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAElE;;;;;;;;GAQG;AAII,IAAM,eAAe,uBAArB,MAAM,eAAe;IAO1B,YACmB,SAAoB,EACpB,UAAsB;QADtB,cAAS,GAAT,SAAS,CAAW;QACpB,eAAU,GAAV,UAAU,CAAY;QARzC,gBAAW,GAAG,sBAAsB,CAAC;QACrC,SAAI,GAAG,YAAY,CAAC;QACpB,gBAAW,GAAG,2DAA2D,CAAC;IAQ1E,CAAC;IAEK,GAAG,CAAC,IAA4B;;;YACpC,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,KAAK,mCAAI,iBAAe,CAAC,aAAa,CAAC;YAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAExD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC;gBAC1E,OAAO,QAAQ,CAAC,OAAO,CAAC;YAC1B,CAAC;YAED,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAC1E,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;;gBAAC,OAAA;oBACpC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;oBACtD,MAAA,OAAO,CAAC,UAAU,mCAAI,GAAG;oBACzB,MAAA,OAAO,CAAC,QAAQ,mCAAI,OAAO,CAAC,WAAW;oBACvC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG;oBACnE,GAAG,OAAO,CAAC,UAAU,IAAI;oBACzB,OAAO,CAAC,OAAO;iBAChB,CAAA;aAAA,CAAC,CAAC;YAEH,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;YAED,OAAO,QAAQ,CAAC,OAAO,CAAC;QAC1B,CAAC;KAAA;IAEO,WAAW,CAAC,OAAiB,EAAE,IAAgB;QACrD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAC5C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,CAAC,KAAe,EAAU,EAAE,CAC5C,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAChF,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACtD,CAAC;;AAxCuB,6BAAa,GAAG,EAAE,AAAL,CAAM;AALhC,eAAe;IAH3B,GAAG,CAAC,wBAAwB,CAAC,OAAO,CAAC;IACrC,YAAY,CAAC,gBAAgB,CAAC;IAC9B,UAAU,EAAE;qCASmB,SAAS;QACR,UAAU;GAT9B,eAAe,CA8C3B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
13
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
14
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
16
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
import { moduleScoped, ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
|
|
20
|
+
import { injectable } from "tsyringe";
|
|
21
|
+
import { CliModuleKeyname } from "../cli.module.keyname";
|
|
22
|
+
import { TraceCommand } from "./trace.command";
|
|
23
|
+
/**
|
|
24
|
+
* Top-level alias for `p:trace`.
|
|
25
|
+
*/
|
|
26
|
+
let TraceAliasCommand = class TraceAliasCommand {
|
|
27
|
+
constructor(delegate) {
|
|
28
|
+
this.delegate = delegate;
|
|
29
|
+
this.optionsType = null;
|
|
30
|
+
this.name = "trace";
|
|
31
|
+
this.description = "Alias for p:trace.";
|
|
32
|
+
}
|
|
33
|
+
run(args) {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
return this.delegate.run(args);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
TraceAliasCommand = __decorate([
|
|
40
|
+
tag(ServiceDefinitionTagEnum.Command),
|
|
41
|
+
moduleScoped(CliModuleKeyname),
|
|
42
|
+
injectable(),
|
|
43
|
+
__metadata("design:paramtypes", [TraceCommand])
|
|
44
|
+
], TraceAliasCommand);
|
|
45
|
+
export { TraceAliasCommand };
|
|
46
|
+
//# 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,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAW,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;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,iBAAiB;IAH7B,GAAG,CAAC,wBAAwB,CAAC,OAAO,CAAC;IACrC,YAAY,CAAC,gBAAgB,CAAC;IAC9B,UAAU,EAAE;qCAM4B,YAAY;GALxC,iBAAiB,CAW7B"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import "reflect-metadata";
|
|
11
|
+
import { IsArray, IsIn, IsOptional, IsString } from "@pristine-ts/class-validator";
|
|
12
|
+
/**
|
|
13
|
+
* Flags + positional for `pristine trace [<id>] [--event-id <x>] [--trace-id <x>] [--request-id <x>] [--format tree|flat|json]`.
|
|
14
|
+
*
|
|
15
|
+
* Look up a trace by any of three correlation ids — `--event-id` is canonical,
|
|
16
|
+
* `--trace-id` covers the distributed-tracing case (a propagated `traceparent`),
|
|
17
|
+
* `--request-id` covers HTTP requests with an `x-pristine-request-id` header. A
|
|
18
|
+
* positional id is tried against all three.
|
|
19
|
+
*/
|
|
20
|
+
export class TraceCommandOptions {
|
|
21
|
+
/**
|
|
22
|
+
* Resolves the lookup id: an explicit flag wins over the positional, and explicit
|
|
23
|
+
* flags are preferred in `eventId > traceId > requestId` order.
|
|
24
|
+
*/
|
|
25
|
+
get lookupId() {
|
|
26
|
+
var _a, _b, _c, _d;
|
|
27
|
+
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];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
__decorate([
|
|
31
|
+
IsOptional(),
|
|
32
|
+
IsString(),
|
|
33
|
+
__metadata("design:type", String)
|
|
34
|
+
], TraceCommandOptions.prototype, "event-id", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
IsOptional(),
|
|
37
|
+
IsString(),
|
|
38
|
+
__metadata("design:type", String)
|
|
39
|
+
], TraceCommandOptions.prototype, "trace-id", void 0);
|
|
40
|
+
__decorate([
|
|
41
|
+
IsOptional(),
|
|
42
|
+
IsString(),
|
|
43
|
+
__metadata("design:type", String)
|
|
44
|
+
], TraceCommandOptions.prototype, "request-id", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
IsOptional(),
|
|
47
|
+
IsIn(["tree", "flat", "json"]),
|
|
48
|
+
__metadata("design:type", String)
|
|
49
|
+
], TraceCommandOptions.prototype, "format", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
IsOptional(),
|
|
52
|
+
IsArray(),
|
|
53
|
+
__metadata("design:type", Array)
|
|
54
|
+
], TraceCommandOptions.prototype, "_", void 0);
|
|
55
|
+
//# 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,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAC,MAAM,8BAA8B,CAAC;AAIjF;;;;;;;GAOG;AACH,MAAM,OAAO,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;AAjCC;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;qDACS;AAKpB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;qDACS;AAKpB;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;uDACW;AAKtB;IAFC,UAAU,EAAE;IACZ,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;;mDACV;AASrB;IAFC,UAAU,EAAE;IACZ,OAAO,EAAE;;8CACG"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
13
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
14
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
16
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
import { moduleScoped, ServiceDefinitionTagEnum, tag, ExitCode } from "@pristine-ts/common";
|
|
20
|
+
import { injectable } from "tsyringe";
|
|
21
|
+
import { TraceStore } from "@pristine-ts/observability";
|
|
22
|
+
import { traceRenderer } from "@pristine-ts/telemetry";
|
|
23
|
+
import { CliOutput } from "../managers/cli-output.manager";
|
|
24
|
+
import { CliModuleKeyname } from "../cli.module.keyname";
|
|
25
|
+
import { TraceCommandOptions } from "./trace.command-options";
|
|
26
|
+
/**
|
|
27
|
+
* Renders the span tree of one captured trace. Look it up by any of event/trace/request
|
|
28
|
+
* id — `pristine trace <id>` tries all three, or use the explicit `--event-id`,
|
|
29
|
+
* `--trace-id`, `--request-id` flags.
|
|
30
|
+
*
|
|
31
|
+
* `--format tree|flat|json` controls the rendering (defaults to `tree`).
|
|
32
|
+
*/
|
|
33
|
+
let TraceCommand = class TraceCommand {
|
|
34
|
+
constructor(cliOutput, traceStore) {
|
|
35
|
+
this.cliOutput = cliOutput;
|
|
36
|
+
this.traceStore = traceStore;
|
|
37
|
+
this.optionsType = TraceCommandOptions;
|
|
38
|
+
this.name = "p:trace";
|
|
39
|
+
this.description = "Render the span tree of a captured trace by event/trace/request id.";
|
|
40
|
+
}
|
|
41
|
+
run(args) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
var _a;
|
|
44
|
+
const lookupId = args.lookupId;
|
|
45
|
+
if (lookupId === undefined) {
|
|
46
|
+
this.cliOutput.writeLine("Usage: pristine trace <id> [--format tree|flat|json]");
|
|
47
|
+
this.cliOutput.writeLine(" pristine trace --event-id <id> | --trace-id <id> | --request-id <id>");
|
|
48
|
+
return ExitCode.Error;
|
|
49
|
+
}
|
|
50
|
+
const format = (_a = args.format) !== null && _a !== void 0 ? _a : "tree";
|
|
51
|
+
if (format === "json") {
|
|
52
|
+
const serialized = this.traceStore.findSerialized(lookupId);
|
|
53
|
+
if (serialized === undefined) {
|
|
54
|
+
this.cliOutput.writeLine(`No trace found matching '${lookupId}'.`);
|
|
55
|
+
return ExitCode.Error;
|
|
56
|
+
}
|
|
57
|
+
this.cliOutput.writeLine(JSON.stringify(serialized.trace, null, 2));
|
|
58
|
+
return ExitCode.Success;
|
|
59
|
+
}
|
|
60
|
+
const found = this.traceStore.find(lookupId);
|
|
61
|
+
if (found === undefined) {
|
|
62
|
+
this.cliOutput.writeLine(`No trace found matching '${lookupId}'.`);
|
|
63
|
+
return ExitCode.Error;
|
|
64
|
+
}
|
|
65
|
+
const rendered = format === "flat"
|
|
66
|
+
? traceRenderer.renderFlat(found.trace)
|
|
67
|
+
: traceRenderer.renderTree(found.trace);
|
|
68
|
+
this.cliOutput.writeLine(rendered);
|
|
69
|
+
return ExitCode.Success;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
TraceCommand = __decorate([
|
|
74
|
+
tag(ServiceDefinitionTagEnum.Command),
|
|
75
|
+
moduleScoped(CliModuleKeyname),
|
|
76
|
+
injectable(),
|
|
77
|
+
__metadata("design:paramtypes", [CliOutput,
|
|
78
|
+
TraceStore])
|
|
79
|
+
], TraceCommand);
|
|
80
|
+
export { TraceCommand };
|
|
81
|
+
//# 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,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAE,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;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,mBAAmB,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,QAAQ,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,QAAQ,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,QAAQ,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,QAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,MAAM;gBAChC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;gBACvC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEnC,OAAO,QAAQ,CAAC,OAAO,CAAC;QAC1B,CAAC;KAAA;CACF,CAAA;AA5CY,YAAY;IAHxB,GAAG,CAAC,wBAAwB,CAAC,OAAO,CAAC;IACrC,YAAY,CAAC,gBAAgB,CAAC;IAC9B,UAAU,EAAE;qCAOmB,SAAS;QACR,UAAU;GAP9B,YAAY,CA4CxB"}
|