@travetto/scaffold 2.2.5 → 3.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -84,6 +84,7 @@ import { NotFoundError } from '@travetto/model';
84
84
  import { Inject } from '@travetto/di';
85
85
  import { ModelQuery, ModelQueryCrudSupport } from '@travetto/model-query';
86
86
  import { Schema } from '@travetto/schema';
87
+ import { AuthContextService } from '@travetto/auth-rest-context';
87
88
 
88
89
  import { Todo } from '../model/todo';
89
90
 
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.main = void 0;
4
+ async function main() {
5
+ const { PhaseManager } = await Promise.resolve().then(() => require('@travetto/base'));
6
+ await PhaseManager.run('init', '@trv:base/transpile');
7
+ }
8
+ exports.main = main;
9
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdGltL0NvZGUvdHJhdmV0dG8vIiwic291cmNlcyI6WyJtb2R1bGUvYmFzZS9iaW4vYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR08sS0FBSyxVQUFVLElBQUk7SUFDeEIsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLDJDQUFhLGdCQUFnQixFQUFDLENBQUM7SUFFeEQsTUFBTSxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFKRCxvQkFJQztBQUNELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMifQ==
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.main = void 0;
4
+ const cache_1 = require("@travetto/boot/src/cache");
5
+ async function main() {
6
+ cache_1.AppCache.clear();
7
+ }
8
+ exports.main = main;
9
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW4uanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdGltL0NvZGUvdHJhdmV0dG8vIiwic291cmNlcyI6WyJtb2R1bGUvYmFzZS9iaW4vY2xlYW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0RBQW9EO0FBSzdDLEtBQUssVUFBVSxJQUFJO0lBQ3hCLGdCQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDbkIsQ0FBQztBQUZELG9CQUVDO0FBQ0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyJ9
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseBuildCommand = void 0;
4
+ const color_1 = require("@travetto/cli/src/color");
5
+ const command_1 = require("@travetto/cli/src/command");
6
+ const lib_1 = require("./lib");
7
+ class BaseBuildCommand extends command_1.CliCommand {
8
+ name = 'build';
9
+ async build() { }
10
+ getOptions() {
11
+ return {
12
+ output: this.option({ desc: 'Output directory', completion: true }),
13
+ quiet: this.boolOption({ desc: 'Quiet operation' })
14
+ };
15
+ }
16
+ async action() {
17
+ if (this.cmd.output) {
18
+ process.env.TRV_CACHE = this.cmd.output;
19
+ }
20
+ const { AppCache } = await Promise.resolve().then(() => require('@travetto/boot'));
21
+ const path = this.cmd.output ?? AppCache.cacheDir;
22
+ try {
23
+ await lib_1.BuildUtil.build(process.env);
24
+ if (!this.cmd.quiet) {
25
+ console.log((0, color_1.color) `${{ success: 'Successfully' }} wrote to ${{ path }}`);
26
+ }
27
+ }
28
+ catch (err) {
29
+ console.error((0, color_1.color) `${{ failure: 'Failed' }} to compile to ${{ path }}`, err);
30
+ process.exit(1);
31
+ }
32
+ }
33
+ }
34
+ exports.BaseBuildCommand = BaseBuildCommand;
35
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWJ1aWxkLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3RpbS9Db2RlL3RyYXZldHRvLyIsInNvdXJjZXMiOlsibW9kdWxlL2Jhc2UvYmluL2NsaS1idWlsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBZ0Q7QUFDaEQsdURBQXFFO0FBRXJFLCtCQUFrQztBQVdsQyxNQUFhLGdCQUFpQixTQUFRLG9CQUFtQjtJQUV2RCxJQUFJLEdBQUcsT0FBTyxDQUFDO0lBRU4sS0FBSyxDQUFDLEtBQUssS0FBb0IsQ0FBQztJQUV6QyxVQUFVO1FBQ1IsT0FBTztZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNuRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDO1NBQ3BELENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU07UUFDVixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO1NBQ3pDO1FBRUQsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLDJDQUFhLGdCQUFnQixFQUFDLENBQUM7UUFDcEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUVsRCxJQUFJO1lBQ0YsTUFBTSxlQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVuQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUU7Z0JBQ25CLE9BQVEsQ0FBQyxHQUFHLENBQUMsSUFBQSxhQUFLLEVBQUEsR0FBRyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQzthQUMxRTtTQUNGO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUEsYUFBSyxFQUFBLEdBQUcsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqQjtJQUNILENBQUM7Q0FDRjtBQWhDRCw0Q0FnQ0M7QUFDRCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseCleanCommand = void 0;
4
+ const fs = require("fs/promises");
5
+ const color_1 = require("@travetto/cli/src/color");
6
+ const command_1 = require("@travetto/cli/src/command");
7
+ const boot_1 = require("@travetto/boot");
8
+ class BaseCleanCommand extends command_1.CliCommand {
9
+ name = 'clean';
10
+ async build() { }
11
+ getOptions() {
12
+ return { quiet: this.boolOption({ desc: 'Quiet operation' }) };
13
+ }
14
+ async action() {
15
+ for (const el of await fs.readdir(boot_1.PathUtil.cwd)) {
16
+ if (el.startsWith('.trv') && (await fs.stat(el)).isDirectory()) {
17
+ const cache = new boot_1.FileCache(el);
18
+ try {
19
+ cache.clear(true);
20
+ if (!this.cmd.quiet) {
21
+ console.log((0, color_1.color) `${{ success: 'Successfully' }} deleted temp dir ${{ path: cache.cacheDir }}`);
22
+ }
23
+ }
24
+ catch {
25
+ console.error((0, color_1.color) `${{ failure: 'Failed' }} to delete temp dir ${{ path: cache.cacheDir }}`);
26
+ }
27
+ }
28
+ }
29
+ }
30
+ }
31
+ exports.BaseCleanCommand = BaseCleanCommand;
32
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWNsZWFuLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3RpbS9Db2RlL3RyYXZldHRvLyIsInNvdXJjZXMiOlsibW9kdWxlL2Jhc2UvYmluL2NsaS1jbGVhbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrQ0FBa0M7QUFFbEMsbURBQWdEO0FBQ2hELHVEQUFxRTtBQUNyRSx5Q0FBcUQ7QUFXckQsTUFBYSxnQkFBaUIsU0FBUSxvQkFBbUI7SUFFdkQsSUFBSSxHQUFHLE9BQU8sQ0FBQztJQUVOLEtBQUssQ0FBQyxLQUFLLEtBQW9CLENBQUM7SUFFekMsVUFBVTtRQUNSLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU07UUFDVixLQUFLLE1BQU0sRUFBRSxJQUFJLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxlQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7Z0JBQzlELE1BQU0sS0FBSyxHQUFHLElBQUksZ0JBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDaEMsSUFBSTtvQkFDRixLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUU7d0JBQ25CLE9BQVEsQ0FBQyxHQUFHLENBQUMsSUFBQSxhQUFLLEVBQUEsR0FBRyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7cUJBQ2xHO2lCQUNGO2dCQUFDLE1BQU07b0JBQ04sT0FBUSxDQUFDLEtBQUssQ0FBQyxJQUFBLGFBQUssRUFBQSxHQUFHLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztpQkFDaEc7YUFDRjtTQUNGO0lBQ0gsQ0FBQztDQUNGO0FBekJELDRDQXlCQztBQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMifQ==
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnvInit = void 0;
4
+ const env_1 = require("@travetto/boot/src/env");
5
+ class EnvInit {
6
+ static addToList(k, ...items) {
7
+ process.env[k] = [...new Set(env_1.EnvUtil.getList(k, items))].join(',');
8
+ }
9
+ static init({ env, dynamic, debug, set, append } = {}) {
10
+ process.env.TRV_ENV = env ?? process.env.TRV_ENV ?? process.env.NODE_ENV ?? 'dev';
11
+ const prod = /^prod(uction)$/i.test(process.env.TRV_ENV);
12
+ dynamic ??= env_1.EnvUtil.isTrue('TRV_DYNAMIC');
13
+ Object.assign(process.env, {
14
+ NODE_ENV: prod ? 'production' : 'development',
15
+ ...(dynamic !== undefined ? { TRV_DYNAMIC: `${dynamic}` } : {}),
16
+ TRV_DEBUG: env_1.EnvUtil.get('TRV_DEBUG', env_1.EnvUtil.get('DEBUG', debug ?? (prod ? '0' : '')))
17
+ }, set ?? {});
18
+ for (const [key, values] of Object.entries(append ?? {})) {
19
+ this.addToList(key, ...((typeof values === 'string' ? [values] : values) ?? []));
20
+ }
21
+ }
22
+ }
23
+ exports.EnvInit = EnvInit;
24
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS90aW0vQ29kZS90cmF2ZXR0by8iLCJzb3VyY2VzIjpbIm1vZHVsZS9iYXNlL2Jpbi9pbml0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGdEQUFpRDtBQVlqRCxNQUFhLE9BQU87SUFLbEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFTLEVBQUUsR0FBRyxLQUFlO1FBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLGFBQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUtELE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxLQUFpQixFQUFFO1FBQy9ELE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7UUFDbEYsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekQsT0FBTyxLQUFLLGFBQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFMUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsYUFBYTtZQUM3QyxHQUFHLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsR0FBRyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0QsU0FBUyxFQUFFLGFBQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLGFBQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3RGLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRWQsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ3hELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNsRjtJQUNILENBQUM7Q0FDRjtBQTNCRCwwQkEyQkM7QUFDRCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BuildUtil = void 0;
4
+ const fs_1 = require("fs");
5
+ const util_1 = require("@travetto/cli/src/util");
6
+ const boot_1 = require("@travetto/boot");
7
+ const source_1 = require("@travetto/boot/src/internal/source");
8
+ class BuildUtil {
9
+ static async build(env) {
10
+ if (boot_1.EnvUtil.isReadonly()) {
11
+ return;
12
+ }
13
+ const output = env?.TRV_CACHE ?? '';
14
+ boot_1.AppCache.init();
15
+ const { AppManifest } = await Promise.resolve().then(() => require('@travetto/base/src/manifest'));
16
+ let expired;
17
+ let missing;
18
+ for (const entry of source_1.SourceIndex.findByFolders(AppManifest.source)) {
19
+ try {
20
+ if (boot_1.FileCache.isOlder(boot_1.AppCache.statEntry(entry.file), (0, fs_1.statSync)(entry.file))) {
21
+ expired = entry;
22
+ break;
23
+ }
24
+ }
25
+ catch {
26
+ missing = entry;
27
+ break;
28
+ }
29
+ }
30
+ if (!missing && !expired) {
31
+ return;
32
+ }
33
+ return util_1.CliUtil.waiting(`Building... ${output}`, boot_1.ExecUtil.workerMain(require.resolve('../build'), [], {
34
+ env: {
35
+ ...(output ? { TRV_CACHE: output } : {}),
36
+ ...(env ?? {})
37
+ },
38
+ stderr: false
39
+ }).result);
40
+ }
41
+ }
42
+ exports.BuildUtil = BuildUtil;
43
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdGltL0NvZGUvdHJhdmV0dG8vIiwic291cmNlcyI6WyJtb2R1bGUvYmFzZS9iaW4vbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJCQUE4QjtBQUU5QixpREFBaUQ7QUFDakQseUNBQXdFO0FBQ3hFLCtEQUE4RTtBQUs5RSxNQUFhLFNBQVM7SUFLcEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBd0M7UUFDekQsSUFBSSxjQUFPLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDeEIsT0FBTztTQUNSO1FBRUQsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDcEMsZUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWhCLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRywyQ0FBYSw2QkFBNkIsRUFBQyxDQUFDO1FBRXBFLElBQUksT0FBZ0MsQ0FBQztRQUNyQyxJQUFJLE9BQWdDLENBQUM7UUFDckMsS0FBSyxNQUFNLEtBQUssSUFBSSxvQkFBVyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDakUsSUFBSTtnQkFDRixJQUFJLGdCQUFTLENBQUMsT0FBTyxDQUFDLGVBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUEsYUFBUSxFQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO29CQUMzRSxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNoQixNQUFNO2lCQUNQO2FBQ0Y7WUFBQyxNQUFNO2dCQUNOLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ2hCLE1BQU07YUFDUDtTQUNGO1FBRUQsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN4QixPQUFPO1NBQ1I7UUFHRCxPQUFPLGNBQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxNQUFNLEVBQUUsRUFDNUMsZUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtZQUNuRCxHQUFHLEVBQUU7Z0JBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDeEMsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7YUFDZjtZQUNELE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQyxDQUFDLE1BQU0sQ0FDVixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBNUNELDhCQTRDQztBQUNELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMifQ==
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.main = void 0;
4
+ const path_1 = require("@travetto/boot/src/path");
5
+ const module_1 = require("@travetto/boot/src/internal/module");
6
+ const source_1 = require("@travetto/boot/src/internal/source");
7
+ const boot_1 = require("@travetto/boot");
8
+ async function main() {
9
+ if (!boot_1.EnvUtil.isFalse('TRV_CLI_LOCAL') && !path_1.PathUtil.toUnix(__filename).includes(path_1.PathUtil.cwd)) {
10
+ console.error(`
11
+ The @travetto/cli is not intended to be installed globally. Please install it within your local project
12
+
13
+ npm i --save-dev @travetto/cli
14
+
15
+ and invoke it locally using
16
+
17
+ npx trv
18
+ `);
19
+ process.exit(1);
20
+ }
21
+ module_1.ModuleManager.transpileAll(source_1.SourceIndex.find({ folder: 'bin' }));
22
+ const { ExecutionManager } = await Promise.resolve().then(() => require('@travetto/cli/src/execute'));
23
+ return ExecutionManager.run(process.argv);
24
+ }
25
+ exports.main = main;
26
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3RpbS9Db2RlL3RyYXZldHRvLyIsInNvdXJjZXMiOlsibW9kdWxlL2NsaS9iaW4vY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtEQUFtRDtBQUNuRCwrREFBbUU7QUFDbkUsK0RBQWlFO0FBQ2pFLHlDQUF5QztBQUtsQyxLQUFLLFVBQVUsSUFBSTtJQUN4QixJQUFJLENBQUMsY0FBTyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUM1RixPQUFPLENBQUMsS0FBSyxDQUFDOzs7Ozs7OztDQVFqQixDQUFDLENBQUM7UUFDQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pCO0lBR0Qsc0JBQWEsQ0FBQyxZQUFZLENBQUMsb0JBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRWhFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLDJDQUFhLDJCQUEyQixFQUFDLENBQUM7SUFDdkUsT0FBTyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFuQkQsb0JBbUJDO0FBQ0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyJ9
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.color = void 0;
4
+ const color_1 = require("@travetto/boot/src/color");
5
+ const colorSet = {
6
+ input: color_1.ColorUtil.makeColorer('yellow'),
7
+ output: color_1.ColorUtil.makeColorer('magenta'),
8
+ path: color_1.ColorUtil.makeColorer('cyan'),
9
+ success: color_1.ColorUtil.makeColorer('green', 'bold'),
10
+ failure: color_1.ColorUtil.makeColorer('red', 'bold'),
11
+ param: color_1.ColorUtil.makeColorer('green'),
12
+ type: color_1.ColorUtil.makeColorer('cyan'),
13
+ description: color_1.ColorUtil.makeColorer('white', 'faint', 'bold'),
14
+ title: color_1.ColorUtil.makeColorer('white', 'bold'),
15
+ identifier: color_1.ColorUtil.makeColorer('blue', 'bold'),
16
+ subtitle: color_1.ColorUtil.makeColorer('white'),
17
+ subsubtitle: color_1.ColorUtil.makeColorer('white', 'faint')
18
+ };
19
+ exports.color = color_1.ColorUtil.makeTemplate(colorSet);
20
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3IuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdGltL0NvZGUvdHJhdmV0dG8vIiwic291cmNlcyI6WyJtb2R1bGUvY2xpL3NyYy9jb2xvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvREFBcUQ7QUFFckQsTUFBTSxRQUFRLEdBQUc7SUFDZixLQUFLLEVBQUUsaUJBQVMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO0lBQ3RDLE1BQU0sRUFBRSxpQkFBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUM7SUFDeEMsSUFBSSxFQUFFLGlCQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUNuQyxPQUFPLEVBQUUsaUJBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUMvQyxPQUFPLEVBQUUsaUJBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQztJQUM3QyxLQUFLLEVBQUUsaUJBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQ3JDLElBQUksRUFBRSxpQkFBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDbkMsV0FBVyxFQUFFLGlCQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQzVELEtBQUssRUFBRSxpQkFBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQzdDLFVBQVUsRUFBRSxpQkFBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2pELFFBQVEsRUFBRSxpQkFBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7SUFDeEMsV0FBVyxFQUFFLGlCQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7Q0FDNUMsQ0FBQztBQVVFLFFBQUEsS0FBSyxHQUFHLGlCQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBSXRELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMifQ==
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CliCommandManager = void 0;
4
+ const source_1 = require("@travetto/boot/src/internal/source");
5
+ const color_1 = require("./color");
6
+ const command_1 = require("./command");
7
+ const COMMAND_PACKAGE = [
8
+ [/^run$/, 'app', true],
9
+ [/^compile$/, 'compiler', true],
10
+ [/^test$/, 'test', false],
11
+ [/^command:service$/, 'command', true],
12
+ [/^model:(install|export)$/, 'model', true],
13
+ [/^openapi:(spec|client)$/, 'openapi', true],
14
+ [/^email:(compile|dev)$/, 'email-template', false],
15
+ [/^pack(:assemble|:zip|:docker)?$/, 'pack', false],
16
+ ];
17
+ class CliCommandManager {
18
+ static getCommandMapping() {
19
+ const all = new Map();
20
+ for (const { file } of source_1.SourceIndex.find({ folder: 'bin', filter: /bin\/cli-/ })) {
21
+ all.set(file.replace(/^.*\/bin\/.+?-(.*?)[.][^.]*$/, (_, f) => f), file);
22
+ }
23
+ return all;
24
+ }
25
+ static async loadCommand(cmd, op) {
26
+ const command = cmd.replace(/:/g, '_');
27
+ const f = this.getCommandMapping().get(command);
28
+ if (!f) {
29
+ const cfg = COMMAND_PACKAGE.find(([re]) => re.test(cmd));
30
+ if (cfg) {
31
+ const [, pkg, prod] = cfg;
32
+ console.error((0, color_1.color) `
33
+ ${{ title: 'Missing Package' }}\n${'-'.repeat(20)}\nTo use ${{ input: cmd }} please run:\n
34
+ ${{ identifier: `npm i ${prod ? '' : '--save-dev '}@travetto/${pkg}` }}`);
35
+ process.exit(1);
36
+ }
37
+ throw new Error(`Unknown command: ${cmd}`);
38
+ }
39
+ const values = Object.values(await Promise.resolve().then(() => require(f)));
40
+ for (const v of values) {
41
+ try {
42
+ const inst = new v();
43
+ if (inst instanceof command_1.CliCommand) {
44
+ if (op) {
45
+ await op(inst);
46
+ }
47
+ return inst;
48
+ }
49
+ }
50
+ catch { }
51
+ }
52
+ throw new Error(`Not a valid command: ${cmd}`);
53
+ }
54
+ static async loadAllCommands(op) {
55
+ return Promise.all([...this.getCommandMapping().keys()]
56
+ .sort((a, b) => a.localeCompare(b))
57
+ .map(k => this.loadCommand(k, op)));
58
+ }
59
+ }
60
+ exports.CliCommandManager = CliCommandManager;
61
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3RpbS9Db2RlL3RyYXZldHRvLyIsInNvdXJjZXMiOlsibW9kdWxlL2NsaS9zcmMvY29tbWFuZC1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtEQUFpRTtBQUVqRSxtQ0FBZ0M7QUFDaEMsdUNBQXVDO0FBRXZDLE1BQU0sZUFBZSxHQUFHO0lBQ3RCLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUM7SUFDdEIsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQztJQUMvQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO0lBQ3pCLENBQUMsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQztJQUN0QyxDQUFDLDBCQUEwQixFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUM7SUFDM0MsQ0FBQyx5QkFBeUIsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDO0lBQzVDLENBQUMsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDO0lBQ2xELENBQUMsaUNBQWlDLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQztDQUMxQyxDQUFDO0FBS1gsTUFBYSxpQkFBaUI7SUFLNUIsTUFBTSxDQUFDLGlCQUFpQjtRQUN0QixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUN0QyxLQUFLLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxvQkFBVyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUU7WUFDL0UsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLDhCQUE4QixFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDMUU7UUFDRCxPQUFPLEdB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
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CliCommand = void 0;
4
+ const promises_1 = require("fs/promises");
5
+ const help_1 = require("./help");
6
+ const util_1 = require("./util");
7
+ class CliCommand {
8
+ #cmd;
9
+ allowUnknownOptions = false;
10
+ option(cfg) {
11
+ if ('combine' in cfg && cfg.combine && cfg.def !== undefined && !Array.isArray(cfg.def)) {
12
+ cfg.def = cfg.combine(`${cfg.def}`, cfg.def);
13
+ }
14
+ return { type: String, ...cfg };
15
+ }
16
+ choiceOption({ choices, ...cfg }) {
17
+ const config = {
18
+ type: String,
19
+ combine: (v, acc) => choices.includes(v) ? v : acc,
20
+ choices,
21
+ completion: true,
22
+ ...cfg
23
+ };
24
+ return config;
25
+ }
26
+ listOption(cfg) {
27
+ return {
28
+ type: String,
29
+ def: [],
30
+ combine: (v, acc) => acc.concat(v),
31
+ completion: true,
32
+ ...cfg
33
+ };
34
+ }
35
+ boolOption(cfg) {
36
+ return {
37
+ type: Boolean,
38
+ combine: util_1.CliUtil.toBool.bind(util_1.CliUtil),
39
+ completion: true,
40
+ ...cfg
41
+ };
42
+ }
43
+ intOption({ lower, upper, ...cfg }) {
44
+ return {
45
+ type: Number,
46
+ combine: util_1.CliUtil.toInt.bind(util_1.CliUtil, lower, upper),
47
+ ...cfg
48
+ };
49
+ }
50
+ async build() {
51
+ await (await Promise.resolve().then(() => require('@travetto/base/bin/lib/')))
52
+ .BuildUtil.build();
53
+ }
54
+ get cmd() {
55
+ return this.#cmd.opts();
56
+ }
57
+ get args() {
58
+ return this.#cmd.args;
59
+ }
60
+ async showHelp(err, extra) {
61
+ if (err && typeof err !== 'string') {
62
+ err = err.message;
63
+ }
64
+ help_1.HelpUtil.showHelp(this.#cmd, err, extra || (await this.help?.()) || '');
65
+ }
66
+ async finalizeOptions() {
67
+ const opts = this.getOptions?.();
68
+ const used = new Set();
69
+ return (opts ? Object.entries(opts) : []).map(([k, cfg]) => {
70
+ cfg.key = k;
71
+ cfg.name ??= k.replace(/([a-z])([A-Z])/g, (_, l, r) => `${l}-${r.toLowerCase()}`);
72
+ if (cfg.short === undefined) {
73
+ cfg.short = cfg.name.charAt(0);
74
+ if (used.has(cfg.short)) {
75
+ delete cfg.short;
76
+ }
77
+ }
78
+ used.add(cfg.short);
79
+ return cfg;
80
+ });
81
+ }
82
+ async setup(cmd) {
83
+ cmd = cmd.command(this.name);
84
+ if (this.allowUnknownOptions) {
85
+ cmd = cmd.allowUnknownOption(true);
86
+ }
87
+ if (this.init) {
88
+ cmd = await this.init?.(cmd);
89
+ }
90
+ if (this.getArgs) {
91
+ cmd = cmd.arguments(this.getArgs?.());
92
+ }
93
+ for (const cfg of await this.finalizeOptions()) {
94
+ let key = `${cfg.short ? `-${cfg.short}, ` : ''}--${cfg.name}`;
95
+ if (cfg.type !== Boolean || cfg.def) {
96
+ key = `${key} <${cfg.name}>`;
97
+ }
98
+ cmd = cfg.combine ? cmd.option(key, cfg.desc, cfg.combine, cfg.def) : cmd.option(key, cfg.desc, (cur, acc) => cur, cfg.def);
99
+ }
100
+ cmd = cmd.action(this.runAction.bind(this));
101
+ return this.#cmd = cmd;
102
+ }
103
+ async runAction(...args) {
104
+ await this.envInit?.();
105
+ await this.build();
106
+ if (process.env.TRV_CLI_JSON_IPC && this.jsonIpc) {
107
+ const data = await this.jsonIpc(...args);
108
+ if (data !== undefined) {
109
+ const payload = JSON.stringify({ type: this.name, data });
110
+ await (0, promises_1.appendFile)(process.env.TRV_CLI_JSON_IPC, `${payload}\n`);
111
+ return;
112
+ }
113
+ }
114
+ return await this.action(...args);
115
+ }
116
+ async setupCompletion(config) {
117
+ const task = await this.complete();
118
+ config.all = [...config.all, this.name];
119
+ if (task) {
120
+ config.task[this.name] = task;
121
+ }
122
+ }
123
+ async complete() {
124
+ const out = { '': [] };
125
+ for (const el of await this.finalizeOptions()) {
126
+ if (el.completion) {
127
+ out[''] = [...out[''], `--${el.name} `];
128
+ if ('choices' in el && el.choices) {
129
+ out[`--${el.name} `] = el.choices.map(x => `${x}`);
130
+ if (el.short) {
131
+ out[`- ${el.short} `] = el.choices.map(x => `${x}`);
132
+ }
133
+ }
134
+ }
135
+ }
136
+ return out;
137
+ }
138
+ }
139
+ exports.CliCommand = CliCommand;
140
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS90aW0vQ29kZS90cmF2ZXR0by8iLCJzb3VyY2VzIjpbIm1vZHVsZS9jbGkvc3JjL2NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQXlDO0FBSXpDLGlDQUFrQztBQUNsQyxpQ0FBaUM7QUFpQ2pDLE1BQXNCLFVBQVU7SUFJOUIsSUFBSSxDQUFvQjtJQUt4QixtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUF5QzVCLE1BQU0sQ0FBdUQsR0FBTTtRQUNqRSxJQUFJLFNBQVMsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZGLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDOUM7UUFDRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFLRCxZQUFZLENBQWtGLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFLO1FBRWxILE1BQU0sTUFBTSxHQUFNO1lBQ2hCLElBQUksRUFBRSxNQUFNO1lBQ1osT0FBTyxFQUFFLENBQUMsQ0FBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHO1lBQ3JELE9BQU87WUFDUCxVQUFVLEVBQUUsSUFBSTtZQUNoQixHQUFHLEdBQUc7U0FDUCxDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUtELFVBQVUsQ0FBcUMsR0FBTTtRQUNuRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLE1BQU07WUFDWixHQUFHLEVBQUUsRUFBRTtZQUNQLE9BQU8sRUFBRSxDQUFDLENBQVMsRUFBRSxHQUFhLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ3BELFVBQVUsRUFBRSxJQUFJO1lBQ2hCLEdBQUcsR0FBRztTQUNQLENBQUM7SUFDSixDQUFDO0lBS0QsVUFBVSxDQUFDLEdBQTBCO1FBQ25DLE9BQU87WUFDTCxJQUFJLEVBQUUsT0FBTztZQUNiLE9BQU8sRUFBRSxjQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFPLENBQUM7WUFDckMsVUFBVSxFQUFFLElBQUk7WUFDaEIsR0FBRyxHQUFHO1NBQ1AsQ0FBQztJQUNKLENBQUM7SUFLRCxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxFQUE2RDtRQUMzRixPQUFPO1lBQ0wsSUFBSSxFQUFFLE1BQU07WUFDWixPQUFPLEVBQUUsY0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUM7WUFDbEQsR0FBRyxHQUFHO1NBQ1AsQ0FBQztJQUNKLENBQUM7SUFLRCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sQ0FBQywyQ0FBYSx5QkFBeUIsRUFBQyxDQUFDO2FBQzVDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBS0QsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFLRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFLRCxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQW9CLEVBQUUsS0FBYztRQUNqRCxJQUFJLEdBQUcsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDbEMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7U0FDbkI7UUFDRCxlQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBTUQsS0FBSyxDQUFDLGVBQWU7UUFDbkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7UUFDakMsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUV2QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFrQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRTtZQUMxRSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUNaLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFGLElBQUksR0FBRyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUU7Z0JBQzNCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQy9CLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3ZCLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQztpQkFDbEI7YUFDRjtZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BCLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBS0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFzQjtRQUNoQyxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNwQztRQUNELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM5QjtRQUNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixHQUFHLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUM5QyxJQUFJLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9ELElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDbkMsR0FBRyxHQUFHLEdBQUcsR0FBRyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQzthQUM5QjtZQUVELEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM3SDtRQUVELEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUN6QixDQUFDO0lBS0QsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQWU7UUFDaEMsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUN2QixNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUN6QyxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7Z0JBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUMxRCxNQUFNLElBQUEscUJBQVUsRUFBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsT0FBTyxJQUFJLENBQUMsQ0FBQztnQkFDL0QsT0FBTzthQUNSO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFLRCxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQXdCO1FBQzVDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksSUFBSSxFQUFFO1lBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUtELEtBQUssQ0FBQyxRQUFRO1FBQ1osTUFBTSxHQUFHLEdBQWUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDbkMsS0FBSyxNQUFNLEVBQUUsSUFBSSxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUM3QyxJQUFJLEVBQUUsQ0FBQyxVQUFVLEVBQUU7Z0JBQ2pCLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBRSxFQUFFLEtBQUssRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7Z0JBQ3pDLElBQUksU0FBUyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFO29CQUNqQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDbkQsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFO3dCQUNaLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3FCQUNyRDtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FDRjtBQTNPRCxnQ0EyT0M7QUFDRCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExecutionManager = void 0;
4
+ const commander_1 = require("commander");
5
+ const util_1 = require("./util");
6
+ const command_manager_1 = require("./command-manager");
7
+ const help_1 = require("./help");
8
+ const package_json_1 = require("../package.json");
9
+ class ExecutionManager {
10
+ static async runCompletion(args) {
11
+ const cfg = { all: [], task: {} };
12
+ await command_manager_1.CliCommandManager.loadAllCommands(x => x.setupCompletion(cfg));
13
+ const res = await util_1.CliUtil.getCompletion(cfg, args.slice(3));
14
+ console.log(res.join(' '));
15
+ return;
16
+ }
17
+ static async runCommand(args) {
18
+ const cmd = args[2];
19
+ let command;
20
+ try {
21
+ command = await command_manager_1.CliCommandManager.loadCommand(cmd);
22
+ await command.setup(commander_1.program);
23
+ }
24
+ catch (err) {
25
+ return help_1.HelpUtil.showHelp(commander_1.program, `Unknown command ${cmd}`);
26
+ }
27
+ try {
28
+ if (args.includes('-h') || args.includes('--help')) {
29
+ return command.showHelp();
30
+ }
31
+ else {
32
+ commander_1.program.parse(args);
33
+ }
34
+ }
35
+ catch (err) {
36
+ if (!(err instanceof Error)) {
37
+ throw err;
38
+ }
39
+ return command.showHelp(err);
40
+ }
41
+ }
42
+ static async run(args) {
43
+ const width = +(process.env.TRV_CONSOLE_WIDTH ?? process.stdout.columns ?? 120);
44
+ commander_1.program
45
+ .version(package_json_1.version)
46
+ .configureOutput({ getOutHelpWidth: () => width, getErrHelpWidth: () => width });
47
+ const cmd = args[2];
48
+ if (cmd === 'complete') {
49
+ await this.runCompletion(args);
50
+ }
51
+ else {
52
+ if (cmd && !cmd.startsWith('-')) {
53
+ await this.runCommand(args);
54
+ }
55
+ else {
56
+ await command_manager_1.CliCommandManager.loadAllCommands(x => x.setup(commander_1.program));
57
+ help_1.HelpUtil.showHelp(commander_1.program);
58
+ }
59
+ }
60
+ }
61
+ }
62
+ exports.ExecutionManager = ExecutionManager;
63
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS90aW0vQ29kZS90cmF2ZXR0by8iLCJzb3VyY2VzIjpbIm1vZHVsZS9jbGkvc3JjL2V4ZWN1dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQWlEO0FBRWpELGlDQUFpQztBQUVqQyx1REFBc0Q7QUFDdEQsaUNBQWtDO0FBQ2xDLGtEQUEwQztBQUsxQyxNQUFhLGdCQUFnQjtJQUszQixNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFjO1FBQ3ZDLE1BQU0sR0FBRyxHQUFxQixFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3BELE1BQU0sbUNBQWlCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sR0FBRyxHQUFHLE1BQU0sY0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNCLE9BQU87SUFDVCxDQUFDO0lBS0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBYztRQUNwQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEIsSUFBSSxPQUFPLENBQUM7UUFFWixJQUFJO1lBRUYsT0FBTyxHQUFHLE1BQU0sbUNBQWlCLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBUyxDQUFDLENBQUM7U0FDaEM7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLE9BQU8sZUFBUSxDQUFDLFFBQVEsQ0FBQyxtQkFBUyxFQUFFLG1CQUFtQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQy9EO1FBRUQsSUFBSTtZQUNGLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNsRCxPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUMzQjtpQkFBTTtnQkFDTCxtQkFBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN2QjtTQUNGO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksS0FBSyxDQUFDLEVBQUU7Z0JBQzNCLE1BQU0sR0FBRyxDQUFDO2FBQ1g7WUFDRCxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBTUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBYztRQUM3QixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNoRixtQkFBUzthQUNOLE9BQU8sQ0FBQyxzQkFBTyxDQUFDO2FBQ2hCLGVBQWUsQ0FBQyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFbkYsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXBCLElBQUksR0FBRyxLQUFLLFVBQVUsRUFBRTtZQUN0QixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDaEM7YUFBTTtZQUNMLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDL0IsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzdCO2lCQUFNO2dCQUVMLE1BQU0sbUNBQWlCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxtQkFBUyxDQUFDLENBQUMsQ0FBQztnQkFDakUsZUFBUSxDQUFDLFFBQVEsQ0FBQyxtQkFBUyxDQUFDLENBQUM7YUFDOUI7U0FDRjtJQUNILENBQUM7Q0FDRjtBQW5FRCw0Q0FtRUM7QUFDRCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HelpUtil = void 0;
4
+ const color_1 = require("./color");
5
+ class HelpUtil {
6
+ static extractValue(text, key) {
7
+ let sub = '';
8
+ if (text.includes(key)) {
9
+ const start = text.indexOf(key);
10
+ let end = text.indexOf('\n\n', start);
11
+ if (end < 0) {
12
+ end = text.length;
13
+ }
14
+ sub = text.substring(start, end);
15
+ text = text.substring(end);
16
+ }
17
+ return [sub, text];
18
+ }
19
+ static colorizeOptions(option) {
20
+ return option.replace(/(\s*)(-[^, ]+)(,?\s*)(--\S+)?((\s+)?((?:\[[^\]]+\])|(?:\<[^>]+>)))?((\s+)(.*))?/g, (p, spacing, simpleParam, pSep, fullParam, sub, subSp, subVal, desc, descSp, descVal) => {
21
+ const line = [];
22
+ line.push(spacing, (0, color_1.color) `${{ param: simpleParam }}`, pSep, (0, color_1.color) `${{ param: fullParam }}`, subSp, (0, color_1.color) `${{ type: subVal }}`, descSp, (0, color_1.color) `${{ description: descVal }}`
23
+ .replace(/(\(default:\s+)(.*?)(\))/g, (__, l, input, r) => (0, color_1.color) `${l}${{ input }}${{ description: r }}`));
24
+ return line.filter(x => !!x).join('');
25
+ })
26
+ .replace(/Options:/, title => (0, color_1.color) `${{ title }}`);
27
+ }
28
+ static colorizeCommands(commands) {
29
+ return commands
30
+ .replace(/\s([^\[\]]\S+)/g, param => (0, color_1.color) `${{ param }}`)
31
+ .replace(/(\s*[^\x1b]\[[^\]]+\])/g, input => (0, color_1.color) `${{ input }}`)
32
+ .replace(/Commands:/, title => (0, color_1.color) `${{ title }}`);
33
+ }
34
+ static colorizeUsage(usage) {
35
+ return usage.replace(/Usage:/, title => (0, color_1.color) `${{ title }}`);
36
+ }
37
+ static getHelpText(text, extraText) {
38
+ const [usage, text2] = this.extractValue(text, 'Usage:');
39
+ const [options, text3] = this.extractValue(text2, 'Options:');
40
+ const [commands, textFinal] = this.extractValue(text3, 'Commands:');
41
+ const out = [
42
+ this.colorizeUsage(usage),
43
+ this.colorizeOptions(options),
44
+ this.colorizeCommands(commands),
45
+ textFinal
46
+ ]
47
+ .map(x => x.trim())
48
+ .filter(x => !!x)
49
+ .join('\n\n');
50
+ return `${[out, extraText].filter(x => !!x).join('\n')}\n`;
51
+ }
52
+ static showHelp(command, message, extra) {
53
+ if (message) {
54
+ console.error((0, color_1.color) `${{ failure: message }}\n`);
55
+ }
56
+ console[message ? 'error' : 'log'](HelpUtil.getHelpText(command.helpInformation(), extra));
57
+ process.exit(message ? 1 : 0);
58
+ }
59
+ }
60
+ exports.HelpUtil = HelpUtil;
61
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS90aW0vQ29kZS90cmF2ZXR0by8iLCJzb3VyY2VzIjpbIm1vZHVsZS9jbGkvc3JjL2hlbHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsbUNBQWdDO0FBSWhDLE1BQWEsUUFBUTtJQU9uQixNQUFNLENBQUMsWUFBWSxDQUFDLElBQVksRUFBRSxHQUFXO1FBQzNDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRTtnQkFDWCxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQzthQUNuQjtZQUNELEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNqQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1QjtRQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFVLENBQUM7SUFDOUIsQ0FBQztJQUtELE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBYztRQUNuQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsa0ZBQWtGLEVBQUUsQ0FDeEcsQ0FBUyxFQUFFLE9BQWUsRUFDMUIsV0FBbUIsRUFBRSxJQUFZLEVBQ2pDLFNBQWlCLEVBQUUsR0FBVyxFQUM5QixLQUFhLEVBQUUsTUFBYyxFQUM3QixJQUFZLEVBQUUsTUFBYyxFQUM1QixPQUFlLEVBQ2YsRUFBRTtZQUNGLE1BQU0sSUFBSSxHQUFhLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxDQUNQLE9B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
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CliUtil = void 0;
4
+ const timers = require("timers/promises");
5
+ const readline = require("readline");
6
+ class CliUtil {
7
+ static #waitState = '⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏'.split('');
8
+ static isBoolean(x) {
9
+ return /^(1|0|yes|no|on|off|auto|true|false)$/i.test(x);
10
+ }
11
+ static toBool(x, def) {
12
+ return x === undefined ? def :
13
+ (typeof x === 'boolean' ? x :
14
+ (this.isBoolean(x) ? /^(1|yes|on|true)$/i.test(x) :
15
+ def));
16
+ }
17
+ static toInt(l, u, v, d) {
18
+ let n = +v;
19
+ if (l === undefined && u === undefined) {
20
+ return n;
21
+ }
22
+ if (l !== undefined && n < l) {
23
+ n = d;
24
+ }
25
+ if (u !== undefined && n > u) {
26
+ n = d;
27
+ }
28
+ return n;
29
+ }
30
+ static async getCompletion(cfg, args) {
31
+ args = args.slice(0);
32
+ const cmd = args.shift();
33
+ let last = cmd;
34
+ let opts = [];
35
+ if (!cfg.task[cmd]) {
36
+ opts = cfg.all;
37
+ }
38
+ else {
39
+ last = args.pop() ?? '';
40
+ const second = args.pop() ?? '';
41
+ let flag = '';
42
+ if (last in cfg.task[cmd]) {
43
+ flag = last;
44
+ last = '';
45
+ }
46
+ else if (second in cfg.task[cmd]) {
47
+ if (cfg.task[cmd][second].includes(last)) {
48
+ flag = '';
49
+ last = '';
50
+ }
51
+ else {
52
+ flag = second;
53
+ }
54
+ }
55
+ opts = cfg.task[cmd][flag];
56
+ }
57
+ return last ? opts.filter(x => x.startsWith(last)) : opts.filter(x => !x.startsWith('-'));
58
+ }
59
+ static async rewriteLine(stream, text, clear = false) {
60
+ await new Promise(r => readline.cursorTo(stream, 0, undefined, () => {
61
+ if (clear) {
62
+ readline.clearLine(stream, 0);
63
+ }
64
+ if (text) {
65
+ stream.write(text);
66
+ readline.moveCursor(stream, 1, 0);
67
+ }
68
+ r();
69
+ }));
70
+ }
71
+ static async waiting(message, work, config = {}) {
72
+ const { stream, delay, completion } = { delay: 1000, stream: process.stderr, ...config };
73
+ const writeLine = this.rewriteLine.bind(this, stream);
74
+ if (!('then' in work)) {
75
+ work = work();
76
+ }
77
+ if (!process.stdout.isTTY) {
78
+ return work;
79
+ }
80
+ let i = -1;
81
+ let done = false;
82
+ let value;
83
+ let capturedError;
84
+ const final = work
85
+ .then(res => value = res)
86
+ .catch(err => capturedError = err)
87
+ .finally(() => done = true);
88
+ if (delay) {
89
+ await Promise.race([timers.setTimeout(delay), final]);
90
+ }
91
+ while (!done) {
92
+ await writeLine(`${this.#waitState[i = (i + 1) % this.#waitState.length]} ${message}`);
93
+ await timers.setTimeout(50);
94
+ }
95
+ if (i >= 0) {
96
+ await writeLine(completion ? `${message} ${completion}\n` : '', true);
97
+ }
98
+ if (capturedError) {
99
+ throw capturedError;
100
+ }
101
+ else {
102
+ return value;
103
+ }
104
+ }
105
+ }
106
+ exports.CliUtil = CliUtil;
107
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS90aW0vQ29kZS90cmF2ZXR0by8iLCJzb3VyY2VzIjpbIm1vZHVsZS9jbGkvc3JjL3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQTBDO0FBQzFDLHFDQUFxQztBQVFyQyxNQUFhLE9BQU87SUFFbEIsTUFBTSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTNDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBUztRQUN4QixPQUFPLHdDQUF3QyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBSUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFvQixFQUFFLEdBQWE7UUFDL0MsT0FBTyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QixDQUFDLE9BQU8sQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2pELEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFxQixFQUFFLENBQXFCLEVBQUUsQ0FBUyxFQUFFLENBQVM7UUFDN0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUN0QyxPQUFPLENBQUMsQ0FBQztTQUNWO1FBQ0QsSUFBSSxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDNUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNQO1FBQ0QsSUFBSSxDQUFDLEtBQUssU0FBUyxJ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
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DocCommand = void 0;
4
+ const path = require("path");
5
+ const fs = require("fs/promises");
6
+ const command_1 = require("@travetto/cli/src/command");
7
+ const init_1 = require("@travetto/base/bin/init");
8
+ const boot_1 = require("@travetto/boot");
9
+ class DocCommand extends command_1.CliCommand {
10
+ name = 'doc';
11
+ getOptions() {
12
+ return {
13
+ input: this.option({ desc: 'Input File', def: 'doc.ts' }),
14
+ output: this.listOption({ desc: 'Output files' }),
15
+ format: this.option({ desc: 'Format', def: 'md' }),
16
+ watch: this.boolOption({ desc: 'Watch' })
17
+ };
18
+ }
19
+ async envInit() {
20
+ init_1.EnvInit.init({
21
+ debug: '0',
22
+ append: {
23
+ TRV_SRC_LOCAL: 'doc',
24
+ TRV_RESOURCES: 'doc/resources'
25
+ },
26
+ set: {
27
+ TRV_CONSOLE_WIDTH: '140',
28
+ TRV_CLI_JSON_IPC: '',
29
+ TRV_COLOR: '0',
30
+ TRV_LOG_PLAIN: '1'
31
+ }
32
+ });
33
+ }
34
+ async action() {
35
+ console.error(process.env);
36
+ const { PhaseManager } = await Promise.resolve().then(() => require('@travetto/base'));
37
+ await PhaseManager.run('init');
38
+ const { RenderUtil } = await Promise.resolve().then(() => require('../src/render/util'));
39
+ const docFile = boot_1.PathUtil.resolveUnix(this.cmd.input);
40
+ if (this.cmd.output.length) {
41
+ const write = async () => {
42
+ RenderUtil.purge(docFile);
43
+ for (const out of this.cmd.output) {
44
+ const fmt = path.extname(out) ?? this.cmd.format;
45
+ const finalName = await boot_1.PathUtil.resolveUnix(out);
46
+ const result = await RenderUtil.render(docFile, fmt);
47
+ await fs.writeFile(finalName, result, 'utf8');
48
+ }
49
+ };
50
+ if (this.cmd.watch) {
51
+ const { WatchUtil } = await Promise.resolve().then(() => require('@travetto/watch'));
52
+ await WatchUtil.watchFile(docFile, write, true);
53
+ }
54
+ else {
55
+ try {
56
+ await write();
57
+ }
58
+ catch (err) {
59
+ console.error(boot_1.PathUtil.cwd, err);
60
+ process.exit(1);
61
+ }
62
+ }
63
+ }
64
+ else {
65
+ console.log(await RenderUtil.render(docFile, this.cmd.format));
66
+ }
67
+ }
68
+ }
69
+ exports.DocCommand = DocCommand;
70
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWRvYy5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS90aW0vQ29kZS90cmF2ZXR0by8iLCJzb3VyY2VzIjpbIm1vZHVsZS9kb2MvYmluL2NsaS1kb2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLGtDQUFrQztBQUVsQyx1REFBdUY7QUFDdkYsa0RBQWtEO0FBQ2xELHlDQUEwQztBQVkxQyxNQUFhLFVBQVcsU0FBUSxvQkFBbUI7SUFDakQsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUViLFVBQVU7UUFDUixPQUFPO1lBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUN6RCxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQztZQUNqRCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ2xELEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQzFDLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxjQUFPLENBQUMsSUFBSSxDQUFDO1lBQ1gsS0FBSyxFQUFFLEdBQUc7WUFDVixNQUFNLEVBQUU7Z0JBQ04sYUFBYSxFQUFFLEtBQUs7Z0JBQ3BCLGFBQWEsRUFBRSxlQUFlO2FBQy9CO1lBQ0QsR0FBRyxFQUFFO2dCQUNILGlCQUFpQixFQUFFLEtBQUs7Z0JBQ3hCLGdCQUFnQixFQUFFLEVBQUU7Z0JBQ3BCLFNBQVMsRUFBRSxHQUFHO2dCQUNkLGFBQWEsRUFBRSxHQUFHO2FBQ25CO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFM0IsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLDJDQUFhLGdCQUFnQixFQUFDLENBQUM7UUFFeEQsTUFBTSxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9CLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRywyQ0FBYSxvQkFBb0IsRUFBQyxDQUFDO1FBRTFELE1BQU0sT0FBTyxHQUFHLGVBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUdyRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUMxQixNQUFNLEtBQUssR0FBRyxLQUFLLElBQW1CLEVBQUU7Z0JBQ3RDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzFCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUU7b0JBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7b0JBQ2pELE1BQU0sU0FBUyxHQUFHLE1BQU0sZUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDckQsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7aUJBQy9DO1lBQ0gsQ0FBQyxDQUFDO1lBRUYsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRTtnQkFDbEIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLDJDQUFhLGlCQUFpQixFQUFDLENBQUM7Z0JBQ3RELE1BQU0sU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ2pEO2lCQUFNO2dCQUNMLElBQUk7b0JBQ0YsTUFBTSxLQUFLLEVBQUUsQ0FBQztpQkFDZjtnQkFBQyxPQUFPLEdBQUcsRUFBRTtvQkFDWixPQUFPLENBQUMsS0FBSyxDQUFDLGVBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2pCO2FBQ0Y7U0FDRjthQUFNO1lBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUNoRTtJQUNILENBQUM7Q0FDRjtBQWxFRCxnQ0FrRUM7QUFDRCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestCommand = void 0;
4
+ const os = require("os");
5
+ const fs_1 = require("fs");
6
+ const boot_1 = require("@travetto/boot");
7
+ const command_1 = require("@travetto/cli/src/command");
8
+ const init_1 = require("@travetto/base/bin/init");
9
+ const modes = ['single', 'standard'];
10
+ class TestCommand extends command_1.CliCommand {
11
+ name = 'test';
12
+ _types;
13
+ getTypes() {
14
+ if (!this._types) {
15
+ this._types = boot_1.ScanFs.scanDirSync({}, boot_1.PathUtil.resolveUnix(__dirname, '..', 'src/consumer/types/'))
16
+ .filter(x => x.stats?.isFile())
17
+ .map(x => (0, fs_1.readFileSync)(x.file, 'utf8').match(/@Consumable[(]'([^']+)/)?.[1])
18
+ .filter((x) => !!x);
19
+ }
20
+ return this._types;
21
+ }
22
+ getOptions() {
23
+ return {
24
+ format: this.choiceOption({ desc: 'Output format for test results', def: 'tap', choices: this.getTypes() }),
25
+ concurrency: this.intOption({ desc: 'Number of tests to run concurrently', lower: 1, upper: 32, def: Math.min(4, os.cpus().length - 1) }),
26
+ isolated: this.boolOption({ desc: 'Isolated mode' }),
27
+ mode: this.choiceOption({ desc: 'Test run mode', def: 'standard', choices: [...modes] })
28
+ };
29
+ }
30
+ envInit() {
31
+ init_1.EnvInit.init({
32
+ debug: '0',
33
+ set: { TRV_LOG_TIME: '0' },
34
+ append: {
35
+ TRV_RESOURCES: 'test/resources',
36
+ TRV_PROFILES: 'test',
37
+ TRV_SRC_LOCAL: '^test',
38
+ TRV_SRC_COMMON: '^test-support'
39
+ }
40
+ });
41
+ }
42
+ getArgs() {
43
+ return '[regexes...]';
44
+ }
45
+ async isFile(file, errorIfNot) {
46
+ try {
47
+ const stat = await boot_1.FsUtil.exists(file);
48
+ const res = stat?.isFile();
49
+ if (res) {
50
+ return true;
51
+ }
52
+ }
53
+ catch { }
54
+ if (errorIfNot) {
55
+ await this.showHelp(errorIfNot);
56
+ }
57
+ }
58
+ async onSingle(state, file) {
59
+ await this.isFile(file, 'You must specify a proper test file to run in single mode');
60
+ state.mode = 'single';
61
+ }
62
+ async onStandard(state, first) {
63
+ const isFile = await this.isFile(first);
64
+ if (!first) {
65
+ state.args = state.isolated ? ['test-isolated/.*'] : ['test/.*'];
66
+ state.concurrency = (state.isolated ? 1 : undefined) ?? state.concurrency;
67
+ }
68
+ else if (isFile) {
69
+ if (first.startsWith('test-')) {
70
+ state.isolated = true;
71
+ }
72
+ if (/test(\-[^-]+)?\//.test(first)) {
73
+ await this.onSingle(state, first);
74
+ }
75
+ else {
76
+ await this.showHelp('Only files in the test/ and test-*/ folders are permitted to be run');
77
+ }
78
+ }
79
+ }
80
+ async action(regexes) {
81
+ const { runTests } = await Promise.resolve().then(() => require('./lib/run'));
82
+ const [first] = regexes;
83
+ const state = {
84
+ args: regexes,
85
+ mode: this.cmd.mode,
86
+ concurrency: +this.cmd.concurrency,
87
+ isolated: this.cmd.isolated,
88
+ format: this.cmd.format
89
+ };
90
+ switch (state.mode) {
91
+ case 'single':
92
+ await this.onSingle(state, first);
93
+ break;
94
+ case 'standard':
95
+ await this.onStandard(state, first);
96
+ break;
97
+ }
98
+ await runTests(state);
99
+ }
100
+ }
101
+ exports.TestCommand = TestCommand;
102
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXRlc3QuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdGltL0NvZGUvdHJhdmV0dG8vIiwic291cmNlcyI6WyJtb2R1bGUvdGVzdC9iaW4vY2xpLXRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUJBQXlCO0FBQ3pCLDJCQUFrQztBQUVsQyx5Q0FBMEQ7QUFDMUQsdURBQXFFO0FBQ3JFLGtEQUFrRDtBQUlsRCxNQUFNLEtBQUssR0FBRyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQVUsQ0FBQztBQVk5QyxNQUFhLFdBQVksU0FBUSxvQkFBbUI7SUFDbEQsSUFBSSxHQUFHLE1BQU0sQ0FBQztJQUNkLE1BQU0sQ0FBVztJQUVqQixRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFDakMsZUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixDQUFDLENBQzdEO2lCQUNFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7aUJBQzlCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUEsaUJBQVksRUFBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzNFLE1BQU0sQ0FBQyxDQUFDLENBQVUsRUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTztZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxFQUFFLGdDQUFnQyxFQUFFLEdBQUcsRUFBRSxL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
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runTests = void 0;
4
+ async function runTests(opts) {
5
+ const { PhaseManager, Util } = await Promise.resolve().then(() => require('@travetto/base'));
6
+ await PhaseManager.run('init', '*', ['@trv:registry/init']);
7
+ const { RunnerUtil } = await Promise.resolve().then(() => require('../../src/execute/util'));
8
+ const { Runner } = await Promise.resolve().then(() => require('../../src/execute/runner'));
9
+ RunnerUtil.registerCleanup('runner');
10
+ if (process.env.TRV_TEST_DELAY) {
11
+ await Util.wait(process.env.TRV_TEST_DELAY);
12
+ }
13
+ try {
14
+ const res = await new Runner(opts).run();
15
+ process.exit(res ? 0 : 1);
16
+ }
17
+ catch (err) {
18
+ console.error('Test Worker Failed', { error: err });
19
+ process.exit(1);
20
+ }
21
+ }
22
+ exports.runTests = runTests;
23
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3RpbS9Db2RlL3RyYXZldHRvLyIsInNvdXJjZXMiOlsibW9kdWxlL3Rlc3QvYmluL2xpYi9ydW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZU8sS0FBSyxVQUFVLFFBQVEsQ0FBQyxJQUFjO0lBQzNDLE1BQU0sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEdBQUcsMkNBQWEsZ0JBQWdCLEVBQUMsQ0FBQztJQUM5RCxNQUFNLFlBQVksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztJQUU1RCxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsMkNBQWEsd0JBQXdCLEVBQUMsQ0FBQztJQUM5RCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsMkNBQWEsMEJBQTBCLEVBQUMsQ0FBQztJQUU1RCxVQUFVLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXJDLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUU7UUFDOUIsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7S0FDN0M7SUFFRCxJQUFJO1FBQ0YsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN6QyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMzQjtJQUFDLE9BQU8sR0FBRyxFQUFFO1FBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7QUFDSCxDQUFDO0FBcEJELDRCQW9CQztBQUNELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMifQ==
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.main = exports.customLogs = void 0;
4
+ const fs_1 = require("fs");
5
+ const boot_1 = require("@travetto/boot");
6
+ const init_1 = require("@travetto/base/bin/init");
7
+ async function customLogs() {
8
+ const { ConsoleManager } = await Promise.resolve().then(() => require('@travetto/base'));
9
+ const c = new console.Console({
10
+ stdout: (0, fs_1.createWriteStream)(boot_1.AppCache.toEntryName(`test-worker.${process.pid}.log`), { flags: 'a' }),
11
+ inspectOptions: { depth: 4 },
12
+ });
13
+ ConsoleManager.set({
14
+ onLog: (level, ctx, args) => c[level](process.pid, ctx, ...args)
15
+ });
16
+ }
17
+ exports.customLogs = customLogs;
18
+ async function main() {
19
+ init_1.EnvInit.init({
20
+ debug: '0',
21
+ set: { TRV_LOG_TIME: '0' },
22
+ append: {
23
+ TRV_RESOURCES: 'test/resources',
24
+ TRV_PROFILES: 'test',
25
+ TRV_SRC_LOCAL: '^test',
26
+ TRV_SRC_COMMON: '^test-support'
27
+ }
28
+ });
29
+ await customLogs();
30
+ const { PhaseManager } = await Promise.resolve().then(() => require('@travetto/base'));
31
+ await PhaseManager.run('init', '@trv:base/load');
32
+ const { TestChildWorker } = await Promise.resolve().then(() => require('../src/worker/child'));
33
+ return new TestChildWorker().activate();
34
+ }
35
+ exports.main = main;
36
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1jaGlsZC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS90aW0vQ29kZS90cmF2ZXR0by8iLCJzb3VyY2VzIjpbIm1vZHVsZS90ZXN0L2Jpbi90ZXN0LWNoaWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJCQUF1QztBQUV2Qyx5Q0FBMEM7QUFDMUMsa0RBQWtEO0FBRTNDLEtBQUssVUFBVSxVQUFVO0lBQzlCLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRywyQ0FBYSxnQkFBZ0IsRUFBQyxDQUFDO0lBRTFELE1BQU0sQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUM1QixNQUFNLEVBQUUsSUFBQSxzQkFBaUIsRUFBQyxlQUFRLENBQUMsV0FBVyxDQUFDLGVBQWUsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDakcsY0FBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtLQUM3QixDQUFDLENBQUM7SUFFSCxjQUFjLENBQUMsR0FBRyxDQUFDO1FBQ2pCLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7S0FDNUUsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQVhELGdDQVdDO0FBRU0sS0FBSyxVQUFVLElBQUk7SUFDeEIsY0FBTyxDQUFDLElBQUksQ0FBQztRQUNYLEtBQUssRUFBRSxHQUFHO1FBQ1YsR0FBRyxFQUFFLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRTtRQUMxQixNQUFNLEVBQUU7WUFDTixhQUFhLEVBQUUsZ0JBQWdCO1lBQy9CLFlBQVksRUFBRSxNQUFNO1lBQ3BCLGFBQWEsRUFBRSxPQUFPO1lBQ3RCLGNBQWMsRUFBRSxlQUFlO1NBQ2hDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxVQUFVLEVBQUUsQ0FBQztJQUVuQixNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsMkNBQWEsZ0JBQWdCLEVBQUMsQ0FBQztJQUN4RCxNQUFNLFlBQVksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFFakQsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLDJDQUFhLHFCQUFxQixFQUFDLENBQUM7SUFDaEUsT0FBTyxJQUFJLGVBQWUsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQzFDLENBQUM7QUFuQkQsb0JBbUJDO0FBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyJ9
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.main = void 0;
4
+ const init_1 = require("@travetto/base/bin/init");
5
+ const run_1 = require("./lib/run");
6
+ function main(...args) {
7
+ init_1.EnvInit.init({
8
+ debug: '0',
9
+ set: { TRV_LOG_TIME: '0' },
10
+ append: {
11
+ TRV_RESOURCES: 'test/resources',
12
+ TRV_PROFILES: 'test',
13
+ TRV_SRC_LOCAL: '^test',
14
+ TRV_SRC_COMMON: '^test-support'
15
+ }
16
+ });
17
+ return (0, run_1.runTests)({
18
+ args,
19
+ format: process.env.TRV_TEST_FORMAT ?? 'tap',
20
+ mode: 'single',
21
+ concurrency: 1
22
+ });
23
+ }
24
+ exports.main = main;
25
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1kaXJlY3QuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvdGltL0NvZGUvdHJhdmV0dG8vIiwic291cmNlcyI6WyJtb2R1bGUvdGVzdC9iaW4vdGVzdC1kaXJlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQWtEO0FBQ2xELG1DQUFxQztBQUdyQyxTQUFnQixJQUFJLENBQUMsR0FBRyxJQUFjO0lBQ3BDLGNBQU8sQ0FBQyxJQUFJLENBQUM7UUFDWCxLQUFLLEVBQUUsR0FBRztRQUNWLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUU7UUFDMUIsTUFBTSxFQUFFO1lBQ04sYUFBYSxFQUFFLGdCQUFnQjtZQUMvQixZQUFZLEVBQUUsTUFBTTtZQUNwQixhQUFhLEVBQUUsT0FBTztZQUN0QixjQUFjLEVBQUUsZUFBZTtTQUNoQztLQUNGLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBQSxjQUFRLEVBQUM7UUFDZCxJQUFJO1FBQ0osTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLEtBQUs7UUFDNUMsSUFBSSxFQUFFLFFBQVE7UUFDZCxXQUFXLEVBQUUsQ0FBQztLQUNmLENBQUMsQ0FBQztBQUNMLENBQUM7QUFsQkQsb0JBa0JDO0FBQ0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyJ9
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.main = void 0;
4
+ const init_1 = require("@travetto/base/bin/init");
5
+ async function main(format = 'tap') {
6
+ init_1.EnvInit.init({
7
+ debug: '0',
8
+ set: { TRV_LOG_TIME: '0' },
9
+ dynamic: true,
10
+ append: {
11
+ TRV_RESOURCES: 'test/resources',
12
+ TRV_PROFILES: 'test',
13
+ TRV_SRC_LOCAL: 'test',
14
+ TRV_SRC_COMMON: '^test-support'
15
+ }
16
+ });
17
+ const { PhaseManager } = await Promise.resolve().then(() => require('@travetto/base'));
18
+ await PhaseManager.run('init', '@trv:base/load');
19
+ (await Promise.resolve().then(() => require('@travetto/compiler'))).Compiler.getProgram();
20
+ const { TestWatcher } = await Promise.resolve().then(() => require('../src/execute/watcher'));
21
+ await TestWatcher.watch(format);
22
+ }
23
+ exports.main = main;
24
+ Object.defineProperty(exports, 'ᚕtrv', { configurable: true, value: true });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC13YXRjaC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS90aW0vQ29kZS90cmF2ZXR0by8iLCJzb3VyY2VzIjpbIm1vZHVsZS90ZXN0L2Jpbi90ZXN0LXdhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtEQUFrRDtBQUUzQyxLQUFLLFVBQVUsSUFBSSxDQUFDLFNBQWlCLEtBQUs7SUFDL0MsY0FBTyxDQUFDLElBQUksQ0FBQztRQUNYLEtBQUssRUFBRSxHQUFHO1FBQ1YsR0FBRyxFQUFFLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRTtRQUMxQixPQUFPLEVBQUUsSUFBSTtRQUNiLE1BQU0sRUFBRTtZQUNOLGFBQWEsRUFBRSxnQkFBZ0I7WUFDL0IsWUFBWSxFQUFFLE1BQU07WUFDcEIsYUFBYSxFQUFFLE1BQU07WUFDckIsY0FBYyxFQUFFLGVBQWU7U0FDaEM7S0FDRixDQUFDLENBQUM7SUFHSCxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsMkNBQWEsZ0JBQWdCLEVBQUMsQ0FBQztJQUN4RCxNQUFNLFlBQVksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFHakQsQ0FBQywyQ0FBYSxvQkFBb0IsRUFBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRTNELE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRywyQ0FBYSx3QkFBd0IsRUFBQyxDQUFDO0lBQy9ELE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBdEJELG9CQXNCQztBQUNELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMifQ==
@@ -0,0 +1,26 @@
1
+ {
2
+ "env": {
3
+ "TIME": 1662386280007,
4
+ "NODE_PATH": ":/home/tim/Code/travetto/.bin",
5
+ "PATH": "/home/tim/.npm-global/bin:/home/tim/.npm/bin:/home/tim/go/bin:/home/tim/.local/bin:/home/tim/.nvm/versions/node/v17.9.1/bin:/home/tim/.npm-global/bin:/home/tim/.npm/bin:/home/tim/go/bin:/home/tim/.local/bin:/home/tim/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/tim/Code/travetto/.bin",
6
+ "TRV_CLI_JSON_IPC": "/home/tim/Code/travetto/.trv_cache/trv_ipc_vscode_131120.ndjson",
7
+ "TRV_CLI_LOCAL": "0",
8
+ "TRV_DEV": "/home/tim/Code/travetto/module",
9
+ "TRV_DEV_ROOT": "/home/tim/Code/travetto",
10
+ "TRV_DOC_BRANCH": "main",
11
+ "TRV_REQUIRES": "/home/tim/Code/travetto/.bin/dev-register.js"
12
+ },
13
+ "entries": {
14
+ "@travetto/test": null,
15
+ "@travetto/cli": null,
16
+ "@travetto/doc": null,
17
+ "@travetto/base": null,
18
+ "@travetto/transformer": null,
19
+ "@travetto/registry": null,
20
+ "@travetto/watch": null,
21
+ "@travetto/worker": null,
22
+ "@travetto/yaml": null,
23
+ "@travetto/boot": null,
24
+ "@travetto/compiler": null
25
+ }
26
+ }
@@ -15,8 +15,11 @@ export const FEATURES: Feature[] = [
15
15
  npm: '@travetto/rest',
16
16
  choices: [
17
17
  { title: 'Express.js', npm: '@travetto/rest-express' },
18
+ { title: 'Express.js Lambda', npm: '@travetto/rest-express-lambda' },
18
19
  { title: 'KOA', npm: '@travetto/rest-koa' },
20
+ { title: 'KOA Lambda', npm: '@travetto/rest-koa-lambda' },
19
21
  { title: 'Fastify', npm: '@travetto/rest-fastify' },
22
+ { title: 'Fastify Lambda', npm: '@travetto/rest-fastify-lambda' },
20
23
  ],
21
24
  addons: [
22
25
  { title: 'OpenAPI', npm: '@travetto/openapi' },
@@ -28,7 +31,10 @@ export const FEATURES: Feature[] = [
28
31
  {
29
32
  title: 'Rest Authentication',
30
33
  npm: '@travetto/auth-rest',
31
- addons: [{ title: 'Rest Session', npm: '@travetto/rest-session' }]
34
+ addons: [
35
+ { title: 'Rest Session', npm: '@travetto/rest-session', addons: [{ npm: '@travetto/auth-rest-session' }] },
36
+ { title: 'Context', npm: '@travetto/auth-rest-session' }
37
+ ]
32
38
  },
33
39
  {
34
40
  title: 'Data Modelling',
@@ -36,8 +42,9 @@ export const FEATURES: Feature[] = [
36
42
  choices: [
37
43
  { title: 'Elasticsearch', npm: '@travetto/model-elasticsearch' },
38
44
  { title: 'MongoDB', npm: '@travetto/model-mongo' },
39
- { title: 'MySQL', npm: '@travetto/model-sql', addons: [{ npm: 'mysql' }] },
40
- { title: 'PostgreSQL', npm: '@travetto/model-sql', addons: [{ npm: 'pg' }] }
45
+ { title: 'MySQL', npm: '@travetto/model-mysql' },
46
+ { title: 'PostgreSQL', npm: '@travetto/model-postgres' },
47
+ { title: 'SQLite', npm: '@travetto/model-sqlite' }
41
48
  ],
42
49
  default: 'MongoDB'
43
50
  },
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@travetto/scaffold",
3
3
  "displayName": "App Scaffold",
4
- "version": "2.2.5",
4
+ "version": "3.0.0-rc.1",
5
5
  "description": "App Scaffold for the Travetto framework",
6
6
  "keywords": [
7
7
  "generator",
@@ -32,8 +32,8 @@
32
32
  "trv-scaffold": "./bin/trv-scaffold.js"
33
33
  },
34
34
  "dependencies": {
35
- "@travetto/boot": "^2.2.2",
36
- "@travetto/cli": "^2.2.4",
35
+ "@travetto/boot": "^3.0.0-rc.0",
36
+ "@travetto/cli": "^3.0.0-rc.1",
37
37
  "mustache": "^4.2.0",
38
38
  "enquirer": "^2.3.6"
39
39
  },
@@ -41,6 +41,7 @@
41
41
  "@types/mustache": "^4.2.1"
42
42
  },
43
43
  "docDependencies": {
44
+ "@travetto/auth-rest-context": true,
44
45
  "@travetto/auth-rest": true,
45
46
  "@travetto/model": true,
46
47
  "@travetto/model-query": true
@@ -12,9 +12,10 @@
12
12
  "@travetto/pack": "^{{{frameworkVersion}}}"
13
13
  },
14
14
  "devDependencies": {
15
- "eslint": "^7.22.0",
16
- "@typescript-eslint/eslint-plugin": "^4.17.0",
17
- "@typescript-eslint/parser": "^4.17.0"
15
+ "@types/eslint": "^8.4.6",
16
+ "@typescript-eslint/eslint-plugin": "^5.36.1",
17
+ "@typescript-eslint/parser": "^5.36.1",
18
+ "eslint": "^8.23.0",
18
19
  },
19
20
  "description": "A Travetto-based project",
20
21
  "keywords": [
@@ -4,8 +4,11 @@ import { Inject } from '@travetto/di';
4
4
  import { ModelQuery, ModelQueryCrudSupport } from '@travetto/model-query';
5
5
  import { Schema } from '@travetto/schema';
6
6
  // {{#modules.auth-rest}} // @doc-exclude
7
- import { Authenticated, AuthContextService } from '@travetto/auth-rest'; // @doc-exclude
7
+ import { Authenticated } from '@travetto/auth-rest'; // @doc-exclude
8
8
  // {{/modules.auth-rest}} // @doc-exclude
9
+ // {{#modules.auth-rest-context}} // @doc-exclude
10
+ import { AuthContextService } from '@travetto/auth-rest-context';
11
+ // {{/modules.auth-rest-context}} // @doc-exclude
9
12
 
10
13
  import { Todo } from '../model/todo';
11
14
 
@@ -26,10 +29,10 @@ export class TodoController {
26
29
  @Inject()
27
30
  source: ModelQueryCrudSupport;
28
31
 
29
- // {{#modules.auth-rest}} // @doc-exclude
32
+ // {{#modules.auth-rest-context}} // @doc-exclude
30
33
  @Inject() // @doc-exclude
31
34
  auth: AuthContextService; // @doc-exclude
32
- // {{/modules.auth-rest}} // @doc-exclude
35
+ // {{/modules.auth-rest-context}} // @doc-exclude
33
36
 
34
37
  /**
35
38
  * Get all Todos
@@ -37,9 +40,9 @@ export class TodoController {
37
40
  @Get('/')
38
41
  async getAll(query: Query): Promise<Todo[]> {
39
42
  query.q ??= {};
40
- // {{#modules.auth-rest}} // @doc-exclude
43
+ // {{#modules.auth-rest-context}} // @doc-exclude
41
44
  query.q.userId = this.auth.get()?.id; // @doc-exclude
42
- // {{/modules.auth-rest}} // @doc-exclude
45
+ // {{/modules.auth-rest-context}} // @doc-exclude
43
46
  return this.source.query(Todo, { where: query.q });
44
47
  }
45
48
 
@@ -49,11 +52,11 @@ export class TodoController {
49
52
  @Get('/:id')
50
53
  async getOne(id: string): Promise<Todo> {
51
54
  const q: ModelQuery<Todo> = { where: { id } };
52
- // {{#modules.auth-rest}} // @doc-exclude
55
+ // {{#modules.auth-rest-context}} // @doc-exclude
53
56
  if (typeof q.where !== 'string') {
54
57
  q.where!.userId = this.auth.get()?.id; // @doc-exclude
55
58
  }
56
- // {{/modules.auth-rest}} // @doc-exclude
59
+ // {{/modules.auth-rest-context}} // @doc-exclude
57
60
  return this.source.queryOne(Todo, q);
58
61
  }
59
62
 
@@ -62,9 +65,9 @@ export class TodoController {
62
65
  */
63
66
  @Post('/')
64
67
  async save(todo: Todo): Promise<Todo> {
65
- // {{#modules.auth-rest}} // @doc-exclude
68
+ // {{#modules.auth-rest-context}} // @doc-exclude
66
69
  todo.userId = this.auth.get()?.id; // @doc-exclude
67
- // {{/modules.auth-rest}} // @doc-exclude
70
+ // {{/modules.auth-rest-context}} // @doc-exclude
68
71
  return this.source.create(Todo, todo);
69
72
  }
70
73
 
@@ -73,9 +76,9 @@ export class TodoController {
73
76
  */
74
77
  @Put('/:id')
75
78
  async update(todo: Todo): Promise<Todo> {
76
- // {{#modules.auth-rest}} // @doc-exclude
79
+ // {{#modules.auth-rest-context}} // @doc-exclude
77
80
  todo.userId = this.auth.get()?.id; // @doc-exclude
78
- // {{/modules.auth-rest}} // @doc-exclude
81
+ // {{/modules.auth-rest-context}} // @doc-exclude
79
82
  return this.source.update(Todo, todo);
80
83
  }
81
84
 
@@ -85,11 +88,11 @@ export class TodoController {
85
88
  @Delete('/:id')
86
89
  async remove(id: string): Promise<void> {
87
90
  const q: ModelQuery<Todo> = { where: { id } };
88
- // {{#modules.auth-rest}} // @doc-exclude
91
+ // {{#modules.auth-rest-context}} // @doc-exclude
89
92
  if (typeof q.where !== 'string') {
90
93
  q.where!.userId = this.auth.get()?.id; // @doc-exclude
91
94
  }
92
- // {{/modules.auth-rest}} // @doc-exclude
95
+ // {{/modules.auth-rest-context}} // @doc-exclude
93
96
  if (await this.source.deleteByQuery(Todo, q) !== 1) {
94
97
  throw new NotFoundError(Todo, id);
95
98
  }