@jujulego/jill 2.5.0 → 2.5.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.
@@ -1,5 +1,7 @@
1
+ import { Logger } from '@jujulego/logger';
1
2
  import { type ArgumentsCamelCase, type Argv } from 'yargs';
2
- import { TaskCommand } from '@/src/modules/task-command.tsx';
3
+ import { ITaskCommandArgs, TaskCommand } from '@/src/modules/task-command.tsx';
4
+ import type { Project } from '@/src/project/project.ts';
3
5
  import { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';
4
6
  export interface IExecCommandArgs {
5
7
  command: string;
@@ -7,13 +9,17 @@ export interface IExecCommandArgs {
7
9
  'deps-mode': WorkspaceDepsMode;
8
10
  }
9
11
  export declare class ExecCommand extends TaskCommand<IExecCommandArgs> {
12
+ private _logger;
13
+ readonly project: Project;
10
14
  readonly workspace: Workspace;
11
- builder(parser: Argv): Argv<import("@/src/modules/task-command.tsx").ITaskCommandArgs & {
15
+ constructor(logger: Logger);
16
+ builder(parser: Argv): Argv<ITaskCommandArgs & {
12
17
  command: string;
13
18
  } & {
14
19
  "build-script": string;
15
20
  } & {
16
21
  "deps-mode": "all";
17
22
  }>;
18
- prepare(args: ArgumentsCamelCase<IExecCommandArgs>): AsyncGenerator<import("../index.ts").CommandTask, void, unknown>;
23
+ prepare(args: ArgumentsCamelCase<IExecCommandArgs>): AsyncGenerator<import("../index.ts").ScriptTask, void, unknown>;
24
+ handler(args: ArgumentsCamelCase<IExecCommandArgs & ITaskCommandArgs>): Promise<void>;
19
25
  }
@@ -1,11 +1,12 @@
1
1
  import { _ } from '@swc/helpers/_/_ts_decorate';
2
2
  import { _ as _$1 } from '@swc/helpers/_/_ts_param';
3
- import { Logger } from '@jujulego/logger';
3
+ import { Logger, withLabel } from '@jujulego/logger';
4
4
  import { inject } from 'inversify';
5
5
  import symbols from 'log-symbols';
6
- import { b as LazyCurrentProject, L as LoadProject, T as TaskExpressionService, k as TaskExpressionError, l as TaskSyntaxError, S as ScriptsFilter, a as PrivateFilter, A as AffectedFilter, P as Pipeline, d as LazyCurrentWorkspace, c as LoadWorkspace, W as WorkspaceTree, f as Plugin } from './workspace-tree-RzT8Bsb2.js';
7
- import { f as Command, E as ExitException, I as InkCommand, y as printJson, a as List } from './ink-command-libMC9Gc.js';
8
- import { T as TaskCommand } from './jill.application-CFM4p02J.js';
6
+ import { b as LazyCurrentProject, L as LoadProject, T as TaskExpressionService, k as TaskExpressionError, l as TaskSyntaxError, S as ScriptsFilter, a as PrivateFilter, A as AffectedFilter, P as Pipeline, d as LazyCurrentWorkspace, c as LoadWorkspace, j as combine, W as WorkspaceTree, f as Plugin } from './workspace-tree-BJ9EO1FB.js';
7
+ import { f as Command, E as ExitException, I as InkCommand, y as printJson, a as List } from './ink-command-dQCqkmg0.js';
8
+ import { T as TaskCommand } from './jill.application-BEjmcH4e.js';
9
+ import cp from 'node:child_process';
9
10
  import { jsx } from 'react/jsx-runtime';
10
11
  import chalk from 'chalk';
11
12
  import path from 'node:path';
@@ -160,6 +161,11 @@ EachCommand = _([
160
161
  ], EachCommand);
161
162
 
162
163
  class ExecCommand extends TaskCommand {
164
+ // Constructor
165
+ constructor(logger){
166
+ super();
167
+ this._logger = logger.child(withLabel("exec"));
168
+ }
163
169
  // Methods
164
170
  builder(parser) {
165
171
  return this.addTaskOptions(parser).positional("command", {
@@ -184,19 +190,67 @@ class ExecCommand extends TaskCommand {
184
190
  });
185
191
  }
186
192
  async *prepare(args) {
187
- // Extract arguments
188
- const rest = args._.map((arg)=>arg.toString());
189
- if (rest[0] === "exec") {
190
- rest.splice(0, 1);
193
+ // Generators
194
+ const generators = [];
195
+ switch(args.depsMode ?? "all"){
196
+ case "all":
197
+ generators.unshift(this.workspace.devDependencies());
198
+ // eslint-disable-next no-fallthrough
199
+ case "prod":
200
+ generators.unshift(this.workspace.dependencies());
201
+ }
202
+ // Build deps
203
+ for await (const dep of combine(...generators)){
204
+ const build = await dep.build({
205
+ buildScript: args.buildScript,
206
+ buildDeps: args.depsMode
207
+ });
208
+ if (build) {
209
+ yield build;
210
+ }
211
+ }
212
+ }
213
+ async handler(args) {
214
+ await super.handler(args);
215
+ if (!args.plan) {
216
+ this.app.unmount();
217
+ // Extract arguments
218
+ const rest = args._.map((arg)=>arg.toString());
219
+ if (rest[0] === "exec") {
220
+ rest.splice(0, 1);
221
+ }
222
+ // Execute command
223
+ const pm = await this.project.packageManager();
224
+ let command = args.command;
225
+ if (pm === "yarn") {
226
+ command = "yarn";
227
+ rest.unshift("exec", args.command);
228
+ }
229
+ this._logger.debug`${command} ${rest.join(" ")}`;
230
+ const child = cp.spawn(command, rest, {
231
+ stdio: "inherit",
232
+ cwd: this.workspace.cwd,
233
+ env: {
234
+ ...process.env,
235
+ FORCE_COLOR: "1"
236
+ },
237
+ shell: true,
238
+ windowsHide: true
239
+ });
240
+ const code = await new Promise((resolve)=>{
241
+ child.on("close", (code)=>{
242
+ resolve(code ?? 0);
243
+ });
244
+ });
245
+ if (code) {
246
+ throw new ExitException(code);
247
+ }
191
248
  }
192
- // Run script in workspace
193
- const task = await this.workspace.exec(args.command, rest, {
194
- buildScript: args.buildScript,
195
- buildDeps: args.depsMode
196
- });
197
- yield task;
198
249
  }
199
250
  }
251
+ _([
252
+ LazyCurrentProject()
253
+ ], ExecCommand.prototype, "project", void 0);
200
254
  _([
201
255
  LazyCurrentWorkspace()
202
256
  ], ExecCommand.prototype, "workspace", void 0);
@@ -211,7 +265,8 @@ ExecCommand = _([
211
265
  LoadProject,
212
266
  LoadWorkspace
213
267
  ]
214
- })
268
+ }),
269
+ _$1(0, inject(Logger))
215
270
  ], ExecCommand);
216
271
 
217
272
  class GroupCommand extends TaskCommand {
@@ -597,4 +652,4 @@ CorePlugin = _([
597
652
  ], CorePlugin);
598
653
 
599
654
  export { CorePlugin };
600
- //# sourceMappingURL=core.plugin-D2E-d42P.js.map
655
+ //# sourceMappingURL=core.plugin-D4KeO5G0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.plugin-D4KeO5G0.js","sources":["../src/commands/each.ts","../src/commands/exec.ts","../src/commands/group.ts","../src/commands/list.tsx","../src/commands/run.ts","../src/commands/tree.tsx","../src/core.plugin.ts"],"sourcesContent":["import { Logger } from '@jujulego/logger';\nimport { inject } from 'inversify';\nimport symbols from 'log-symbols';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { AffectedFilter } from '@/src/filters/affected.filter.ts';\nimport { Pipeline } from '@/src/filters/pipeline.ts';\nimport { PrivateFilter } from '@/src/filters/private.filter.ts';\nimport { ScriptsFilter } from '@/src/filters/scripts.filter.ts';\nimport { LazyCurrentProject, LoadProject } from '@/src/middlewares/load-project.ts';\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { type Project } from '@/src/project/project.ts';\nimport { type WorkspaceDepsMode } from '@/src/project/workspace.ts';\nimport { TaskExpressionError, TaskSyntaxError } from '@/src/tasks/errors.ts';\nimport { TaskExpressionService } from '@/src/tasks/task-expression.service.ts';\nimport { ExitException } from '@/src/utils/exit.ts';\n\n// Types\nexport interface EachCommandArgs {\n expr: string;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n 'allow-no-workspaces'?: boolean;\n\n // Filters\n private?: boolean;\n\n // Affected filter\n affected: string;\n 'affected-rev-fallback': string;\n 'affected-rev-sort'?: string;\n}\n\n// Command\n@Command({\n command: 'each <expr>',\n describe: 'Run a task expression in many workspace, after having built all theirs dependencies.',\n middlewares: [\n LoadProject\n ]\n})\nexport class EachCommand extends TaskCommand<EachCommandArgs> {\n // Lazy injections\n @LazyCurrentProject()\n readonly project: Project;\n\n // Constructor\n constructor(\n @inject(Logger)\n private readonly logger: Logger,\n @inject(TaskExpressionService)\n private readonly taskExpression: TaskExpressionService,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv): Argv<EachCommandArgs> {\n return this.addTaskOptions(parser)\n // Run options\n .positional('expr', {\n type: 'string',\n demandOption: true,\n desc: 'Script or task expression',\n })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\n choice: ['all', 'prod', 'none'],\n default: 'all' as const,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n .option('allow-no-workspaces', {\n type: 'boolean',\n default: false,\n desc: 'Allow no matching workspaces. Without it jill will exit with code 1 if no workspace matches',\n })\n\n // Filters\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev) => rev === '' ? 'master' : rev,\n group: 'Filters:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master. Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Filters:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Filters:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n\n // Config\n .strict(false)\n .parserConfiguration({\n 'unknown-options-as-args': true,\n });\n }\n\n async *prepare(argv: ArgumentsCamelCase<EachCommandArgs>) {\n let empty = true;\n\n try {\n // Extract expression\n const expr = argv._.map(arg => arg.toString());\n\n if (expr[0] === 'each') {\n expr.splice(0, 1);\n }\n\n expr.unshift(argv.expr);\n\n const tree = this.taskExpression.parse(expr.join(' '));\n const scripts = Array.from(this.taskExpression.extractScripts(tree));\n\n // Create script tasks\n const pipeline = this._preparePipeline(argv, scripts);\n\n for await (const wks of pipeline.filter(this.project.workspaces())) {\n const task = await this.taskExpression.buildTask(tree.roots[0], wks, {\n buildScript: argv.buildScript,\n buildDeps: argv.depsMode,\n });\n\n if (task) {\n yield task;\n empty = false;\n }\n }\n } catch (err) {\n if (err instanceof TaskExpressionError) {\n this.logger.error(err.message);\n throw new ExitException(1);\n }\n\n if (err instanceof TaskSyntaxError) {\n this.logger.error(`Syntax error in task expression: ${err.message}`);\n throw new ExitException(1);\n }\n\n throw err;\n }\n\n if (empty) {\n this.logger.error(`${symbols.error} No matching workspace found !`);\n\n if (argv.allowNoWorkspaces === false) {\n throw new ExitException(1);\n }\n }\n }\n\n private _preparePipeline(argv: ArgumentsCamelCase<EachCommandArgs>, scripts: string[]): Pipeline {\n const pipeline = new Pipeline();\n pipeline.add(new ScriptsFilter(scripts, true));\n\n if (argv.private !== undefined) {\n pipeline.add(new PrivateFilter(argv.private));\n }\n\n if (argv.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n argv.affected,\n argv.affectedRevFallback,\n argv.affectedRevSort\n ));\n }\n\n return pipeline;\n }\n}\n","import { Logger, withLabel } from '@jujulego/logger';\nimport { inject } from 'inversify';\nimport cp from 'node:child_process';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { Command } from '@/src/modules/command.ts';\nimport { ITaskCommandArgs, TaskCommand } from '@/src/modules/task-command.tsx';\nimport { LazyCurrentProject, LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport type { Project } from '@/src/project/project.ts';\nimport { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';\nimport { ExitException } from '@/src/utils/exit.ts';\nimport { combine } from '@/src/utils/streams.ts';\n\n// Types\nexport interface IExecCommandArgs {\n command: string;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\n@Command({\n command: 'exec <command>',\n aliases: ['$0'],\n describe: 'Run command inside workspace, after all its dependencies has been built.',\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class ExecCommand extends TaskCommand<IExecCommandArgs> {\n // Attributes\n private _logger: Logger;\n\n // Lazy injections\n @LazyCurrentProject()\n readonly project: Project;\n\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Constructor\n constructor(\n @inject(Logger) logger: Logger,\n ) {\n super();\n\n this._logger = logger.child(withLabel('exec'));\n }\n\n // Methods\n builder(parser: Argv) {\n return this.addTaskOptions(parser)\n .positional('command', { type: 'string', demandOption: true })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\n choice: ['all', 'prod', 'none'],\n default: 'all' as const,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n\n // Documentation\n .example('jill eslint', '')\n .example('jill eslint --env-info', 'Unknown arguments are passed down to command. Here it would run eslint --env-info')\n .example('jill eslint -- -v', 'You can use -- to stop argument parsing. Here it would run eslint -v')\n\n // Config\n .strict(false)\n .parserConfiguration({\n 'unknown-options-as-args': true,\n });\n }\n\n async *prepare(args: ArgumentsCamelCase<IExecCommandArgs>) {\n // Generators\n const generators: AsyncGenerator<Workspace, void>[] = [];\n\n switch (args.depsMode ?? 'all') {\n case 'all':\n generators.unshift(this.workspace.devDependencies());\n\n // eslint-disable-next no-fallthrough\n case 'prod':\n generators.unshift(this.workspace.dependencies());\n }\n\n // Build deps\n for await (const dep of combine(...generators)) {\n const build = await dep.build({\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n\n if (build) {\n yield build;\n }\n }\n }\n\n async handler(args: ArgumentsCamelCase<IExecCommandArgs & ITaskCommandArgs>): Promise<void> {\n await super.handler(args);\n\n if (!args.plan) {\n this.app.unmount();\n\n // Extract arguments\n const rest = args._.map(arg => arg.toString());\n\n if (rest[0] === 'exec') {\n rest.splice(0, 1);\n }\n\n // Execute command\n const pm = await this.project.packageManager();\n let command = args.command;\n\n if (pm === 'yarn') {\n command = 'yarn';\n rest.unshift('exec', args.command);\n }\n\n this._logger.debug`${command} ${rest.join(' ')}`;\n\n const child = cp.spawn(command, rest, {\n stdio: 'inherit',\n cwd: this.workspace.cwd,\n env: {\n ...process.env,\n FORCE_COLOR: '1',\n },\n shell: true,\n windowsHide: true,\n });\n\n const code = await new Promise<number>((resolve) => {\n child.on('close', (code) => {\n resolve(code ?? 0);\n });\n });\n\n if (code) {\n throw new ExitException(code);\n }\n }\n }\n}\n","import { inject } from 'inversify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';\nimport { TaskExpressionService, type TaskTree } from '@/src/tasks/task-expression.service.ts';\n\n// Types\nexport interface IGroupCommandArgs {\n script: TaskTree;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\n@Command({\n command: 'group <script..>',\n describe: 'Run many scripts inside a workspace (experimental)',\n deprecated: true,\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class GroupCommand extends TaskCommand<IGroupCommandArgs> {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Constructor\n constructor(\n @inject(TaskExpressionService)\n private readonly taskExpr: TaskExpressionService,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv): Argv<IGroupCommandArgs> {\n return this.addTaskOptions(parser)\n .positional('script', {\n demandOption: true,\n desc: 'Task expression',\n coerce: (expr: string[]) => this.taskExpr.parse(expr.join(' ')),\n })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\n choice: ['all', 'prod', 'none'],\n default: 'all' as const,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n });\n }\n\n async *prepare(args: ArgumentsCamelCase<IGroupCommandArgs>) {\n // Run script in workspace\n const group = await this.taskExpr.buildTask(args.script.roots[0], this.workspace, {\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n\n yield group;\n }\n}\n","import { Logger } from '@jujulego/logger';\nimport chalk from 'chalk';\nimport { inject } from 'inversify';\nimport path from 'node:path';\nimport { compare, parse } from 'semver';\nimport slugify from 'slugify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { AffectedFilter } from '@/src/filters/affected.filter.ts';\nimport { Pipeline } from '@/src/filters/pipeline.ts';\nimport { PrivateFilter } from '@/src/filters/private.filter.ts';\nimport { ScriptsFilter } from '@/src/filters/scripts.filter.ts';\nimport { LazyCurrentProject, LoadProject } from '@/src/middlewares/load-project.ts';\nimport { Command } from '@/src/modules/command.ts';\nimport { InkCommand } from '@/src/modules/ink-command.tsx';\nimport { type Project } from '@/src/project/project.ts';\nimport { type Workspace } from '@/src/project/workspace.ts';\nimport List from '@/src/ui/list.tsx';\nimport { ExitException } from '@/src/utils/exit.ts';\nimport { printJson } from '@/src/utils/json.ts';\n\n// Types\nexport type Attribute = 'name' | 'version' | 'root' | 'slug';\nexport type Data = Partial<Record<Attribute, string>>;\nexport type Order = 'asc' | 'desc';\n\ntype Extractor<T> = (wks: Workspace, json: boolean) => T;\n\nexport interface ListCommandArgs {\n // Filters\n private?: boolean;\n 'with-script'?: string[];\n\n // Affected filter\n affected: string;\n 'affected-rev-fallback': string;\n 'affected-rev-sort'?: string;\n\n // Format\n attrs?: Attribute[];\n headers?: boolean;\n long?: boolean;\n json?: boolean;\n\n // Sort\n 'sort-by'?: Attribute[];\n order: Order;\n}\n\n// Constants\nconst LONG_ATTRIBUTES: Attribute[] = ['name', 'version', 'root'];\nconst JSON_ATTRIBUTES: Attribute[] = ['name', 'version', 'slug', 'root'];\nconst DEFAULT_ATTRIBUTES: Attribute[] = ['name'];\n\nconst EXTRACTORS = {\n name: wks => wks.name,\n version: (wks, json) => wks.manifest.version || (json ? undefined : chalk.grey('unset')),\n root: wks => wks.cwd,\n slug: wks => slugify.default(wks.name)\n} satisfies Record<Attribute, Extractor<string | undefined>>;\n\nconst COMPARATORS = {\n name: (a = '', b = '') => a.localeCompare(b),\n version: (a, b) => compare(parse(a) ?? '0.0.0', parse(b) ?? '0.0.0'),\n root: (a = '', b = '') => a.localeCompare(b),\n slug: (a = '', b = '') => a.localeCompare(b),\n} satisfies Record<Attribute, (a: string | undefined, b: string | undefined) => number>;\n\n// Utils\nfunction buildExtractor(attrs: Attribute[]): Extractor<Data> {\n return (wks, json: boolean) => {\n const data: Data = {};\n\n for (const attr of attrs) {\n data[attr] = EXTRACTORS[attr](wks, json);\n }\n\n return data;\n };\n}\n\n// Command\n@Command({\n command: 'list',\n aliases: ['ls'],\n describe: 'List workspace',\n middlewares: [\n LoadProject,\n ]\n})\nexport class ListCommand extends InkCommand<ListCommandArgs> {\n // Lazy injections\n @LazyCurrentProject()\n readonly project: Project;\n\n // Constructor\n constructor(\n @inject(Logger)\n private readonly logger: Logger,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv): Argv<ListCommandArgs> {\n return parser\n // Filters\n .option('private', {\n type: 'boolean',\n group: 'Filters:',\n desc: 'Print only private workspaces',\n })\n .option('with-script', {\n type: 'array',\n string: true,\n group: 'Filters:',\n desc: 'Print only workspaces having the given script',\n })\n .option('affected', {\n alias: 'a',\n type: 'string',\n coerce: (rev) => rev === '' ? 'master' : rev,\n group: 'Filters:',\n desc: 'Print only affected workspaces towards given git revision. If no revision is given, it will check towards master. Replaces %name by workspace name.',\n })\n .option('affected-rev-sort', {\n type: 'string',\n group: 'Filters:',\n desc: 'Sort applied to git tag / git branch command',\n })\n .option('affected-rev-fallback', {\n type: 'string',\n default: 'master',\n group: 'Filters:',\n desc: 'Fallback revision, used if no revision matching the given format is found',\n })\n\n // Format\n .option('attrs', {\n type: 'array',\n choices: ['name', 'version', 'root', 'slug'] as const,\n group: 'Format:',\n desc: 'Select printed attributes'\n })\n .option('headers', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints columns headers'\n })\n .option('long', {\n alias: 'l',\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints name, version and root of all workspaces',\n })\n .option('json', {\n type: 'boolean',\n group: 'Format:',\n desc: 'Prints data as a JSON array',\n })\n\n // Sort\n .option('sort-by', {\n alias: 's',\n type: 'array',\n choices: ['name', 'version', 'root', 'slug'] as const,\n group: 'Sort:',\n desc: 'Sort output by given attribute. By default sorts by name if printed'\n })\n .option('order', {\n alias: 'o',\n type: 'string',\n choices: ['asc', 'desc'] as const,\n default: 'asc' as const,\n group: 'Sort:',\n desc: 'Sort order'\n });\n }\n\n async *render(args: ArgumentsCamelCase<ListCommandArgs>) {\n const { attrs, sortBy } = this._applyDefaults(args);\n\n // Load workspaces\n const pipeline = this._preparePipeline(args);\n const workspaces: Workspace[] = [];\n\n for await (const wks of pipeline.filter(this.project.workspaces())) {\n workspaces.push(wks);\n }\n\n // Build data\n const data = workspaces.map(wks => buildExtractor(attrs)(wks, args.json || false));\n\n if (sortBy.length > 0) {\n data.sort(this._dataComparator(sortBy, args.order));\n }\n\n // Print list\n if (args.json) {\n printJson(data);\n } else {\n for (const d of data) {\n if (d.root) {\n d.root = path.relative(process.cwd(), d.root) || '.';\n }\n }\n\n yield <List items={data} headers={args.headers ?? (attrs.length > 1)} />;\n }\n }\n\n private _applyDefaults(argv: ArgumentsCamelCase<ListCommandArgs>): { attrs: Attribute[], sortBy: Attribute[] } {\n // Compute attributes\n let attrs = argv.attrs ?? [];\n\n if (attrs.length === 0) {\n if (argv.long) {\n attrs = LONG_ATTRIBUTES;\n } else if (argv.json) {\n attrs = JSON_ATTRIBUTES;\n } else {\n attrs = argv.sortBy ?? DEFAULT_ATTRIBUTES;\n }\n }\n\n // Check sorted attributes\n let sortBy = argv.sortBy ?? [];\n\n if (attrs.length > 0 && sortBy.length > 0) {\n const miss = sortBy.filter((attr) => !attrs.includes(attr));\n\n if (miss.length > 0) {\n this.logger.error(`Cannot sort by non printed attributes. Missing ${miss.join(', ')}.`);\n throw new ExitException(1);\n }\n }\n\n if (sortBy.length === 0 && attrs.includes('name')) {\n sortBy = ['name'];\n }\n\n return { attrs, sortBy };\n }\n\n private _preparePipeline(argv: ArgumentsCamelCase<ListCommandArgs>): Pipeline {\n const pipeline = new Pipeline();\n\n if (argv.private !== undefined) {\n pipeline.add(new PrivateFilter(argv.private));\n }\n\n if (argv.withScript) {\n pipeline.add(new ScriptsFilter(argv.withScript));\n }\n\n if (argv.affected !== undefined) {\n pipeline.add(new AffectedFilter(\n argv.affected,\n argv.affectedRevFallback,\n argv.affectedRevSort\n ));\n }\n\n return pipeline;\n }\n\n private _dataComparator(sortBy: Attribute[], order: Order) {\n const factor = order === 'asc' ? 1 : -1;\n\n return (a: Data, b: Data) => {\n for (const attr of sortBy) {\n const diff = COMPARATORS[attr](a[attr], b[attr]);\n\n if (diff !== 0) {\n return factor * diff;\n }\n }\n\n return 0;\n };\n }\n}\n","import { Logger } from '@jujulego/logger';\nimport { inject } from 'inversify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { Command } from '@/src/modules/command.ts';\nimport { TaskCommand } from '@/src/modules/task-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace, type WorkspaceDepsMode } from '@/src/project/workspace.ts';\nimport { TaskExpressionService } from '@/src/tasks/task-expression.service.ts';\nimport { TaskExpressionError, TaskSyntaxError } from '@/src/tasks/errors.ts';\nimport { ExitException } from '@/src/utils/exit.ts';\n\n// Types\nexport interface IRunCommandArgs {\n expr: string;\n 'build-script': string;\n 'deps-mode': WorkspaceDepsMode;\n}\n\n// Command\n@Command({\n command: 'run <expr>',\n describe: 'Run a task expression in a workspace, after having built all its dependencies.',\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class RunCommand extends TaskCommand<IRunCommandArgs> {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Constructor\n constructor(\n @inject(Logger)\n private readonly logger: Logger,\n @inject(TaskExpressionService)\n private readonly taskExpression: TaskExpressionService,\n ) {\n super();\n }\n\n // Methods\n builder(parser: Argv) {\n return this.addTaskOptions(parser)\n .positional('expr', {\n type: 'string',\n demandOption: true,\n desc: 'Script or task expression',\n })\n .option('build-script', {\n default: 'build',\n desc: 'Script to use to build dependencies'\n })\n .option('deps-mode', {\n alias: 'd',\n choice: ['all', 'prod', 'none'],\n default: 'all' as const,\n desc: 'Dependency selection mode:\\n' +\n ' - all = dependencies AND devDependencies\\n' +\n ' - prod = dependencies\\n' +\n ' - none = nothing'\n })\n\n // Config\n .strict(false)\n .parserConfiguration({\n 'unknown-options-as-args': true,\n });\n }\n\n async *prepare(args: ArgumentsCamelCase<IRunCommandArgs>) {\n // Extract expression\n const expr = args._.map(arg => arg.toString());\n\n if (expr[0] === 'run') {\n expr.splice(0, 1);\n }\n\n expr.unshift(args.expr);\n\n // Parse task expression\n try {\n const tree = this.taskExpression.parse(expr.join(' '));\n\n yield await this.taskExpression.buildTask(tree.roots[0], this.workspace, {\n buildScript: args.buildScript,\n buildDeps: args.depsMode,\n });\n } catch (err) {\n if (err instanceof TaskExpressionError) {\n this.logger.error(err.message);\n throw new ExitException(1);\n }\n\n if (err instanceof TaskSyntaxError) {\n this.logger.error(`Syntax error in task expression: ${err.message}`);\n throw new ExitException(1);\n }\n\n throw err;\n }\n }\n}\n","import { Command } from '@/src/modules/command.ts';\nimport { InkCommand } from '@/src/modules/ink-command.tsx';\nimport { LoadProject } from '@/src/middlewares/load-project.ts';\nimport { LazyCurrentWorkspace, LoadWorkspace } from '@/src/middlewares/load-workspace.ts';\nimport { type Workspace } from '@/src/project/workspace.ts';\nimport WorkspaceTree from '@/src/ui/workspace-tree.tsx';\n\n// Command\n@Command({\n command: 'tree',\n describe: 'Print workspace dependency tree',\n middlewares: [\n LoadProject,\n LoadWorkspace\n ]\n})\nexport class TreeCommand extends InkCommand {\n // Lazy injections\n @LazyCurrentWorkspace()\n readonly workspace: Workspace;\n\n // Methods\n *render() {\n yield <WorkspaceTree workspace={this.workspace} />;\n }\n}\n","import { EachCommand } from '@/src/commands/each.ts';\nimport { ExecCommand } from '@/src/commands/exec.ts';\nimport { GroupCommand } from '@/src/commands/group.ts';\nimport { ListCommand } from '@/src/commands/list.tsx';\nimport { RunCommand } from '@/src/commands/run.ts';\nimport { TreeCommand } from '@/src/commands/tree.tsx';\nimport { Plugin } from '@/src/modules/plugin.ts';\n\n// Plugin\n@Plugin({\n name: 'core',\n commands: [\n EachCommand,\n ExecCommand,\n GroupCommand,\n ListCommand,\n RunCommand,\n TreeCommand,\n ]\n})\nexport class CorePlugin {}\n"],"names":["EachCommand","TaskCommand","constructor","taskExpression","logger","builder","parser","addTaskOptions","positional","type","demandOption","desc","option","default","alias","choice","group","coerce","rev","strict","parserConfiguration","prepare","argv","empty","expr","_","map","arg","toString","splice","unshift","tree","parse","join","scripts","Array","from","extractScripts","pipeline","_preparePipeline","wks","filter","project","workspaces","task","buildTask","roots","buildScript","buildDeps","depsMode","err","TaskExpressionError","error","message","ExitException","TaskSyntaxError","symbols","allowNoWorkspaces","Pipeline","add","ScriptsFilter","private","undefined","PrivateFilter","affected","AffectedFilter","affectedRevFallback","affectedRevSort","LazyCurrentProject","Command","command","describe","middlewares","LoadProject","inject","Logger","TaskExpressionService","ExecCommand","_logger","child","withLabel","example","args","generators","workspace","devDependencies","dependencies","dep","combine","build","handler","plan","app","unmount","rest","pm","packageManager","debug","cp","spawn","stdio","cwd","env","process","FORCE_COLOR","shell","windowsHide","code","Promise","resolve","on","LazyCurrentWorkspace","aliases","LoadWorkspace","GroupCommand","taskExpr","script","deprecated","LONG_ATTRIBUTES","JSON_ATTRIBUTES","DEFAULT_ATTRIBUTES","EXTRACTORS","name","version","json","manifest","chalk","grey","root","slug","slugify","COMPARATORS","a","b","localeCompare","compare","buildExtractor","attrs","data","attr","ListCommand","InkCommand","string","choices","render","sortBy","_applyDefaults","push","length","sort","_dataComparator","order","printJson","d","path","relative","_jsx","List","items","headers","long","miss","includes","withScript","factor","diff","RunCommand","TreeCommand","WorkspaceTree","CorePlugin","Plugin","commands"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CO,MAAMA,WAAoBC,SAAAA,WAAAA,CAAAA;;AAM/BC,IAAAA,WAAAA,CACE,MAC+B,EAEdC,cAAqC,CACtD;QACA,KAAK,EAAA,CAAA;aAJYC,MAAAA,GAAAA,MAAAA,CAAAA;aAEAD,cAAAA,GAAAA,cAAAA,CAAAA;AAGnB,KAAA;;AAGAE,IAAAA,OAAAA,CAAQC,MAAY,EAAyB;AAC3C,QAAA,OAAO,IAAI,CAACC,cAAc,CAACD,OACzB;AACCE,SAAAA,UAAU,CAAC,MAAQ,EAAA;YAClBC,IAAM,EAAA,QAAA;YACNC,YAAc,EAAA,IAAA;YACdC,IAAM,EAAA,2BAAA;SAEPC,CAAAA,CAAAA,MAAM,CAAC,cAAgB,EAAA;YACtBC,OAAS,EAAA,OAAA;YACTF,IAAM,EAAA,qCAAA;SAEPC,CAAAA,CAAAA,MAAM,CAAC,WAAa,EAAA;YACnBE,KAAO,EAAA,GAAA;YACPC,MAAQ,EAAA;AAAC,gBAAA,KAAA;AAAO,gBAAA,MAAA;AAAQ,gBAAA,MAAA;AAAO,aAAA;YAC/BF,OAAS,EAAA,KAAA;YACTF,IAAM,EAAA,8BAAA,GACJ,gDACA,0BACA,GAAA,mBAAA;SAEHC,CAAAA,CAAAA,MAAM,CAAC,qBAAuB,EAAA;YAC7BH,IAAM,EAAA,SAAA;YACNI,OAAS,EAAA,KAAA;YACTF,IAAM,EAAA,6FAAA;AACR,SAAA,CAEA;AACCC,SAAAA,MAAM,CAAC,SAAW,EAAA;YACjBH,IAAM,EAAA,SAAA;YACNO,KAAO,EAAA,UAAA;YACPL,IAAM,EAAA,+BAAA;SAEPC,CAAAA,CAAAA,MAAM,CAAC,UAAY,EAAA;YAClBE,KAAO,EAAA,GAAA;YACPL,IAAM,EAAA,QAAA;AACNQ,YAAAA,MAAAA,EAAQ,CAACC,GAAAA,GAAQA,GAAQ,KAAA,EAAA,GAAK,QAAWA,GAAAA,GAAAA;YACzCF,KAAO,EAAA,UAAA;YACPL,IAAM,EAAA,qJAAA;SAEPC,CAAAA,CAAAA,MAAM,CAAC,mBAAqB,EAAA;YAC3BH,IAAM,EAAA,QAAA;YACNO,KAAO,EAAA,UAAA;YACPL,IAAM,EAAA,8CAAA;SAEPC,CAAAA,CAAAA,MAAM,CAAC,uBAAyB,EAAA;YAC/BH,IAAM,EAAA,QAAA;YACNI,OAAS,EAAA,QAAA;YACTG,KAAO,EAAA,UAAA;YACPL,IAAM,EAAA,2EAAA;AACR,SAAA,CAEA;SACCQ,MAAM,CAAC,KACPC,CAAAA,CAAAA,mBAAmB,CAAC;YACnB,yBAA2B,EAAA,IAAA;AAC7B,SAAA,CAAA,CAAA;AACJ,KAAA;IAEA,OAAOC,OAAAA,CAAQC,IAAyC,EAAE;AACxD,QAAA,IAAIC,KAAQ,GAAA,IAAA,CAAA;QAEZ,IAAI;;YAEF,MAAMC,IAAAA,GAAOF,KAAKG,CAAC,CAACC,GAAG,CAACC,CAAAA,GAAOA,GAAAA,GAAAA,CAAIC,QAAQ,EAAA,CAAA,CAAA;AAE3C,YAAA,IAAIJ,IAAI,CAAC,CAAE,CAAA,KAAK,MAAQ,EAAA;gBACtBA,IAAKK,CAAAA,MAAM,CAAC,CAAG,EAAA,CAAA,CAAA,CAAA;AACjB,aAAA;YAEAL,IAAKM,CAAAA,OAAO,CAACR,IAAAA,CAAKE,IAAI,CAAA,CAAA;YAEtB,MAAMO,IAAAA,GAAO,IAAI,CAAC5B,cAAc,CAAC6B,KAAK,CAACR,IAAKS,CAAAA,IAAI,CAAC,GAAA,CAAA,CAAA,CAAA;YACjD,MAAMC,OAAAA,GAAUC,MAAMC,IAAI,CAAC,IAAI,CAACjC,cAAc,CAACkC,cAAc,CAACN,IAAAA,CAAAA,CAAAA,CAAAA;;AAG9D,YAAA,MAAMO,QAAW,GAAA,IAAI,CAACC,gBAAgB,CAACjB,IAAMY,EAAAA,OAAAA,CAAAA,CAAAA;YAE7C,WAAW,MAAMM,GAAOF,IAAAA,QAAAA,CAASG,MAAM,CAAC,IAAI,CAACC,OAAO,CAACC,UAAU,EAAK,CAAA,CAAA;AAClE,gBAAA,MAAMC,IAAO,GAAA,MAAM,IAAI,CAACzC,cAAc,CAAC0C,SAAS,CAACd,IAAKe,CAAAA,KAAK,CAAC,CAAA,CAAE,EAAEN,GAAK,EAAA;AACnEO,oBAAAA,WAAAA,EAAazB,KAAKyB,WAAW;AAC7BC,oBAAAA,SAAAA,EAAW1B,KAAK2B,QAAQ;AAC1B,iBAAA,CAAA,CAAA;AAEA,gBAAA,IAAIL,IAAM,EAAA;oBACR,MAAMA,IAAAA,CAAAA;oBACNrB,KAAQ,GAAA,KAAA,CAAA;AACV,iBAAA;AACF,aAAA;AACF,SAAA,CAAE,OAAO2B,GAAK,EAAA;AACZ,YAAA,IAAIA,eAAeC,mBAAqB,EAAA;AACtC,gBAAA,IAAI,CAAC/C,MAAM,CAACgD,KAAK,CAACF,IAAIG,OAAO,CAAA,CAAA;AAC7B,gBAAA,MAAM,IAAIC,aAAc,CAAA,CAAA,CAAA,CAAA;AAC1B,aAAA;AAEA,YAAA,IAAIJ,eAAeK,eAAiB,EAAA;gBAClC,IAAI,CAACnD,MAAM,CAACgD,KAAK,CAAC,CAAC,iCAAiC,EAAEF,GAAAA,CAAIG,OAAO,CAAC,CAAC,CAAA,CAAA;AACnE,gBAAA,MAAM,IAAIC,aAAc,CAAA,CAAA,CAAA,CAAA;AAC1B,aAAA;YAEA,MAAMJ,GAAAA,CAAAA;AACR,SAAA;AAEA,QAAA,IAAI3B,KAAO,EAAA;YACT,IAAI,CAACnB,MAAM,CAACgD,KAAK,CAAC,CAAC,EAAEI,OAAQJ,CAAAA,KAAK,CAAC,8BAA8B,CAAC,CAAA,CAAA;YAElE,IAAI9B,IAAAA,CAAKmC,iBAAiB,KAAK,KAAO,EAAA;AACpC,gBAAA,MAAM,IAAIH,aAAc,CAAA,CAAA,CAAA,CAAA;AAC1B,aAAA;AACF,SAAA;AACF,KAAA;IAEQf,gBAAiBjB,CAAAA,IAAyC,EAAEY,OAAiB,EAAY;AAC/F,QAAA,MAAMI,WAAW,IAAIoB,QAAAA,EAAAA,CAAAA;AACrBpB,QAAAA,QAAAA,CAASqB,GAAG,CAAC,IAAIC,aAAAA,CAAc1B,OAAS,EAAA,IAAA,CAAA,CAAA,CAAA;QAExC,IAAIZ,IAAAA,CAAKuC,OAAO,KAAKC,SAAW,EAAA;AAC9BxB,YAAAA,QAAAA,CAASqB,GAAG,CAAC,IAAII,aAAAA,CAAczC,KAAKuC,OAAO,CAAA,CAAA,CAAA;AAC7C,SAAA;QAEA,IAAIvC,IAAAA,CAAK0C,QAAQ,KAAKF,SAAW,EAAA;YAC/BxB,QAASqB,CAAAA,GAAG,CAAC,IAAIM,cACf3C,CAAAA,IAAAA,CAAK0C,QAAQ,EACb1C,IAAK4C,CAAAA,mBAAmB,EACxB5C,IAAAA,CAAK6C,eAAe,CAAA,CAAA,CAAA;AAExB,SAAA;QAEA,OAAO7B,QAAAA,CAAAA;AACT,KAAA;AACF,CAAA;;AAhJG8B,IAAAA,kBAAAA,EAAAA;AAFUpE,CAAAA,EAAAA,WAAAA,CAAAA,SAAAA,EAAAA,SAAAA,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA;AAAAA,WAAAA,GAAAA,CAAAA,CAAAA;IAPZqE,OAAQ,CAAA;QACPC,OAAS,EAAA,aAAA;QACTC,QAAU,EAAA,sFAAA;QACVC,WAAa,EAAA;AACXC,YAAAA,WAAAA;AACD,SAAA;AACH,KAAA,CAAA;AAQKC,IAAAA,GAAAA,CAAAA,CAAAA,EAAAA,MAAOC,CAAAA,MAAAA,CAAAA,CAAAA;AAEPD,IAAAA,GAAAA,CAAAA,CAAAA,EAAAA,MAAOE,CAAAA,qBAAAA,CAAAA,CAAAA;AATC5E,CAAAA,EAAAA,WAAAA,CAAAA;;ACXN,MAAM6E,WAAoB5E,SAAAA,WAAAA,CAAAA;;IAY/BC,WACE,CAAgBE,MAAc,CAC9B;QACA,KAAK,EAAA,CAAA;AAEL,QAAA,IAAI,CAAC0E,OAAO,GAAG1E,MAAO2E,CAAAA,KAAK,CAACC,SAAU,CAAA,MAAA,CAAA,CAAA,CAAA;AACxC,KAAA;;AAGA3E,IAAAA,OAAAA,CAAQC,MAAY,EAAE;AACpB,QAAA,OAAO,IAAI,CAACC,cAAc,CAACD,MACxBE,CAAAA,CAAAA,UAAU,CAAC,SAAW,EAAA;YAAEC,IAAM,EAAA,QAAA;YAAUC,YAAc,EAAA,IAAA;SACtDE,CAAAA,CAAAA,MAAM,CAAC,cAAgB,EAAA;YACtBC,OAAS,EAAA,OAAA;YACTF,IAAM,EAAA,qCAAA;SAEPC,CAAAA,CAAAA,MAAM,CAAC,WAAa,EAAA;YACnBE,KAAO,EAAA,GAAA;YACPC,MAAQ,EAAA;AAAC,gBAAA,KAAA;AAAO,gBAAA,MAAA;AAAQ,gBAAA,MAAA;AAAO,aAAA;YAC/BF,OAAS,EAAA,KAAA;YACTF,IAAM,EAAA,8BAAA,GACJ,gDACA,0BACA,GAAA,mBAAA;AACJ,SAAA,CAEA;SACCsE,OAAO,CAAC,aAAe,EAAA,EAAA,CAAA,CACvBA,OAAO,CAAC,wBAA0B,EAAA,mFAAA,CAAA,CAClCA,OAAO,CAAC,mBAAqB,EAAA,sEAAA,CAE9B;SACC9D,MAAM,CAAC,KACPC,CAAAA,CAAAA,mBAAmB,CAAC;YACnB,yBAA2B,EAAA,IAAA;AAC7B,SAAA,CAAA,CAAA;AACJ,KAAA;IAEA,OAAOC,OAAAA,CAAQ6D,IAA0C,EAAE;;AAEzD,QAAA,MAAMC,aAAgD,EAAE,CAAA;QAExD,OAAQD,IAAAA,CAAKjC,QAAQ,IAAI,KAAA;YACvB,KAAK,KAAA;AACHkC,gBAAAA,UAAAA,CAAWrD,OAAO,CAAC,IAAI,CAACsD,SAAS,CAACC,eAAe,EAAA,CAAA,CAAA;;YAGnD,KAAK,MAAA;AACHF,gBAAAA,UAAAA,CAAWrD,OAAO,CAAC,IAAI,CAACsD,SAAS,CAACE,YAAY,EAAA,CAAA,CAAA;AAClD,SAAA;;QAGA,WAAW,MAAMC,GAAOC,IAAAA,OAAAA,CAAAA,GAAWL,UAAa,CAAA,CAAA;AAC9C,YAAA,MAAMM,KAAQ,GAAA,MAAMF,GAAIE,CAAAA,KAAK,CAAC;AAC5B1C,gBAAAA,WAAAA,EAAamC,KAAKnC,WAAW;AAC7BC,gBAAAA,SAAAA,EAAWkC,KAAKjC,QAAQ;AAC1B,aAAA,CAAA,CAAA;AAEA,YAAA,IAAIwC,KAAO,EAAA;gBACT,MAAMA,KAAAA,CAAAA;AACR,aAAA;AACF,SAAA;AACF,KAAA;IAEA,MAAMC,OAAAA,CAAQR,IAA6D,EAAiB;QAC1F,MAAM,KAAK,CAACQ,OAAQR,CAAAA,IAAAA,CAAAA,CAAAA;QAEpB,IAAI,CAACA,IAAKS,CAAAA,IAAI,EAAE;YACd,IAAI,CAACC,GAAG,CAACC,OAAO,EAAA,CAAA;;YAGhB,MAAMC,IAAAA,GAAOZ,KAAKzD,CAAC,CAACC,GAAG,CAACC,CAAAA,GAAOA,GAAAA,GAAAA,CAAIC,QAAQ,EAAA,CAAA,CAAA;AAE3C,YAAA,IAAIkE,IAAI,CAAC,CAAE,CAAA,KAAK,MAAQ,EAAA;gBACtBA,IAAKjE,CAAAA,MAAM,CAAC,CAAG,EAAA,CAAA,CAAA,CAAA;AACjB,aAAA;;AAGA,YAAA,MAAMkE,KAAK,MAAM,IAAI,CAACrD,OAAO,CAACsD,cAAc,EAAA,CAAA;YAC5C,IAAI1B,OAAAA,GAAUY,KAAKZ,OAAO,CAAA;AAE1B,YAAA,IAAIyB,OAAO,MAAQ,EAAA;gBACjBzB,OAAU,GAAA,MAAA,CAAA;AACVwB,gBAAAA,IAAAA,CAAKhE,OAAO,CAAC,MAAQoD,EAAAA,IAAAA,CAAKZ,OAAO,CAAA,CAAA;AACnC,aAAA;AAEA,YAAA,IAAI,CAACQ,OAAO,CAACmB,KAAK,CAAC,EAAE3B,OAAQ,CAAA,CAAC,EAAEwB,IAAAA,CAAK7D,IAAI,CAAC,KAAK,CAAC,CAAA;AAEhD,YAAA,MAAM8C,KAAQmB,GAAAA,EAAAA,CAAGC,KAAK,CAAC7B,SAASwB,IAAM,EAAA;gBACpCM,KAAO,EAAA,SAAA;AACPC,gBAAAA,GAAAA,EAAK,IAAI,CAACjB,SAAS,CAACiB,GAAG;gBACvBC,GAAK,EAAA;AACH,oBAAA,GAAGC,QAAQD,GAAG;oBACdE,WAAa,EAAA,GAAA;AACf,iBAAA;gBACAC,KAAO,EAAA,IAAA;gBACPC,WAAa,EAAA,IAAA;AACf,aAAA,CAAA,CAAA;AAEA,YAAA,MAAMC,IAAO,GAAA,MAAM,IAAIC,OAAAA,CAAgB,CAACC,OAAAA,GAAAA;gBACtC9B,KAAM+B,CAAAA,EAAE,CAAC,OAAA,EAAS,CAACH,IAAAA,GAAAA;AACjBE,oBAAAA,OAAAA,CAAQF,IAAQ,IAAA,CAAA,CAAA,CAAA;AAClB,iBAAA,CAAA,CAAA;AACF,aAAA,CAAA,CAAA;AAEA,YAAA,IAAIA,IAAM,EAAA;AACR,gBAAA,MAAM,IAAIrD,aAAcqD,CAAAA,IAAAA,CAAAA,CAAAA;AAC1B,aAAA;AACF,SAAA;AACF,KAAA;AACF,CAAA;;AArHGvC,IAAAA,kBAAAA,EAAAA;AALUS,CAAAA,EAAAA,WAAAA,CAAAA,SAAAA,EAAAA,SAAAA,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA;;AAQVkC,IAAAA,oBAAAA,EAAAA;AARUlC,CAAAA,EAAAA,WAAAA,CAAAA,SAAAA,EAAAA,WAAAA,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA;AAAAA,WAAAA,GAAAA,CAAAA,CAAAA;IATZR,OAAQ,CAAA;QACPC,OAAS,EAAA,gBAAA;QACT0C,OAAS,EAAA;AAAC,YAAA,IAAA;AAAK,SAAA;QACfzC,QAAU,EAAA,0EAAA;QACVC,WAAa,EAAA;AACXC,YAAAA,WAAAA;AACAwC,YAAAA,aAAAA;AACD,SAAA;AACH,KAAA,CAAA;AAcKvC,IAAAA,GAAAA,CAAAA,CAAAA,EAAAA,MAAOC,CAAAA,MAAAA,CAAAA,CAAAA;AAbCE,CAAAA,EAAAA,WAAAA,CAAAA;;ACJN,MAAMqC,YAAqBjH,SAAAA,WAAAA,CAAAA;;IAMhCC,WACE,CACiBiH,QAA+B,CAChD;QACA,KAAK,EAAA,CAAA;aAFYA,QAAAA,GAAAA,QAAAA,CAAAA;AAGnB,KAAA;;AAGA9G,IAAAA,OAAAA,CAAQC,MAAY,EAA2B;AAC7C,QAAA,OAAO,IAAI,CAACC,cAAc,CAACD,MACxBE,CAAAA,CAAAA,UAAU,CAAC,QAAU,EAAA;YACpBE,YAAc,EAAA,IAAA;YACdC,IAAM,EAAA,iBAAA;YACNM,MAAQ,EAAA,CAACO,IAAmB,GAAA,IAAI,CAAC2F,QAAQ,CAACnF,KAAK,CAACR,IAAKS,CAAAA,IAAI,CAAC,GAAA,CAAA,CAAA;SAE3DrB,CAAAA,CAAAA,MAAM,CAAC,cAAgB,EAAA;YACtBC,OAAS,EAAA,OAAA;YACTF,IAAM,EAAA,qCAAA;SAEPC,CAAAA,CAAAA,MAAM,CAAC,WAAa,EAAA;YACnBE,KAAO,EAAA,GAAA;YACPC,MAAQ,EAAA;AAAC,gBAAA,KAAA;AAAO,gBAAA,MAAA;AAAQ,gBAAA,MAAA;AAAO,aAAA;YAC/BF,OAAS,EAAA,KAAA;YACTF,IAAM,EAAA,8BAAA,GACJ,gDACA,0BACA,GAAA,mBAAA;AACJ,SAAA,CAAA,CAAA;AACJ,KAAA;IAEA,OAAOU,OAAAA,CAAQ6D,IAA2C,EAAE;;AAE1D,QAAA,MAAMlE,QAAQ,MAAM,IAAI,CAACmG,QAAQ,CAACtE,SAAS,CAACqC,IAAAA,CAAKkC,MAAM,CAACtE,KAAK,CAAC,CAAA,CAAE,EAAE,IAAI,CAACsC,SAAS,EAAE;AAChFrC,YAAAA,WAAAA,EAAamC,KAAKnC,WAAW;AAC7BC,YAAAA,SAAAA,EAAWkC,KAAKjC,QAAQ;AAC1B,SAAA,CAAA,CAAA;QAEA,MAAMjC,KAAAA,CAAAA;AACR,KAAA;AACF,CAAA;;AA3CG+F,IAAAA,oBAAAA,EAAAA;AAFUG,CAAAA,EAAAA,YAAAA,CAAAA,SAAAA,EAAAA,WAAAA,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA;AAAAA,YAAAA,GAAAA,CAAAA,CAAAA;IATZ7C,OAAQ,CAAA;QACPC,OAAS,EAAA,kBAAA;QACTC,QAAU,EAAA,oDAAA;QACV8C,UAAY,EAAA,IAAA;QACZ7C,WAAa,EAAA;AACXC,YAAAA,WAAAA;AACAwC,YAAAA,aAAAA;AACD,SAAA;AACH,KAAA,CAAA;AAQKvC,IAAAA,GAAAA,CAAAA,CAAAA,EAAAA,MAAOE,CAAAA,qBAAAA,CAAAA,CAAAA;AAPCsC,CAAAA,EAAAA,YAAAA,CAAAA;;ACsBb;AACA,MAAMI,eAA+B,GAAA;AAAC,IAAA,MAAA;AAAQ,IAAA,SAAA;AAAW,IAAA,MAAA;AAAO,CAAA,CAAA;AAChE,MAAMC,eAA+B,GAAA;AAAC,IAAA,MAAA;AAAQ,IAAA,SAAA;AAAW,IAAA,MAAA;AAAQ,IAAA,MAAA;AAAO,CAAA,CAAA;AACxE,MAAMC,kBAAkC,GAAA;AAAC,IAAA,MAAA;AAAO,CAAA,CAAA;AAEhD,MAAMC,UAAa,GAAA;IACjBC,IAAMlF,EAAAA,CAAAA,GAAOA,GAAAA,GAAAA,CAAIkF,IAAI;AACrBC,IAAAA,OAAAA,EAAS,CAACnF,GAAAA,EAAKoF,IAASpF,GAAAA,GAAAA,CAAIqF,QAAQ,CAACF,OAAO,KAAKC,IAAO9D,GAAAA,SAAAA,GAAYgE,KAAMC,CAAAA,IAAI,CAAC,OAAO,CAAA,CAAA;IACtFC,IAAMxF,EAAAA,CAAAA,GAAOA,GAAAA,GAAAA,CAAI6D,GAAG;AACpB4B,IAAAA,IAAAA,EAAMzF,CAAAA,GAAO0F,GAAAA,OAAAA,CAAQrH,OAAO,CAAC2B,IAAIkF,IAAI,CAAA;AACvC,CAAA,CAAA;AAEA,MAAMS,WAAc,GAAA;IAClBT,IAAM,EAAA,CAACU,IAAI,EAAE,EAAEC,IAAI,EAAE,GAAKD,CAAEE,CAAAA,aAAa,CAACD,CAAAA,CAAAA;IAC1CV,OAAS,EAAA,CAACS,GAAGC,CAAME,GAAAA,OAAAA,CAAQvG,MAAMoG,CAAM,CAAA,IAAA,OAAA,EAASpG,MAAMqG,CAAM,CAAA,IAAA,OAAA,CAAA;IAC5DL,IAAM,EAAA,CAACI,IAAI,EAAE,EAAEC,IAAI,EAAE,GAAKD,CAAEE,CAAAA,aAAa,CAACD,CAAAA,CAAAA;IAC1CJ,IAAM,EAAA,CAACG,IAAI,EAAE,EAAEC,IAAI,EAAE,GAAKD,CAAEE,CAAAA,aAAa,CAACD,CAAAA,CAAAA;AAC5C,CAAA,CAAA;AAEA;AACA,SAASG,eAAeC,KAAkB,EAAA;AACxC,IAAA,OAAO,CAACjG,GAAKoF,EAAAA,IAAAA,GAAAA;AACX,QAAA,MAAMc,OAAa,EAAC,CAAA;QAEpB,KAAK,MAAMC,QAAQF,KAAO,CAAA;AACxBC,YAAAA,IAAI,CAACC,IAAK,CAAA,GAAGlB,UAAU,CAACkB,IAAAA,CAAK,CAACnG,GAAKoF,EAAAA,IAAAA,CAAAA,CAAAA;AACrC,SAAA;QAEA,OAAOc,IAAAA,CAAAA;AACT,KAAA,CAAA;AACF,CAAA;AAWO,MAAME,WAAoBC,SAAAA,UAAAA,CAAAA;;IAM/B3I,WACE,CACiBE,MAAc,CAC/B;QACA,KAAK,EAAA,CAAA;aAFYA,MAAAA,GAAAA,MAAAA,CAAAA;AAGnB,KAAA;;AAGAC,IAAAA,OAAAA,CAAQC,MAAY,EAAyB;AAC3C,QAAA,OAAOA,MACL;AACCM,SAAAA,MAAM,CAAC,SAAW,EAAA;YACjBH,IAAM,EAAA,SAAA;YACNO,KAAO,EAAA,UAAA;YACPL,IAAM,EAAA,+BAAA;SAEPC,CAAAA,CAAAA,MAAM,CAAC,aAAe,EAAA;YACrBH,IAAM,EAAA,OAAA;YACNqI,MAAQ,EAAA,IAAA;YACR9H,KAAO,EAAA,UAAA;YACPL,IAAM,EAAA,+CAAA;SAEPC,CAAAA,CAAAA,MAAM,CAAC,UAAY,EAAA;YAClBE,KAAO,EAAA,GAAA;YACPL,IAAM,EAAA,QAAA;AACNQ,YAAAA,MAAAA,EAAQ,CAACC,GAAAA,GAAQA,GAAQ,KAAA,EAAA,GAAK,QAAWA,GAAAA,GAAAA;YACzCF,KAAO,EAAA,UAAA;YACPL,IAAM,EAAA,qJAAA;SAEPC,CAAAA,CAAAA,MAAM,CAAC,mBAAqB,EAAA;YAC3BH,IAAM,EAAA,QAAA;YACNO,KAAO,EAAA,UAAA;YACPL,IAAM,EAAA,8CAAA;SAEPC,CAAAA,CAAAA,MAAM,CAAC,uBAAyB,EAAA;YAC/BH,IAAM,EAAA,QAAA;YACNI,OAAS,EAAA,QAAA;YACTG,KAAO,EAAA,UAAA;YACPL,IAAM,EAAA,2EAAA;AACR,SAAA,CAEA;AACCC,SAAAA,MAAM,CAAC,OAAS,EAAA;YACfH,IAAM,EAAA,OAAA;YACNsI,OAAS,EAAA;AAAC,gBAAA,MAAA;AAAQ,gBAAA,SAAA;AAAW,gBAAA,MAAA;AAAQ,gBAAA,MAAA;AAAO,aAAA;YAC5C/H,KAAO,EAAA,SAAA;YACPL,IAAM,EAAA,2BAAA;SAEPC,CAAAA,CAAAA,MAAM,CAAC,SAAW,EAAA;YACjBH,IAAM,EAAA,SAAA;YACNO,KAAO,EAAA,SAAA;YACPL,IAAM,EAAA,wBAAA;SAEPC,CAAAA,CAAAA,MAAM,CAAC,MAAQ,EAAA;YACdE,KAAO,EAAA,GAAA;YACPL,IAAM,EAAA,SAAA;YACNO,KAAO,EAAA,SAAA;YACPL,IAAM,EAAA,iDAAA;SAEPC,CAAAA,CAAAA,MAAM,CAAC,MAAQ,EAAA;YACdH,IAAM,EAAA,SAAA;YACNO,KAAO,EAAA,SAAA;YACPL,IAAM,EAAA,6BAAA;AACR,SAAA,CAEA;AACCC,SAAAA,MAAM,CAAC,SAAW,EAAA;YACjBE,KAAO,EAAA,GAAA;YACPL,IAAM,EAAA,OAAA;YACNsI,OAAS,EAAA;AAAC,gBAAA,MAAA;AAAQ,gBAAA,SAAA;AAAW,gBAAA,MAAA;AAAQ,gBAAA,MAAA;AAAO,aAAA;YAC5C/H,KAAO,EAAA,OAAA;YACPL,IAAM,EAAA,qEAAA;SAEPC,CAAAA,CAAAA,MAAM,CAAC,OAAS,EAAA;YACfE,KAAO,EAAA,GAAA;YACPL,IAAM,EAAA,QAAA;YACNsI,OAAS,EAAA;AAAC,gBAAA,KAAA;AAAO,gBAAA,MAAA;AAAO,aAAA;YACxBlI,OAAS,EAAA,KAAA;YACTG,KAAO,EAAA,OAAA;YACPL,IAAM,EAAA,YAAA;AACR,SAAA,CAAA,CAAA;AACJ,KAAA;IAEA,OAAOqI,MAAAA,CAAO9D,IAAyC,EAAE;QACvD,MAAM,EAAEuD,KAAK,EAAEQ,MAAM,EAAE,GAAG,IAAI,CAACC,cAAc,CAAChE,IAAAA,CAAAA,CAAAA;;AAG9C,QAAA,MAAM5C,QAAW,GAAA,IAAI,CAACC,gBAAgB,CAAC2C,IAAAA,CAAAA,CAAAA;AACvC,QAAA,MAAMvC,aAA0B,EAAE,CAAA;QAElC,WAAW,MAAMH,GAAOF,IAAAA,QAAAA,CAASG,MAAM,CAAC,IAAI,CAACC,OAAO,CAACC,UAAU,EAAK,CAAA,CAAA;AAClEA,YAAAA,UAAAA,CAAWwG,IAAI,CAAC3G,GAAAA,CAAAA,CAAAA;AAClB,SAAA;;QAGA,MAAMkG,IAAAA,GAAO/F,UAAWjB,CAAAA,GAAG,CAACc,CAAAA,GAAOgG,GAAAA,cAAAA,CAAeC,KAAOjG,CAAAA,CAAAA,GAAAA,EAAK0C,IAAK0C,CAAAA,IAAI,IAAI,KAAA,CAAA,CAAA,CAAA;QAE3E,IAAIqB,MAAAA,CAAOG,MAAM,GAAG,CAAG,EAAA;YACrBV,IAAKW,CAAAA,IAAI,CAAC,IAAI,CAACC,eAAe,CAACL,MAAAA,EAAQ/D,KAAKqE,KAAK,CAAA,CAAA,CAAA;AACnD,SAAA;;QAGA,IAAIrE,IAAAA,CAAK0C,IAAI,EAAE;YACb4B,SAAUd,CAAAA,IAAAA,CAAAA,CAAAA;SACL,MAAA;YACL,KAAK,MAAMe,KAAKf,IAAM,CAAA;gBACpB,IAAIe,CAAAA,CAAEzB,IAAI,EAAE;oBACVyB,CAAEzB,CAAAA,IAAI,GAAG0B,IAAAA,CAAKC,QAAQ,CAACpD,QAAQF,GAAG,EAAA,EAAIoD,CAAEzB,CAAAA,IAAI,CAAK,IAAA,GAAA,CAAA;AACnD,iBAAA;AACF,aAAA;AAEA,YAAA,oBAAM4B,GAACC,CAAAA,IAAAA,EAAAA;gBAAKC,KAAOpB,EAAAA,IAAAA;AAAMqB,gBAAAA,OAAAA,EAAS7E,IAAK6E,CAAAA,OAAO,IAAKtB,KAAAA,CAAMW,MAAM,GAAG,CAAA;;AACpE,SAAA;AACF,KAAA;AAEQF,IAAAA,cAAAA,CAAe5H,IAAyC,EAA+C;;AAE7G,QAAA,IAAImH,KAAQnH,GAAAA,IAAAA,CAAKmH,KAAK,IAAI,EAAE,CAAA;QAE5B,IAAIA,KAAAA,CAAMW,MAAM,KAAK,CAAG,EAAA;YACtB,IAAI9H,IAAAA,CAAK0I,IAAI,EAAE;gBACbvB,KAAQnB,GAAAA,eAAAA,CAAAA;aACH,MAAA,IAAIhG,IAAKsG,CAAAA,IAAI,EAAE;gBACpBa,KAAQlB,GAAAA,eAAAA,CAAAA;aACH,MAAA;gBACLkB,KAAQnH,GAAAA,IAAAA,CAAK2H,MAAM,IAAIzB,kBAAAA,CAAAA;AACzB,aAAA;AACF,SAAA;;AAGA,QAAA,IAAIyB,MAAS3H,GAAAA,IAAAA,CAAK2H,MAAM,IAAI,EAAE,CAAA;AAE9B,QAAA,IAAIR,MAAMW,MAAM,GAAG,KAAKH,MAAOG,CAAAA,MAAM,GAAG,CAAG,EAAA;YACzC,MAAMa,IAAAA,GAAOhB,OAAOxG,MAAM,CAAC,CAACkG,IAAS,GAAA,CAACF,KAAMyB,CAAAA,QAAQ,CAACvB,IAAAA,CAAAA,CAAAA,CAAAA;YAErD,IAAIsB,IAAAA,CAAKb,MAAM,GAAG,CAAG,EAAA;AACnB,gBAAA,IAAI,CAAChJ,MAAM,CAACgD,KAAK,CAAC,CAAC,+CAA+C,EAAE6G,IAAKhI,CAAAA,IAAI,CAAC,IAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA;AACtF,gBAAA,MAAM,IAAIqB,aAAc,CAAA,CAAA,CAAA,CAAA;AAC1B,aAAA;AACF,SAAA;AAEA,QAAA,IAAI2F,OAAOG,MAAM,KAAK,KAAKX,KAAMyB,CAAAA,QAAQ,CAAC,MAAS,CAAA,EAAA;YACjDjB,MAAS,GAAA;AAAC,gBAAA,MAAA;AAAO,aAAA,CAAA;AACnB,SAAA;QAEA,OAAO;AAAER,YAAAA,KAAAA;AAAOQ,YAAAA,MAAAA;AAAO,SAAA,CAAA;AACzB,KAAA;AAEQ1G,IAAAA,gBAAAA,CAAiBjB,IAAyC,EAAY;AAC5E,QAAA,MAAMgB,WAAW,IAAIoB,QAAAA,EAAAA,CAAAA;QAErB,IAAIpC,IAAAA,CAAKuC,OAAO,KAAKC,SAAW,EAAA;AAC9BxB,YAAAA,QAAAA,CAASqB,GAAG,CAAC,IAAII,aAAAA,CAAczC,KAAKuC,OAAO,CAAA,CAAA,CAAA;AAC7C,SAAA;QAEA,IAAIvC,IAAAA,CAAK6I,UAAU,EAAE;AACnB7H,YAAAA,QAAAA,CAASqB,GAAG,CAAC,IAAIC,aAAAA,CAActC,KAAK6I,UAAU,CAAA,CAAA,CAAA;AAChD,SAAA;QAEA,IAAI7I,IAAAA,CAAK0C,QAAQ,KAAKF,SAAW,EAAA;YAC/BxB,QAASqB,CAAAA,GAAG,CAAC,IAAIM,cACf3C,CAAAA,IAAAA,CAAK0C,QAAQ,EACb1C,IAAK4C,CAAAA,mBAAmB,EACxB5C,IAAAA,CAAK6C,eAAe,CAAA,CAAA,CAAA;AAExB,SAAA;QAEA,OAAO7B,QAAAA,CAAAA;AACT,KAAA;IAEQgH,eAAgBL,CAAAA,MAAmB,EAAEM,KAAY,EAAE;AACzD,QAAA,MAAMa,MAASb,GAAAA,KAAAA,KAAU,KAAQ,GAAA,CAAA,GAAI,CAAC,CAAA,CAAA;AAEtC,QAAA,OAAO,CAACnB,CAASC,EAAAA,CAAAA,GAAAA;YACf,KAAK,MAAMM,QAAQM,MAAQ,CAAA;gBACzB,MAAMoB,IAAAA,GAAOlC,WAAW,CAACQ,IAAK,CAAA,CAACP,CAAC,CAACO,IAAK,CAAA,EAAEN,CAAC,CAACM,IAAK,CAAA,CAAA,CAAA;AAE/C,gBAAA,IAAI0B,SAAS,CAAG,EAAA;AACd,oBAAA,OAAOD,MAASC,GAAAA,IAAAA,CAAAA;AAClB,iBAAA;AACF,aAAA;YAEA,OAAO,CAAA,CAAA;AACT,SAAA,CAAA;AACF,KAAA;AACF,CAAA;;AA7LGjG,IAAAA,kBAAAA,EAAAA;AAFUwE,CAAAA,EAAAA,WAAAA,CAAAA,SAAAA,EAAAA,SAAAA,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA;AAAAA,WAAAA,GAAAA,CAAAA,CAAAA;IARZvE,OAAQ,CAAA;QACPC,OAAS,EAAA,MAAA;QACT0C,OAAS,EAAA;AAAC,YAAA,IAAA;AAAK,SAAA;QACfzC,QAAU,EAAA,gBAAA;QACVC,WAAa,EAAA;AACXC,YAAAA,WAAAA;AACD,SAAA;AACH,KAAA,CAAA;AAQKC,IAAAA,GAAAA,CAAAA,CAAAA,EAAAA,MAAOC,CAAAA,MAAAA,CAAAA,CAAAA;AAPCiE,CAAAA,EAAAA,WAAAA,CAAAA;;AC7DN,MAAM0B,UAAmBrK,SAAAA,WAAAA,CAAAA;;AAM9BC,IAAAA,WAAAA,CACE,MAC+B,EAEdC,cAAqC,CACtD;QACA,KAAK,EAAA,CAAA;aAJYC,MAAAA,GAAAA,MAAAA,CAAAA;aAEAD,cAAAA,GAAAA,cAAAA,CAAAA;AAGnB,KAAA;;AAGAE,IAAAA,OAAAA,CAAQC,MAAY,EAAE;AACpB,QAAA,OAAO,IAAI,CAACC,cAAc,CAACD,MACxBE,CAAAA,CAAAA,UAAU,CAAC,MAAQ,EAAA;YAClBC,IAAM,EAAA,QAAA;YACNC,YAAc,EAAA,IAAA;YACdC,IAAM,EAAA,2BAAA;SAEPC,CAAAA,CAAAA,MAAM,CAAC,cAAgB,EAAA;YACtBC,OAAS,EAAA,OAAA;YACTF,IAAM,EAAA,qCAAA;SAEPC,CAAAA,CAAAA,MAAM,CAAC,WAAa,EAAA;YACnBE,KAAO,EAAA,GAAA;YACPC,MAAQ,EAAA;AAAC,gBAAA,KAAA;AAAO,gBAAA,MAAA;AAAQ,gBAAA,MAAA;AAAO,aAAA;YAC/BF,OAAS,EAAA,KAAA;YACTF,IAAM,EAAA,8BAAA,GACJ,gDACA,0BACA,GAAA,mBAAA;AACJ,SAAA,CAEA;SACCQ,MAAM,CAAC,KACPC,CAAAA,CAAAA,mBAAmB,CAAC;YACnB,yBAA2B,EAAA,IAAA;AAC7B,SAAA,CAAA,CAAA;AACJ,KAAA;IAEA,OAAOC,OAAAA,CAAQ6D,IAAyC,EAAE;;QAExD,MAAM1D,IAAAA,GAAO0D,KAAKzD,CAAC,CAACC,GAAG,CAACC,CAAAA,GAAOA,GAAAA,GAAAA,CAAIC,QAAQ,EAAA,CAAA,CAAA;AAE3C,QAAA,IAAIJ,IAAI,CAAC,CAAE,CAAA,KAAK,KAAO,EAAA;YACrBA,IAAKK,CAAAA,MAAM,CAAC,CAAG,EAAA,CAAA,CAAA,CAAA;AACjB,SAAA;QAEAL,IAAKM,CAAAA,OAAO,CAACoD,IAAAA,CAAK1D,IAAI,CAAA,CAAA;;QAGtB,IAAI;YACF,MAAMO,IAAAA,GAAO,IAAI,CAAC5B,cAAc,CAAC6B,KAAK,CAACR,IAAKS,CAAAA,IAAI,CAAC,GAAA,CAAA,CAAA,CAAA;AAEjD,YAAA,MAAM,MAAM,IAAI,CAAC9B,cAAc,CAAC0C,SAAS,CAACd,IAAKe,CAAAA,KAAK,CAAC,CAAE,CAAA,EAAE,IAAI,CAACsC,SAAS,EAAE;AACvErC,gBAAAA,WAAAA,EAAamC,KAAKnC,WAAW;AAC7BC,gBAAAA,SAAAA,EAAWkC,KAAKjC,QAAQ;AAC1B,aAAA,CAAA,CAAA;AACF,SAAA,CAAE,OAAOC,GAAK,EAAA;AACZ,YAAA,IAAIA,eAAeC,mBAAqB,EAAA;AACtC,gBAAA,IAAI,CAAC/C,MAAM,CAACgD,KAAK,CAACF,IAAIG,OAAO,CAAA,CAAA;AAC7B,gBAAA,MAAM,IAAIC,aAAc,CAAA,CAAA,CAAA,CAAA;AAC1B,aAAA;AAEA,YAAA,IAAIJ,eAAeK,eAAiB,EAAA;gBAClC,IAAI,CAACnD,MAAM,CAACgD,KAAK,CAAC,CAAC,iCAAiC,EAAEF,GAAAA,CAAIG,OAAO,CAAC,CAAC,CAAA,CAAA;AACnE,gBAAA,MAAM,IAAIC,aAAc,CAAA,CAAA,CAAA,CAAA;AAC1B,aAAA;YAEA,MAAMJ,GAAAA,CAAAA;AACR,SAAA;AACF,KAAA;AACF,CAAA;;AA1EG6D,IAAAA,oBAAAA,EAAAA;AAFUuD,CAAAA,EAAAA,UAAAA,CAAAA,SAAAA,EAAAA,WAAAA,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA;AAAAA,UAAAA,GAAAA,CAAAA,CAAAA;IARZjG,OAAQ,CAAA;QACPC,OAAS,EAAA,YAAA;QACTC,QAAU,EAAA,gFAAA;QACVC,WAAa,EAAA;AACXC,YAAAA,WAAAA;AACAwC,YAAAA,aAAAA;AACD,SAAA;AACH,KAAA,CAAA;AAQKvC,IAAAA,GAAAA,CAAAA,CAAAA,EAAAA,MAAOC,CAAAA,MAAAA,CAAAA,CAAAA;AAEPD,IAAAA,GAAAA,CAAAA,CAAAA,EAAAA,MAAOE,CAAAA,qBAAAA,CAAAA,CAAAA;AATC0F,CAAAA,EAAAA,UAAAA,CAAAA;;ACbN,MAAMC,WAAoB1B,SAAAA,UAAAA,CAAAA;;AAM/B,IAAA,CAACG,MAAS,GAAA;AACR,QAAA,oBAAMY,GAACY,CAAAA,aAAAA,EAAAA;YAAcpF,SAAW,EAAA,IAAI,CAACA,SAAS;;AAChD,KAAA;AACF,CAAA;;AAPG2B,IAAAA,oBAAAA,EAAAA;AAFUwD,CAAAA,EAAAA,WAAAA,CAAAA,SAAAA,EAAAA,WAAAA,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA;AAAAA,WAAAA,GAAAA,CAAAA,CAAAA;IARZlG,OAAQ,CAAA;QACPC,OAAS,EAAA,MAAA;QACTC,QAAU,EAAA,iCAAA;QACVC,WAAa,EAAA;AACXC,YAAAA,WAAAA;AACAwC,YAAAA,aAAAA;AACD,SAAA;AACH,KAAA,CAAA;AACasD,CAAAA,EAAAA,WAAAA,CAAAA;;ACIN,MAAME,UAAAA,CAAAA;AAAY,CAAA;AAAZA,UAAAA,GAAAA,CAAAA,CAAAA;IAXZC,MAAO,CAAA;QACNhD,IAAM,EAAA,MAAA;QACNiD,QAAU,EAAA;AACR3K,YAAAA,WAAAA;AACA6E,YAAAA,WAAAA;AACAqC,YAAAA,YAAAA;AACA0B,YAAAA,WAAAA;AACA0B,YAAAA,UAAAA;AACAC,YAAAA,WAAAA;AACD,SAAA;AACH,KAAA,CAAA;AACaE,CAAAA,EAAAA,UAAAA,CAAAA;;;;"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- export { c as COMMAND, d as COMMAND_MODULE, C as CONFIG, l as CURRENT, f as Command, q as CommandTask, E as ExitException, I as InkCommand, L as Layout, a as List, M as Middleware, P as PluginLoaderService, t as ScriptTask, S as Service, u as TASK_MANAGER, T as TaskName, b as TaskSpinner, h as applyMiddlewares, e as buildCommandModule, z as capitalize, m as container, w as dynamicImport, x as fixDefaultExport, g as getCommandOpts, j as getModule, i as getRegistry, p as isCommandCtx, r as isScriptCtx, n as lazyInject, o as lazyInjectNamed, v as linesFrom, y as printJson, k as setModule, s as setRegistry, A as splitCommandLine, B as workerCache } from './ink-command-libMC9Gc.js';
2
- export { A as AffectedFilter, G as GitService, b as LazyCurrentProject, d as LazyCurrentWorkspace, L as LoadProject, c as LoadWorkspace, P as Pipeline, f as Plugin, e as PluginModule, a as PrivateFilter, g as Project, h as ProjectRepository, S as ScriptsFilter, T as TaskExpressionService, i as Workspace, W as WorkspaceTree, j as combine, s as streamLines } from './workspace-tree-RzT8Bsb2.js';
1
+ export { c as COMMAND, d as COMMAND_MODULE, C as CONFIG, l as CURRENT, f as Command, q as CommandTask, E as ExitException, I as InkCommand, L as Layout, a as List, M as Middleware, P as PluginLoaderService, t as ScriptTask, S as Service, u as TASK_MANAGER, T as TaskName, b as TaskSpinner, h as applyMiddlewares, e as buildCommandModule, z as capitalize, m as container, w as dynamicImport, x as fixDefaultExport, g as getCommandOpts, j as getModule, i as getRegistry, p as isCommandCtx, r as isScriptCtx, n as lazyInject, o as lazyInjectNamed, v as linesFrom, y as printJson, k as setModule, s as setRegistry, A as splitCommandLine, B as workerCache } from './ink-command-dQCqkmg0.js';
2
+ export { A as AffectedFilter, G as GitService, b as LazyCurrentProject, d as LazyCurrentWorkspace, L as LoadProject, c as LoadWorkspace, P as Pipeline, f as Plugin, e as PluginModule, a as PrivateFilter, g as Project, h as ProjectRepository, S as ScriptsFilter, T as TaskExpressionService, i as Workspace, W as WorkspaceTree, j as combine, s as streamLines } from './workspace-tree-BJ9EO1FB.js';
3
3
  import '@jujulego/logger';
4
4
  import '@swc/helpers/_/_ts_decorate';
5
5
  import '@swc/helpers/_/_ts_param';
@@ -1715,7 +1715,7 @@ class ScriptTask extends GroupTask {
1715
1715
  if (command === "jill") {
1716
1716
  this._logger.debug(`Interpreting ${line}`);
1717
1717
  const argv = commandArgs.map((arg)=>arg.replace(/^["'](.+)["']$/, "$1"));
1718
- const { JillApplication } = await import('./jill.application-CFM4p02J.js').then(function (n) { return n.j; });
1718
+ const { JillApplication } = await import('./jill.application-BEjmcH4e.js').then(function (n) { return n.j; });
1719
1719
  const app = container.get(JillApplication);
1720
1720
  const tasks = await app.tasksOf(argv, {
1721
1721
  project: this.project,
@@ -2069,7 +2069,6 @@ class InkCommand {
2069
2069
  children: children
2070
2070
  }));
2071
2071
  }
2072
- await this.app.waitUntilExit();
2073
2072
  }
2074
2073
  }
2075
2074
  _([
@@ -2080,4 +2079,4 @@ InkCommand = _([
2080
2079
  ], InkCommand);
2081
2080
 
2082
2081
  export { splitCommandLine as A, workerCache as B, CONFIG as C, ContextService as D, ExitException as E, applyConfigOptions as F, InkCommand as I, Layout as L, Middleware as M, PluginLoaderService as P, Service as S, TaskName as T, List as a, TaskSpinner as b, COMMAND as c, COMMAND_MODULE as d, buildCommandModule as e, Command as f, getCommandOpts as g, applyMiddlewares as h, getRegistry as i, getModule as j, setModule as k, CURRENT as l, container as m, lazyInject as n, lazyInjectNamed as o, isCommandCtx as p, CommandTask as q, isScriptCtx as r, setRegistry as s, ScriptTask as t, TASK_MANAGER as u, linesFrom as v, dynamicImport as w, fixDefaultExport as x, printJson as y, capitalize as z };
2083
- //# sourceMappingURL=ink-command-libMC9Gc.js.map
2082
+ //# sourceMappingURL=ink-command-dQCqkmg0.js.map