@ethlete/cli 2.1.0-next.6 → 2.1.0-next.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +57 -7
- package/package.json +1 -1
- package/src/index.js +11 -0
- package/src/index.js.map +1 -1
- package/src/lib/api/auth-hint.d.ts +5 -0
- package/src/lib/api/auth-hint.js +13 -1
- package/src/lib/api/auth-hint.js.map +1 -1
- package/src/lib/auth/auth-command.js +31 -3
- package/src/lib/auth/auth-command.js.map +1 -1
- package/src/lib/auth/composer-auth.d.ts +5 -0
- package/src/lib/auth/composer-auth.js +8 -1
- package/src/lib/auth/composer-auth.js.map +1 -1
- package/src/lib/config/diagnose.js +9 -0
- package/src/lib/config/diagnose.js.map +1 -1
- package/src/lib/config/local-config.d.ts +2 -0
- package/src/lib/config/local-config.js +6 -1
- package/src/lib/config/local-config.js.map +1 -1
- package/src/lib/doctor/doctor-command.d.ts +3 -1
- package/src/lib/doctor/doctor-command.js +5 -5
- package/src/lib/doctor/doctor-command.js.map +1 -1
- package/src/lib/index.d.ts +1 -0
- package/src/lib/index.js +1 -0
- package/src/lib/index.js.map +1 -1
- package/src/lib/update/ai.d.ts +30 -0
- package/src/lib/update/ai.js +44 -0
- package/src/lib/update/ai.js.map +1 -0
- package/src/lib/update/args.d.ts +21 -0
- package/src/lib/update/args.js +89 -0
- package/src/lib/update/args.js.map +1 -0
- package/src/lib/update/index.d.ts +12 -0
- package/src/lib/update/index.js +16 -0
- package/src/lib/update/index.js.map +1 -0
- package/src/lib/update/migration-manifest.d.ts +40 -0
- package/src/lib/update/migration-manifest.js +137 -0
- package/src/lib/update/migration-manifest.js.map +1 -0
- package/src/lib/update/package-manager.d.ts +23 -0
- package/src/lib/update/package-manager.js +47 -0
- package/src/lib/update/package-manager.js.map +1 -0
- package/src/lib/update/packages.d.ts +45 -0
- package/src/lib/update/packages.js +88 -0
- package/src/lib/update/packages.js.map +1 -0
- package/src/lib/update/pending.d.ts +21 -0
- package/src/lib/update/pending.js +41 -0
- package/src/lib/update/pending.js.map +1 -0
- package/src/lib/update/plan.d.ts +52 -0
- package/src/lib/update/plan.js +83 -0
- package/src/lib/update/plan.js.map +1 -0
- package/src/lib/update/registry.d.ts +31 -0
- package/src/lib/update/registry.js +54 -0
- package/src/lib/update/registry.js.map +1 -0
- package/src/lib/update/run-migrations.d.ts +44 -0
- package/src/lib/update/run-migrations.js +73 -0
- package/src/lib/update/run-migrations.js.map +1 -0
- package/src/lib/update/semver.d.ts +19 -0
- package/src/lib/update/semver.js +79 -0
- package/src/lib/update/semver.js.map +1 -0
- package/src/lib/update/tasks.d.ts +58 -0
- package/src/lib/update/tasks.js +174 -0
- package/src/lib/update/tasks.js.map +1 -0
- package/src/lib/update/update-command.d.ts +12 -0
- package/src/lib/update/update-command.js +299 -0
- package/src/lib/update/update-command.js.map +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @ethlete/cli
|
|
2
2
|
|
|
3
|
+
## 2.1.0-next.8
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#3075](https://github.com/ethlete-io/ethdk/pull/3075) [`004c32d`](https://github.com/ethlete-io/ethdk/commit/004c32d0ada3d7862947843dd6e8b204876160fe) Thanks [@github-actions](https://github.com/apps/github-actions)! - `doctorCommand` accepts an optional `composeTools` override for the container-engine check.
|
|
8
|
+
|
|
9
|
+
- [#3075](https://github.com/ethlete-io/ethdk/pull/3075) [`1d38e7e`](https://github.com/ethlete-io/ethdk/commit/1d38e7e0a025769f065d8ca7d506cb75ad89139a) Thanks [@github-actions](https://github.com/apps/github-actions)! - `et update` moves the `@ethlete/*` packages to a newer version, runs the codemods those versions
|
|
10
|
+
declare in their own `migrations.json`, and reports what needs a decision or an agent.
|
|
11
|
+
|
|
12
|
+
## 2.1.0-next.7
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- [#3074](https://github.com/ethlete-io/ethdk/pull/3074) [`63a528a`](https://github.com/ethlete-io/ethdk/commit/63a528a0ab1b1e7163e71c1cf5f65415bdda32d9) Thanks [@github-actions](https://github.com/apps/github-actions)! - `et auth` now takes a host written as a url, and asks before it replaces a token `auth.json`
|
|
17
|
+
already holds for that host.
|
|
18
|
+
|
|
3
19
|
## 2.1.0-next.6
|
|
4
20
|
|
|
5
21
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -27,9 +27,46 @@ yarn et auth glpat-xxxxxxxxxxxxxxxxxxxx # the host comes fro
|
|
|
27
27
|
yarn et auth gitlab.example.com glpat-xxxxxxxxxxxxxxxxxxxx # name it when more than one is in use
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
The
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
The host may be written as a url. Only its host name is used.
|
|
31
|
+
|
|
32
|
+
The token is checked against the host first: once for the token itself, and once with the request
|
|
33
|
+
`git clone` makes for a private dependency. A token that can read the API but not fetch code answers
|
|
34
|
+
`403` there, and nothing is written. A token the file already holds for that host is replaced only
|
|
35
|
+
after a question. `--force` skips both.
|
|
36
|
+
|
|
37
|
+
## `et update`
|
|
38
|
+
|
|
39
|
+
Moves this repo's `@ethlete/*` dependencies to a newer version and runs the migrations those versions
|
|
40
|
+
ship.
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
yarn et update --check # what would change; exits 1 while an update is pending
|
|
44
|
+
yarn et update # bump, install, run the codemods, report the rest
|
|
45
|
+
yarn et update core # only @ethlete/core
|
|
46
|
+
yarn et update --tag latest # leave the prerelease line
|
|
47
|
+
yarn et update core --to 5.0.0-next.55 # an exact version for the package you name
|
|
48
|
+
yarn et update --continue # finish a run that stopped
|
|
49
|
+
yarn et update --ai # hand every agent-assisted task to an agent
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
The target follows the dist tag the installed version is on, so a repo on a `-next` prerelease stays
|
|
53
|
+
on `next`. The working tree must be clean, because the codemods rewrite files; `--force` skips that
|
|
54
|
+
check.
|
|
55
|
+
|
|
56
|
+
The install runs before the migrations are read, because the migrations of a version ship inside that
|
|
57
|
+
version. A run that stops leaves `.ethlete/update/pending.json` behind, and `--continue` picks it up -
|
|
58
|
+
starting over would skip every migration the stopped run had not reached.
|
|
59
|
+
|
|
60
|
+
Everything a codemod cannot decide is written to `.ethlete/update`: `tasks.md` for you, `tasks.json`
|
|
61
|
+
for an agent, and one file per task holding the instructions the package ships. A task is `manual` (it
|
|
62
|
+
needs a decision), `assisted` (written as a prompt for an agent) or `unsupported` (a codemod this repo
|
|
63
|
+
has no Nx to run, with the command to run it by hand).
|
|
64
|
+
|
|
65
|
+
`--ai` hands each assisted task to the command in `updateAgentCommand` in
|
|
66
|
+
`ethlete.config.local.json`, one run per task. No agent is detected automatically.
|
|
67
|
+
|
|
68
|
+
A package declares its migrations in `migrations.json` at its own root, pointed at from `package.json`
|
|
69
|
+
with `"ethlete": { "migrations": "./migrations.json" }`. The full format is on the docs site.
|
|
33
70
|
|
|
34
71
|
## `et api`
|
|
35
72
|
|
|
@@ -49,15 +86,27 @@ yarn et api checkout hub # switch the checkout to the branch apiRepoBranc
|
|
|
49
86
|
yarn et api pull hub # fetch and fast-forward the checked-out branch
|
|
50
87
|
yarn et api pull hub --force # the same, discarding local commits and tracked changes
|
|
51
88
|
yarn et api clone hub # clone the API into .ethlete/hub
|
|
89
|
+
yarn et api clear hub # remove that clone again
|
|
90
|
+
yarn et api clear --all # remove every managed clone
|
|
52
91
|
yarn et api setup hub # run the API's own setupCommand, which writes its .env
|
|
53
92
|
```
|
|
54
93
|
|
|
55
94
|
Every command takes a comma-separated list of names, and acts on each API in turn.
|
|
56
95
|
|
|
57
|
-
`checkout`, `pull` and `
|
|
58
|
-
and need no container engine. `pull` refuses to run on a checkout with uncommitted
|
|
59
|
-
`--force`. `--force` resets the branch to its remote and throws away local
|
|
60
|
-
changes; it never touches untracked or ignored files, so a `vendor/` directory or
|
|
96
|
+
`clone`, `checkout`, `pull`, `setup` and `clear` act on the checkout itself, so they work before the
|
|
97
|
+
API has an `.env` and need no container engine. `pull` refuses to run on a checkout with uncommitted
|
|
98
|
+
changes unless you pass `--force`. `--force` resets the branch to its remote and throws away local
|
|
99
|
+
commits and tracked changes; it never touches untracked or ignored files, so a `vendor/` directory or
|
|
100
|
+
a `.env` survives.
|
|
101
|
+
|
|
102
|
+
`clear` removes a managed checkout in `.ethlete/<name>`, and only that one: a path you set in
|
|
103
|
+
`apiRepoPaths` is your own. It asks one question for every API you named, takes their containers down
|
|
104
|
+
first, and refuses a checkout that holds uncommitted changes or commits no remote holds. `--force`
|
|
105
|
+
skips those two git checks.
|
|
106
|
+
|
|
107
|
+
Before it starts anything, `up` reads the host ports the requested services publish and checks
|
|
108
|
+
whether something already holds them. In a terminal it offers to stop the containers that hold them.
|
|
109
|
+
`--force` skips the check and lets the engine report the conflict itself.
|
|
61
110
|
|
|
62
111
|
The first container tool that answers is used, in this order: `docker compose`,
|
|
63
112
|
`container compose`, `podman-compose`, `podman compose`.
|
|
@@ -126,3 +175,4 @@ fallback with a warning. Add `ethlete.config.local.json` to your `.gitignore`.
|
|
|
126
175
|
Full command reference on the docs site:
|
|
127
176
|
|
|
128
177
|
- [Overview & usage](https://ethlete-sdk-docs.web.app/cli/)
|
|
178
|
+
- [Updating the SDK](https://ethlete-sdk-docs.web.app/cli/update)
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -25,6 +25,11 @@ const USAGE_ROWS = [
|
|
|
25
25
|
args: '',
|
|
26
26
|
lines: ["Check this machine's ethlete.config.local.json, container engine", 'and every API checkout'],
|
|
27
27
|
},
|
|
28
|
+
{
|
|
29
|
+
subcommand: 'update',
|
|
30
|
+
args: ' [packages...]',
|
|
31
|
+
lines: ['Move the @ethlete/* packages to a newer version and run the', 'migrations those versions ship'],
|
|
32
|
+
},
|
|
28
33
|
];
|
|
29
34
|
const usage = (root) => {
|
|
30
35
|
const rows = USAGE_ROWS.map((row) => (Object.assign(Object.assign({}, row), { command: `${(0, lib_1.repoInvocation)({ root, subcommand: row.subcommand })}${row.args}` })));
|
|
@@ -55,6 +60,12 @@ const cli = (args) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
|
55
60
|
argv: args.slice(1),
|
|
56
61
|
invocation: (0, lib_1.repoInvocation)({ root: process.cwd(), subcommand: 'auth' }),
|
|
57
62
|
});
|
|
63
|
+
case 'update':
|
|
64
|
+
return (0, lib_1.updateCommand)({
|
|
65
|
+
root: process.cwd(),
|
|
66
|
+
argv: args.slice(1),
|
|
67
|
+
invocation: (0, lib_1.repoInvocation)({ root: process.cwd(), subcommand: 'update' }),
|
|
68
|
+
});
|
|
58
69
|
case 'doctor':
|
|
59
70
|
// Every fix it names is an `et api` command, so it needs that script rather than its own.
|
|
60
71
|
return (0, lib_1.doctorCommand)({
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/cli/src/index.ts"],"names":[],"mappings":";;;AAAA,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/cli/src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,5 +7,10 @@ export declare const printPrivateDependencyHint: (options: {
|
|
|
7
7
|
}) => void;
|
|
8
8
|
/** The host of a git url, for naming it in the hint. Undefined when the url has no host. */
|
|
9
9
|
export declare const gitUrlHost: (repoUrl: string) => string | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* The host a user names on the command line, which is often pasted as a url: `https://git.example.com/`
|
|
12
|
+
* holds the same host as `git.example.com`. Undefined when there is no host name in it at all.
|
|
13
|
+
*/
|
|
14
|
+
export declare const gitHostFromInput: (value: string) => string | undefined;
|
|
10
15
|
/** The `group/project` part of a git url, for addressing the project in a host's own API. */
|
|
11
16
|
export declare const gitUrlProjectPath: (repoUrl: string) => string | undefined;
|
package/src/lib/api/auth-hint.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.gitUrlProjectPath = exports.gitUrlHost = exports.printPrivateDependencyHint = void 0;
|
|
3
|
+
exports.gitUrlProjectPath = exports.gitHostFromInput = exports.gitUrlHost = exports.printPrivateDependencyHint = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* A private dependency that will not download is the most common way these commands fail, and git
|
|
6
6
|
* and the package managers report it as a bare 403 or a public-key error. This says what to check.
|
|
@@ -30,6 +30,18 @@ const gitUrlHost = (repoUrl) => {
|
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
32
|
exports.gitUrlHost = gitUrlHost;
|
|
33
|
+
/**
|
|
34
|
+
* The host a user names on the command line, which is often pasted as a url: `https://git.example.com/`
|
|
35
|
+
* holds the same host as `git.example.com`. Undefined when there is no host name in it at all.
|
|
36
|
+
*/
|
|
37
|
+
const gitHostFromInput = (value) => {
|
|
38
|
+
var _a;
|
|
39
|
+
const trimmed = value.trim();
|
|
40
|
+
if (!trimmed || trimmed.startsWith('/'))
|
|
41
|
+
return undefined;
|
|
42
|
+
return (_a = (0, exports.gitUrlHost)(trimmed)) !== null && _a !== void 0 ? _a : (0, exports.gitUrlHost)(`https://${trimmed}`);
|
|
43
|
+
};
|
|
44
|
+
exports.gitHostFromInput = gitHostFromInput;
|
|
33
45
|
/** The `group/project` part of a git url, for addressing the project in a host's own API. */
|
|
34
46
|
const gitUrlProjectPath = (repoUrl) => {
|
|
35
47
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-hint.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/auth-hint.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACI,MAAM,0BAA0B,GAAG,CAAC,OAA8B,EAAE,EAAE;;IAC3E,MAAM,IAAI,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,eAAe,CAAC;IAEjD,OAAO,CAAC,KAAK,CACX,wFAAwF;QACtF,sCAAsC;QACtC,oCAAoC,IAAI,sCAAsC;QAC9E,6FAA6F;QAC7F,0CAA0C,IAAI,8CAA8C;QAC5F,0FAA0F;QAC1F,sFAAsF,CACzF,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,0BAA0B,8BAYrC;AAEF,4FAA4F;AACrF,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,EAAE;IAC5C,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IAE/B,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC;IAChD,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAVW,QAAA,UAAU,cAUrB;AAEF,6FAA6F;AACtF,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,EAAE;;IACnD,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEnD,IAAI,OAAO;QAAE,OAAO,CAAC,MAAA,OAAO,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;IAE1E,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;IAC1F,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAVW,QAAA,iBAAiB,qBAU5B"}
|
|
1
|
+
{"version":3,"file":"auth-hint.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/api/auth-hint.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACI,MAAM,0BAA0B,GAAG,CAAC,OAA8B,EAAE,EAAE;;IAC3E,MAAM,IAAI,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,eAAe,CAAC;IAEjD,OAAO,CAAC,KAAK,CACX,wFAAwF;QACtF,sCAAsC;QACtC,oCAAoC,IAAI,sCAAsC;QAC9E,6FAA6F;QAC7F,0CAA0C,IAAI,8CAA8C;QAC5F,0FAA0F;QAC1F,sFAAsF,CACzF,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,0BAA0B,8BAYrC;AAEF,4FAA4F;AACrF,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,EAAE;IAC5C,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IAE/B,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC;IAChD,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAVW,QAAA,UAAU,cAUrB;AAEF;;;GAGG;AACI,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE;;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAE1D,OAAO,MAAA,IAAA,kBAAU,EAAC,OAAO,CAAC,mCAAI,IAAA,kBAAU,EAAC,WAAW,OAAO,EAAE,CAAC,CAAC;AACjE,CAAC,CAAC;AANW,QAAA,gBAAgB,oBAM3B;AAEF,6FAA6F;AACtF,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAE,EAAE;;IACnD,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEnD,IAAI,OAAO;QAAE,OAAO,CAAC,MAAA,OAAO,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;IAE1E,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;IAC1F,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAVW,QAAA,iBAAiB,qBAU5B"}
|
|
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const auth_hint_1 = require("../api/auth-hint");
|
|
6
6
|
const load_definitions_1 = require("../api/load-definitions");
|
|
7
7
|
const resolve_checkout_1 = require("../api/resolve-checkout");
|
|
8
|
+
const utils_1 = require("../utils");
|
|
8
9
|
const composer_auth_1 = require("./composer-auth");
|
|
9
10
|
const composer_repositories_1 = require("./composer-repositories");
|
|
10
11
|
const gitlab_token_1 = require("./gitlab-token");
|
|
@@ -16,8 +17,11 @@ const usage = (invocation) => [
|
|
|
16
17
|
'',
|
|
17
18
|
'The host is optional when every API in ethlete.apis.js sits on the same one.',
|
|
18
19
|
'',
|
|
20
|
+
'A host may be written as a url. Only its host name is used.',
|
|
21
|
+
'',
|
|
19
22
|
'Flags',
|
|
20
|
-
' --force Write the token even when the check says it cannot fetch code',
|
|
23
|
+
' --force Write the token even when the check says it cannot fetch code, and replace',
|
|
24
|
+
' a token the file already holds for that host without asking',
|
|
21
25
|
].join('\n');
|
|
22
26
|
/**
|
|
23
27
|
* Every host in play, and the projects on each one that a token is needed for. The projects come from
|
|
@@ -92,8 +96,12 @@ const authCommand = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({
|
|
|
92
96
|
const force = argv.includes('--force');
|
|
93
97
|
const survey = surveyHosts(root);
|
|
94
98
|
const named = positional.length === 2;
|
|
95
|
-
const host = named ? ((_b = positional[0]) !== null && _b !== void 0 ? _b : '') : survey.hosts[0];
|
|
99
|
+
const host = named ? (0, auth_hint_1.gitHostFromInput)((_b = positional[0]) !== null && _b !== void 0 ? _b : '') : survey.hosts[0];
|
|
96
100
|
const token = (_c = positional[named ? 1 : 0]) !== null && _c !== void 0 ? _c : '';
|
|
101
|
+
if (named && host === undefined) {
|
|
102
|
+
console.error(`"${positional[0]}" holds no host name. Name the host itself:\n\n ${invocation} gitlab.example.com <token>`);
|
|
103
|
+
return 1;
|
|
104
|
+
}
|
|
97
105
|
if (host === undefined) {
|
|
98
106
|
console.error(`No host to write a token for. ethlete.apis.js declares no repoUrl, so name the host:\n\n` +
|
|
99
107
|
` ${invocation} gitlab.example.com <token>`);
|
|
@@ -124,13 +132,33 @@ const authCommand = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({
|
|
|
124
132
|
`Give it read access to the code, or re-run with --force to write it anyway.`);
|
|
125
133
|
return 1;
|
|
126
134
|
}
|
|
135
|
+
const stored = (0, composer_auth_1.storedGitlabToken)({ home, host });
|
|
136
|
+
if (stored !== undefined && stored !== token && !force) {
|
|
137
|
+
const accepted = yield (0, utils_1.confirm)({
|
|
138
|
+
problem: `\n${(0, composer_auth_1.composerAuthPath)(home)} already holds a different token for ${host}.`,
|
|
139
|
+
question: 'Replace it?',
|
|
140
|
+
hint: 'Re-run in a terminal to answer the question, or re-run with --force to replace it.',
|
|
141
|
+
defaultsToYes: false,
|
|
142
|
+
});
|
|
143
|
+
if (!accepted) {
|
|
144
|
+
console.error('\nNothing was written. The token already in the file was kept.');
|
|
145
|
+
return 1;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
127
148
|
const written = (0, composer_auth_1.writeGitlabToken)({ home, host, token });
|
|
128
149
|
if (!written.ok) {
|
|
129
150
|
console.error(`\n${written.problem}`);
|
|
130
151
|
return 1;
|
|
131
152
|
}
|
|
153
|
+
const strays = (0, composer_auth_1.gitlabTokenHosts)(home).filter((key) => key !== host && (0, auth_hint_1.gitHostFromInput)(key) === host);
|
|
154
|
+
const single = strays.length === 1;
|
|
155
|
+
const unused = single ? 'that entry is' : 'those entries are';
|
|
132
156
|
console.log(`\n${written.replaced ? 'Replaced' : 'Wrote'} the ${host} token in ${(0, composer_auth_1.composerAuthPath)(home)}.\n` +
|
|
133
|
-
`The API containers mount that directory, so composer inside them reads it.`
|
|
157
|
+
`The API containers mount that directory, so composer inside them reads it.` +
|
|
158
|
+
(strays.length === 0
|
|
159
|
+
? ''
|
|
160
|
+
: `\n\nThe file also holds ${strays.map((key) => `"${key}"`).join(', ')} for the same host. Composer ` +
|
|
161
|
+
`matches a gitlab-token by host name, so ${unused} never used. You can remove ${single ? 'it' : 'them'}.`));
|
|
134
162
|
return 0;
|
|
135
163
|
});
|
|
136
164
|
exports.authCommand = authCommand;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-command.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/auth/auth-command.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"auth-command.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/auth/auth-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,5 +21,10 @@ export declare const writeGitlabToken: (options: {
|
|
|
21
21
|
host: string;
|
|
22
22
|
token: string;
|
|
23
23
|
}) => WriteTokenResult;
|
|
24
|
+
/** The token composer already holds for one host, or undefined when it holds none. */
|
|
25
|
+
export declare const storedGitlabToken: (options: {
|
|
26
|
+
home: string;
|
|
27
|
+
host: string;
|
|
28
|
+
}) => string | undefined;
|
|
24
29
|
/** The hosts composer already holds a GitLab token for. */
|
|
25
30
|
export declare const gitlabTokenHosts: (home: string) => string[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.gitlabTokenHosts = exports.writeGitlabToken = exports.composerAuthPath = exports.defaultComposerHome = void 0;
|
|
3
|
+
exports.gitlabTokenHosts = exports.storedGitlabToken = exports.writeGitlabToken = exports.composerAuthPath = exports.defaultComposerHome = void 0;
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const os_1 = require("os");
|
|
6
6
|
const path_1 = require("path");
|
|
@@ -53,6 +53,13 @@ const writeGitlabToken = (options) => {
|
|
|
53
53
|
return { ok: true, path, replaced };
|
|
54
54
|
};
|
|
55
55
|
exports.writeGitlabToken = writeGitlabToken;
|
|
56
|
+
/** The token composer already holds for one host, or undefined when it holds none. */
|
|
57
|
+
const storedGitlabToken = (options) => {
|
|
58
|
+
var _a;
|
|
59
|
+
const read = readAuth((0, exports.composerAuthPath)(options.home));
|
|
60
|
+
return 'unreadable' in read ? undefined : (_a = storedTokens(read.auth)) === null || _a === void 0 ? void 0 : _a[options.host];
|
|
61
|
+
};
|
|
62
|
+
exports.storedGitlabToken = storedGitlabToken;
|
|
56
63
|
/** The hosts composer already holds a GitLab token for. */
|
|
57
64
|
const gitlabTokenHosts = (home) => {
|
|
58
65
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composer-auth.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/auth/composer-auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"composer-auth.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/auth/composer-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,12 +59,21 @@ const describeApiRepoBranches = (options) => {
|
|
|
59
59
|
? []
|
|
60
60
|
: [`${fileName} has an invalid "apiRepoBranches.${app}" value — use a non-empty branch name.`]);
|
|
61
61
|
};
|
|
62
|
+
const describeUpdateAgentCommand = (options) => {
|
|
63
|
+
const { value, fileName } = options;
|
|
64
|
+
if (value === undefined)
|
|
65
|
+
return [];
|
|
66
|
+
return typeof value === 'string' && value.trim().length > 0
|
|
67
|
+
? []
|
|
68
|
+
: [`${fileName} has an invalid "updateAgentCommand" value — use the command that hands a prompt to an agent.`];
|
|
69
|
+
};
|
|
62
70
|
const describeValues = (options) => {
|
|
63
71
|
const { root, config, fileName } = options;
|
|
64
72
|
return [
|
|
65
73
|
...describeSdkSourcePath({ root, value: config.sdkSourcePath, fileName }),
|
|
66
74
|
...describeApiRepoPaths({ root, value: config.apiRepoPaths, fileName }),
|
|
67
75
|
...describeApiRepoBranches({ value: config.apiRepoBranches, fileName }),
|
|
76
|
+
...describeUpdateAgentCommand({ value: config.updateAgentCommand, fileName }),
|
|
68
77
|
];
|
|
69
78
|
};
|
|
70
79
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/config/diagnose.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"diagnose.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/config/diagnose.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,8 @@ export type LocalConfig = {
|
|
|
15
15
|
apiRepoPaths?: Record<string, string>;
|
|
16
16
|
/** Branch that represents each API's deployed state, keyed by app name. `"*"` matches any app. */
|
|
17
17
|
apiRepoBranches?: Record<string, string>;
|
|
18
|
+
/** Command `et update --ai` hands an assisted migration task to, for example `claude -p`. */
|
|
19
|
+
updateAgentCommand?: string;
|
|
18
20
|
};
|
|
19
21
|
export declare const LOCAL_CONFIG_KEYS: (keyof LocalConfig)[];
|
|
20
22
|
export type LocalConfigFileState = {
|
|
@@ -9,7 +9,12 @@ exports.LOCAL_CONFIG_FILE_NAME = 'ethlete.config.local.json';
|
|
|
9
9
|
* fallback so an existing checkout keeps working, and reported so the developer can move them.
|
|
10
10
|
*/
|
|
11
11
|
exports.LEGACY_LOCAL_CONFIG_FILE_NAME = 'ethlete-agents.config.local.json';
|
|
12
|
-
exports.LOCAL_CONFIG_KEYS = [
|
|
12
|
+
exports.LOCAL_CONFIG_KEYS = [
|
|
13
|
+
'sdkSourcePath',
|
|
14
|
+
'apiRepoPaths',
|
|
15
|
+
'apiRepoBranches',
|
|
16
|
+
'updateAgentCommand',
|
|
17
|
+
];
|
|
13
18
|
/** Reads one config file, keeping "not there" apart from "there but broken" for `et doctor`. */
|
|
14
19
|
const readLocalConfigFile = (path) => {
|
|
15
20
|
if (!(0, fs_1.existsSync)(path))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-config.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/config/local-config.ts"],"names":[],"mappings":";;;AAAA,2BAA8C;AAC9C,+BAAiD;AAEpC,QAAA,sBAAsB,GAAG,2BAA2B,CAAC;AAElE;;;GAGG;AACU,QAAA,6BAA6B,GAAG,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"local-config.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/config/local-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { ComposeTool } from '../api/compose';
|
|
1
2
|
/** Reports every problem with this machine's setup, so `et api` does not have to find them one at a time. */
|
|
2
|
-
export declare const doctorCommand: ({ root, apiInvocation }: {
|
|
3
|
+
export declare const doctorCommand: ({ root, apiInvocation, composeTools, }: {
|
|
3
4
|
root: string;
|
|
4
5
|
apiInvocation?: string;
|
|
6
|
+
composeTools?: ComposeTool[];
|
|
5
7
|
}) => 0 | 1;
|
|
@@ -8,11 +8,11 @@ const resolve_checkout_1 = require("../api/resolve-checkout");
|
|
|
8
8
|
const diagnose_1 = require("../config/diagnose");
|
|
9
9
|
const local_config_1 = require("../config/local-config");
|
|
10
10
|
const indent = (text) => text.replace(/\n/g, '\n ');
|
|
11
|
-
const describeComposeTool = () => {
|
|
12
|
-
const tool = (0, compose_1.resolveComposeTool)();
|
|
11
|
+
const describeComposeTool = (composeTools) => {
|
|
12
|
+
const tool = (0, compose_1.resolveComposeTool)(composeTools);
|
|
13
13
|
return tool
|
|
14
14
|
? { line: `container engine: ${(0, compose_1.composeBinary)(tool.compose).join(' ')}`, problems: [] }
|
|
15
|
-
: { line: undefined, problems: [`No compose tool found. Tried: ${(0, compose_1.composeToolNames)().join(', ')}.`] };
|
|
15
|
+
: { line: undefined, problems: [`No compose tool found. Tried: ${(0, compose_1.composeToolNames)(composeTools).join(', ')}.`] };
|
|
16
16
|
};
|
|
17
17
|
const describeApis = (root, apiInvocation) => {
|
|
18
18
|
const { found, apis, fileName } = (0, load_definitions_1.loadApiDefinitions)(root);
|
|
@@ -32,7 +32,7 @@ const describeApis = (root, apiInvocation) => {
|
|
|
32
32
|
return { lines, problems };
|
|
33
33
|
};
|
|
34
34
|
/** Reports every problem with this machine's setup, so `et api` does not have to find them one at a time. */
|
|
35
|
-
const doctorCommand = ({ root, apiInvocation = 'et api' }) => {
|
|
35
|
+
const doctorCommand = ({ root, apiInvocation = 'et api', composeTools, }) => {
|
|
36
36
|
// A file that exists but cannot be parsed still has to be reported, so this asks whether the file
|
|
37
37
|
// is there rather than whether it could be read.
|
|
38
38
|
const hasConfig = [local_config_1.LOCAL_CONFIG_FILE_NAME, local_config_1.LEGACY_LOCAL_CONFIG_FILE_NAME].some((fileName) => (0, local_config_1.readLocalConfigFile)((0, path_1.join)(root, fileName)).status !== 'absent');
|
|
@@ -42,7 +42,7 @@ const doctorCommand = ({ root, apiInvocation = 'et api' }) => {
|
|
|
42
42
|
return 0;
|
|
43
43
|
}
|
|
44
44
|
const configProblems = (0, diagnose_1.diagnoseLocalConfig)({ root });
|
|
45
|
-
const compose = describeComposeTool();
|
|
45
|
+
const compose = describeComposeTool(composeTools);
|
|
46
46
|
const apis = describeApis(root, apiInvocation);
|
|
47
47
|
const problems = [...configProblems, ...compose.problems, ...apis.problems];
|
|
48
48
|
for (const line of [compose.line, ...apis.lines].filter(Boolean)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-command.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/doctor/doctor-command.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"doctor-command.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/doctor/doctor-command.ts"],"names":[],"mappings":"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"}
|
package/src/lib/index.d.ts
CHANGED
package/src/lib/index.js
CHANGED
|
@@ -7,4 +7,5 @@ tslib_1.__exportStar(require("./config"), exports);
|
|
|
7
7
|
tslib_1.__exportStar(require("./doctor"), exports);
|
|
8
8
|
tslib_1.__exportStar(require("./invocation"), exports);
|
|
9
9
|
tslib_1.__exportStar(require("./release"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./update"), exports);
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
package/src/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,gDAAsB;AACtB,iDAAuB;AACvB,mDAAyB;AACzB,mDAAyB;AACzB,uDAA6B;AAC7B,oDAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/cli/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,gDAAsB;AACtB,iDAAuB;AACvB,mDAAyB;AACzB,mDAAyB;AACzB,uDAA6B;AAC7B,oDAA0B;AAC1B,mDAAyB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { UpdateTask } from './tasks';
|
|
2
|
+
/** Where the agent command sits in `ethlete.config.local.json`. */
|
|
3
|
+
export declare const AGENT_COMMAND_KEY = "updateAgentCommand";
|
|
4
|
+
/** What the command template is asked to hold, so the prompt can go anywhere in it. */
|
|
5
|
+
export declare const PROMPT_PLACEHOLDER = "<prompt>";
|
|
6
|
+
/**
|
|
7
|
+
* The command that hands one task to an agent. `<prompt>` becomes the path of the task file; a template
|
|
8
|
+
* without it gets the path appended, which is what a plain `claude -p` needs.
|
|
9
|
+
*/
|
|
10
|
+
export declare const agentCommand: (options: {
|
|
11
|
+
template: string;
|
|
12
|
+
promptPath: string;
|
|
13
|
+
}) => string;
|
|
14
|
+
export type AgentRun = {
|
|
15
|
+
task: UpdateTask;
|
|
16
|
+
command: string;
|
|
17
|
+
ok: boolean;
|
|
18
|
+
reason?: string;
|
|
19
|
+
};
|
|
20
|
+
/** The tasks an agent can work on: the ones whose instructions were written as a prompt. */
|
|
21
|
+
export declare const assistedTasks: (tasks: readonly UpdateTask[]) => UpdateTask[];
|
|
22
|
+
/**
|
|
23
|
+
* Runs the configured agent once per assisted task, in order, so each run has one change to make. The
|
|
24
|
+
* command is a user-written string, so it runs through a shell.
|
|
25
|
+
*/
|
|
26
|
+
export declare const runAgentTasks: (options: {
|
|
27
|
+
root: string;
|
|
28
|
+
template: string;
|
|
29
|
+
tasks: readonly UpdateTask[];
|
|
30
|
+
}) => AgentRun[];
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runAgentTasks = exports.assistedTasks = exports.agentCommand = exports.PROMPT_PLACEHOLDER = exports.AGENT_COMMAND_KEY = void 0;
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
/** Where the agent command sits in `ethlete.config.local.json`. */
|
|
7
|
+
exports.AGENT_COMMAND_KEY = 'updateAgentCommand';
|
|
8
|
+
/** What the command template is asked to hold, so the prompt can go anywhere in it. */
|
|
9
|
+
exports.PROMPT_PLACEHOLDER = '<prompt>';
|
|
10
|
+
/**
|
|
11
|
+
* The command that hands one task to an agent. `<prompt>` becomes the path of the task file; a template
|
|
12
|
+
* without it gets the path appended, which is what a plain `claude -p` needs.
|
|
13
|
+
*/
|
|
14
|
+
const agentCommand = (options) => {
|
|
15
|
+
const { template, promptPath } = options;
|
|
16
|
+
const quoted = /\s/.test(promptPath) ? `"${promptPath}"` : promptPath;
|
|
17
|
+
return template.includes(exports.PROMPT_PLACEHOLDER)
|
|
18
|
+
? template.split(exports.PROMPT_PLACEHOLDER).join(quoted)
|
|
19
|
+
: `${template} ${quoted}`;
|
|
20
|
+
};
|
|
21
|
+
exports.agentCommand = agentCommand;
|
|
22
|
+
/** The tasks an agent can work on: the ones whose instructions were written as a prompt. */
|
|
23
|
+
const assistedTasks = (tasks) => tasks.filter((task) => task.kind === 'assisted' && task.instructionsFile !== undefined);
|
|
24
|
+
exports.assistedTasks = assistedTasks;
|
|
25
|
+
/**
|
|
26
|
+
* Runs the configured agent once per assisted task, in order, so each run has one change to make. The
|
|
27
|
+
* command is a user-written string, so it runs through a shell.
|
|
28
|
+
*/
|
|
29
|
+
const runAgentTasks = (options) => {
|
|
30
|
+
const { root, template, tasks } = options;
|
|
31
|
+
return (0, exports.assistedTasks)(tasks).map((task) => {
|
|
32
|
+
var _a;
|
|
33
|
+
const command = (0, exports.agentCommand)({ template, promptPath: (0, path_1.join)(root, (_a = task.instructionsFile) !== null && _a !== void 0 ? _a : '') });
|
|
34
|
+
console.log(`\n ${command}`);
|
|
35
|
+
const result = (0, child_process_1.spawnSync)(command, { cwd: root, stdio: 'inherit', shell: true });
|
|
36
|
+
if (result.error)
|
|
37
|
+
return { task, command, ok: false, reason: result.error.message };
|
|
38
|
+
if (result.status !== 0)
|
|
39
|
+
return { task, command, ok: false, reason: `exited with ${result.status}` };
|
|
40
|
+
return { task, command, ok: true };
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
exports.runAgentTasks = runAgentTasks;
|
|
44
|
+
//# sourceMappingURL=ai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/update/ai.ts"],"names":[],"mappings":";;;AAAA,iDAA0C;AAC1C,+BAA4B;AAG5B,mEAAmE;AACtD,QAAA,iBAAiB,GAAG,oBAAoB,CAAC;AAEtD,uFAAuF;AAC1E,QAAA,kBAAkB,GAAG,UAAU,CAAC;AAE7C;;;GAGG;AACI,MAAM,YAAY,GAAG,CAAC,OAAiD,EAAE,EAAE;IAChF,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;IAEtE,OAAO,QAAQ,CAAC,QAAQ,CAAC,0BAAkB,CAAC;QAC1C,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,0BAAkB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACjD,CAAC,CAAC,GAAG,QAAQ,IAAI,MAAM,EAAE,CAAC;AAC9B,CAAC,CAAC;AAPW,QAAA,YAAY,gBAOvB;AASF,4FAA4F;AACrF,MAAM,aAAa,GAAG,CAAC,KAA4B,EAAE,EAAE,CAC5D,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC;AAD7E,QAAA,aAAa,iBACgE;AAE1F;;;GAGG;AACI,MAAM,aAAa,GAAG,CAAC,OAI7B,EAAc,EAAE;IACf,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAE1C,OAAO,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;;QACvC,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,MAAA,IAAI,CAAC,gBAAgB,mCAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAEhG,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;QAE9B,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhF,IAAI,MAAM,CAAC,KAAK;YAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAEpF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAErG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AApBW,QAAA,aAAa,iBAoBxB"}
|