@veilio-inc/cli 0.6.0 → 0.6.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 +17 -0
- package/dist/args.js +1 -1
- package/dist/args.js.map +1 -1
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +1 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/maps.d.ts +8 -0
- package/dist/client/maps.d.ts.map +1 -1
- package/dist/client/maps.js +125 -29
- package/dist/client/maps.js.map +1 -1
- package/dist/client/project-scope.d.ts +87 -0
- package/dist/client/project-scope.d.ts.map +1 -0
- package/dist/client/project-scope.js +132 -0
- package/dist/client/project-scope.js.map +1 -0
- package/dist/client/projects.d.ts +31 -1
- package/dist/client/projects.d.ts.map +1 -1
- package/dist/client/projects.js +71 -10
- package/dist/client/projects.js.map +1 -1
- package/dist/client/status.d.ts +2 -0
- package/dist/client/status.d.ts.map +1 -1
- package/dist/client/status.js +16 -7
- package/dist/client/status.js.map +1 -1
- package/dist/client/wording.d.ts +4 -1
- package/dist/client/wording.d.ts.map +1 -1
- package/dist/client/wording.js +28 -6
- package/dist/client/wording.js.map +1 -1
- package/dist/cloud-commands.d.ts +4 -2
- package/dist/cloud-commands.d.ts.map +1 -1
- package/dist/cloud-commands.js +31 -25
- package/dist/cloud-commands.js.map +1 -1
- package/dist/cloud.d.ts +1 -1
- package/dist/cloud.d.ts.map +1 -1
- package/dist/cloud.js +2 -2
- package/dist/cloud.js.map +1 -1
- package/dist/commands.d.ts +14 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +10 -1
- package/dist/commands.js.map +1 -1
- package/dist/credential.d.ts.map +1 -1
- package/dist/credential.js +6 -1
- package/dist/credential.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/team-namespace.d.ts +37 -2
- package/dist/team-namespace.d.ts.map +1 -1
- package/dist/team-namespace.js +20 -4
- package/dist/team-namespace.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
// Which project a command or tool call works in (spec 052 FR-012a).
|
|
2
|
+
//
|
|
3
|
+
// `VEILIO_PROJECT`, then the choice kept with the sign-in, then none - in that
|
|
4
|
+
// order, for the CLI and the MCP server alike. The variable exists for the two
|
|
5
|
+
// places a stored `projects use` cannot reach: a CI runner, which starts clean,
|
|
6
|
+
// and a repository's `.mcp.json`, which pins ITS project through `env` so an
|
|
7
|
+
// agent in repository A never masks against repository B's names.
|
|
8
|
+
//
|
|
9
|
+
// Three rules hold here, and each has a test and a mutant:
|
|
10
|
+
//
|
|
11
|
+
// - The value is resolved through the SERVER's project listing, every time.
|
|
12
|
+
// No client-side list, no cache: the server is the authority on which
|
|
13
|
+
// projects the team works in, and a cached answer is how a removed project
|
|
14
|
+
// goes on being used.
|
|
15
|
+
// - A value that names no project, or a name two projects share, is REFUSED,
|
|
16
|
+
// naming the value and the variable. It never falls back to the stored
|
|
17
|
+
// choice or the default: somebody typed it on purpose, and quietly using
|
|
18
|
+
// another project is the cross-project mix FR-013 forbids. The listing is
|
|
19
|
+
// the only request made before the refusal, and it carries no project.
|
|
20
|
+
// - Nothing here writes the credential. The resolved project lives on an
|
|
21
|
+
// in-memory copy, so it cannot outlive the process, leak into another
|
|
22
|
+
// shell, or be persisted by a later `writeCredential({ ...credential })`.
|
|
23
|
+
import { listProjects } from '../cloud.js';
|
|
24
|
+
import { readCredential } from '../credential.js';
|
|
25
|
+
import { refuse, refusalFromCloudError } from './wording.js';
|
|
26
|
+
/** The variable's name, as people type it and as every message names it. */
|
|
27
|
+
export const PROJECT_ENV = 'VEILIO_PROJECT';
|
|
28
|
+
/** The variable's value, or null when it is unset, empty or spaces only. */
|
|
29
|
+
export function projectOverride(env = process.env) {
|
|
30
|
+
const value = env[PROJECT_ENV]?.trim();
|
|
31
|
+
return value ? value : null;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* A project by its id, or by a name exactly one project has. The one rule
|
|
35
|
+
* `projects use` and `VEILIO_PROJECT` share, so the two cannot drift apart. A
|
|
36
|
+
* shared name is never guessed: guessing is how two projects' maps meet.
|
|
37
|
+
*/
|
|
38
|
+
export function matchProject(projects, ref) {
|
|
39
|
+
const byId = projects.find((p) => p.id === ref);
|
|
40
|
+
if (byId)
|
|
41
|
+
return { ok: true, project: byId };
|
|
42
|
+
const byName = projects.filter((p) => p.name === ref);
|
|
43
|
+
if (byName.length > 1)
|
|
44
|
+
return { ok: false, reason: 'ambiguous', count: byName.length };
|
|
45
|
+
if (byName.length === 1)
|
|
46
|
+
return { ok: true, project: byName[0] };
|
|
47
|
+
return { ok: false, reason: 'not_found' };
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The credential this command works with. Without the variable: the stored
|
|
51
|
+
* one, unchanged, with no request. With it: one listing, then a copy whose
|
|
52
|
+
* `project` is the resolved id - or a refusal naming the value.
|
|
53
|
+
*/
|
|
54
|
+
export async function scopeCredential(credential, env) {
|
|
55
|
+
const value = projectOverride(env);
|
|
56
|
+
if (value === null)
|
|
57
|
+
return { ok: true, value: credential };
|
|
58
|
+
try {
|
|
59
|
+
return await resolveOverride(credential, value);
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
return { ok: false, refusal: refusalFromCloudError(err, { project: value, override: true }) };
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* `value` through the server's listing. A failed request THROWS - so the team
|
|
67
|
+
* namespace resolver can retry it and hold it to its deadline, as it does its
|
|
68
|
+
* own reads - and only an answer that names no such project is a refusal.
|
|
69
|
+
*/
|
|
70
|
+
export async function resolveOverride(credential, value, signal) {
|
|
71
|
+
// The listing names no project, so asking it never sends the stored one.
|
|
72
|
+
const answer = await listProjects(credential, signal);
|
|
73
|
+
const rows = Array.isArray(answer?.projects) ? answer.projects : [];
|
|
74
|
+
const found = matchProject(rows, value);
|
|
75
|
+
if (!found.ok) {
|
|
76
|
+
return found.reason === 'ambiguous'
|
|
77
|
+
? refuse('project_env_ambiguous', { project: value, count: found.count })
|
|
78
|
+
: refuse('project_env_not_found', { project: value });
|
|
79
|
+
}
|
|
80
|
+
return {
|
|
81
|
+
ok: true,
|
|
82
|
+
value: {
|
|
83
|
+
...credential,
|
|
84
|
+
project: found.project.id,
|
|
85
|
+
projectFrom: PROJECT_ENV,
|
|
86
|
+
projectName: found.project.name,
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/** Signed in, and scoped: `not_signed_in` before any request otherwise. */
|
|
91
|
+
export async function readScopedCredential(ctx) {
|
|
92
|
+
const credential = readCredential(ctx.home);
|
|
93
|
+
if (!credential)
|
|
94
|
+
return refuse('not_signed_in');
|
|
95
|
+
return scopeCredential(credential, ctx.env);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* The project, as a line that names it says it: the stored id as before, or
|
|
99
|
+
* the name with "(from VEILIO_PROJECT)" when the variable chose it. Null when
|
|
100
|
+
* none is in use.
|
|
101
|
+
*/
|
|
102
|
+
export function projectLabel(credential) {
|
|
103
|
+
if (!credential.project)
|
|
104
|
+
return null;
|
|
105
|
+
if (credential.projectFrom)
|
|
106
|
+
return `${credential.projectName ?? credential.project} (from ${PROJECT_ENV})`;
|
|
107
|
+
return credential.project;
|
|
108
|
+
}
|
|
109
|
+
/** What a refusal from a failed request needs to name the project rightly. */
|
|
110
|
+
export function refusalScope(credential) {
|
|
111
|
+
if (credential.projectFrom)
|
|
112
|
+
return { project: credential.projectName ?? credential.project, override: true };
|
|
113
|
+
return { project: credential.project };
|
|
114
|
+
}
|
|
115
|
+
export function overrideSentence(override, chosen) {
|
|
116
|
+
if (override.id !== null)
|
|
117
|
+
return (`${PROJECT_ENV} is "${override.value}", so that project is in use here` +
|
|
118
|
+
(chosen && chosen !== override.id
|
|
119
|
+
? `; the one chosen for this sign-in (${chosen}) applies again once it is unset.`
|
|
120
|
+
: '.'));
|
|
121
|
+
if (override.reason === 'ambiguous')
|
|
122
|
+
return (`${PROJECT_ENV} is "${override.value}", and ${override.count} of these projects are called that, ` +
|
|
123
|
+
'so every command that uses a project refuses until it is set to one of their ids.');
|
|
124
|
+
return (`${PROJECT_ENV} is "${override.value}", which is none of these projects, so every command that ` +
|
|
125
|
+
'uses a project refuses until it is set to one of them, or unset.');
|
|
126
|
+
}
|
|
127
|
+
/** What `projects use` adds when the variable overrides what it just stored. */
|
|
128
|
+
export function overriddenSentence(used, where) {
|
|
129
|
+
return (`${PROJECT_ENV} is set ("${used.overriddenBy}") ${where === 'shell' ? 'in this shell' : 'for this MCP server'}, ` +
|
|
130
|
+
`and it overrides this choice: ${where === 'shell' ? 'unset it' : 'remove it from the server’s env'} to work in ${used.name}.`);
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=project-scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-scope.js","sourceRoot":"","sources":["../../src/client/project-scope.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { type Outcome } from './wording.js';
|
|
2
2
|
import type { ClientContext } from './maps.js';
|
|
3
|
+
import { type ProjectOverride } from './project-scope.js';
|
|
3
4
|
export interface ListedProject {
|
|
4
5
|
id: string;
|
|
5
6
|
name: string;
|
|
6
7
|
/** The team's own maps in it. */
|
|
7
8
|
maps: number | null;
|
|
8
|
-
/** The one
|
|
9
|
+
/** The one in use: VEILIO_PROJECT's when it is set, else the one chosen. */
|
|
9
10
|
inUse: boolean;
|
|
10
11
|
/** Where a new team map lands when none is chosen. */
|
|
11
12
|
isDefault: boolean;
|
|
@@ -13,11 +14,40 @@ export interface ListedProject {
|
|
|
13
14
|
export declare function listTeamProjects(ctx: ClientContext): Promise<Outcome<{
|
|
14
15
|
projects: ListedProject[];
|
|
15
16
|
chosen: string | null;
|
|
17
|
+
override: ProjectOverride | null;
|
|
16
18
|
}>>;
|
|
19
|
+
/** What `listTeamProjects` found, as the CLI and the MCP server both print it. */
|
|
20
|
+
export interface ProjectsListing {
|
|
21
|
+
projects: ListedProject[];
|
|
22
|
+
chosen: string | null;
|
|
23
|
+
override: ProjectOverride | null;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The listing as text, once for both surfaces: one line per project (the one
|
|
27
|
+
* in use marked `*`, and saying so when the variable chose it), and the note
|
|
28
|
+
* that follows - the variable's sentence, or that none is chosen. The only
|
|
29
|
+
* thing a surface supplies is how it names the way to choose one.
|
|
30
|
+
*/
|
|
31
|
+
export declare function formatProjectsList(listing: ProjectsListing, opts: {
|
|
32
|
+
surface: 'cli' | 'mcp';
|
|
33
|
+
}): {
|
|
34
|
+
lines: string[];
|
|
35
|
+
note: string | null;
|
|
36
|
+
};
|
|
37
|
+
/** What `projects use` says on stdout: where the work happens now, or - when
|
|
38
|
+
* the variable overrides the choice just stored - that it does not. */
|
|
39
|
+
export declare function usedSentence(used: {
|
|
40
|
+
id: string;
|
|
41
|
+
name: string;
|
|
42
|
+
overriddenBy: string | null;
|
|
43
|
+
}, opts: {
|
|
44
|
+
surface: 'cli' | 'mcp';
|
|
45
|
+
}): string;
|
|
17
46
|
/** Choose a project by its id or its name. A name two projects share is
|
|
18
47
|
* refused rather than guessed: guessing is how two projects' maps meet. */
|
|
19
48
|
export declare function useProject(ctx: ClientContext, ref: string | null): Promise<Outcome<{
|
|
20
49
|
id: string;
|
|
21
50
|
name: string;
|
|
51
|
+
overriddenBy: string | null;
|
|
22
52
|
}>>;
|
|
23
53
|
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/client/projects.ts"],"names":[],"mappings":"AAcA,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/client/projects.ts"],"names":[],"mappings":"AAcA,OAAO,EAAiC,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAI9C,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,iCAAiC;IACjC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,4EAA4E;IAC5E,KAAK,EAAE,OAAO,CAAA;IACd,sDAAsD;IACtD,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,aAAa,GACjB,OAAO,CACR,OAAO,CAAC;IAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;CAAE,CAAC,CAChG,CAuCA;AAED,kFAAkF;AAClF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAA;CACjC;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE;IAAE,OAAO,EAAE,KAAK,GAAG,KAAK,CAAA;CAAE,GAC/B;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAoB1C;AAED;wEACwE;AACxE,wBAAgB,YAAY,CAC1B,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAC/D,IAAI,EAAE;IAAE,OAAO,EAAE,KAAK,GAAG,KAAK,CAAA;CAAE,GAC/B,MAAM,CAUR;AAED;4EAC4E;AAC5E,wBAAsB,UAAU,CAC9B,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,OAAO,CAAC,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC,CAsB7E"}
|
package/dist/client/projects.js
CHANGED
|
@@ -12,6 +12,10 @@
|
|
|
12
12
|
import { listProjects } from '../cloud.js';
|
|
13
13
|
import { readCredential, writeCredential } from '../credential.js';
|
|
14
14
|
import { refuse, refusalFromCloudError } from './wording.js';
|
|
15
|
+
// VEILIO_PROJECT, when it is set, as this listing resolves it (FR-012a). The
|
|
16
|
+
// listing is the one command that does not refuse a value that matches
|
|
17
|
+
// nothing: it is how somebody finds the value to set instead.
|
|
18
|
+
import { PROJECT_ENV, matchProject, overrideSentence, projectOverride, } from './project-scope.js';
|
|
15
19
|
export async function listTeamProjects(ctx) {
|
|
16
20
|
const credential = readCredential(ctx.home);
|
|
17
21
|
if (!credential)
|
|
@@ -27,20 +31,73 @@ export async function listTeamProjects(ctx) {
|
|
|
27
31
|
if (rows.length === 0)
|
|
28
32
|
return refuse('no_projects');
|
|
29
33
|
const fallback = answer.defaultProjectId ?? rows[0].id;
|
|
34
|
+
// Resolved against THIS listing - the server's answer, just read - so the
|
|
35
|
+
// mark costs no second request.
|
|
36
|
+
const value = projectOverride(ctx.env);
|
|
37
|
+
let override = null;
|
|
38
|
+
if (value !== null) {
|
|
39
|
+
const found = matchProject(rows, value);
|
|
40
|
+
override = found.ok
|
|
41
|
+
? { value, id: found.project.id }
|
|
42
|
+
: found.reason === 'ambiguous'
|
|
43
|
+
? { value, id: null, reason: 'ambiguous', count: found.count }
|
|
44
|
+
: { value, id: null, reason: 'not_found' };
|
|
45
|
+
}
|
|
46
|
+
const inUse = override ? override.id : (credential.project ?? null);
|
|
30
47
|
return {
|
|
31
48
|
ok: true,
|
|
32
49
|
value: {
|
|
33
50
|
chosen: credential.project ?? null,
|
|
51
|
+
override,
|
|
34
52
|
projects: rows.map((p) => ({
|
|
35
53
|
id: p.id,
|
|
36
54
|
name: p.name,
|
|
37
55
|
maps: typeof p.maps === 'number' ? p.maps : null,
|
|
38
|
-
inUse: p.id ===
|
|
56
|
+
inUse: p.id === inUse,
|
|
39
57
|
isDefault: p.id === fallback,
|
|
40
58
|
})),
|
|
41
59
|
},
|
|
42
60
|
};
|
|
43
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* The listing as text, once for both surfaces: one line per project (the one
|
|
64
|
+
* in use marked `*`, and saying so when the variable chose it), and the note
|
|
65
|
+
* that follows - the variable's sentence, or that none is chosen. The only
|
|
66
|
+
* thing a surface supplies is how it names the way to choose one.
|
|
67
|
+
*/
|
|
68
|
+
export function formatProjectsList(listing, opts) {
|
|
69
|
+
const { projects, chosen, override } = listing;
|
|
70
|
+
const lines = projects.map((p) => {
|
|
71
|
+
const marks = [
|
|
72
|
+
...(p.inUse ? [override ? `in use, from ${PROJECT_ENV}` : 'in use'] : []),
|
|
73
|
+
...(p.isDefault ? ['default'] : []),
|
|
74
|
+
...(p.maps !== null ? [`${p.maps} team map${p.maps === 1 ? '' : 's'}`] : []),
|
|
75
|
+
];
|
|
76
|
+
return `${p.inUse ? '*' : ' '} ${p.id} ${p.name} (${marks.join(', ')})`;
|
|
77
|
+
});
|
|
78
|
+
if (override)
|
|
79
|
+
return { lines, note: overrideSentence(override, chosen) };
|
|
80
|
+
if (chosen !== null)
|
|
81
|
+
return { lines, note: null };
|
|
82
|
+
return {
|
|
83
|
+
lines,
|
|
84
|
+
note: opts.surface === 'cli'
|
|
85
|
+
? 'No project is chosen, so team maps from every project are listed and used, and a new ' +
|
|
86
|
+
'team map lands in the default. Run `veilio projects use <name>` to work in one.'
|
|
87
|
+
: 'No project is chosen, so team maps from every project are used. projects_use chooses one.',
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/** What `projects use` says on stdout: where the work happens now, or - when
|
|
91
|
+
* the variable overrides the choice just stored - that it does not. */
|
|
92
|
+
export function usedSentence(used, opts) {
|
|
93
|
+
if (used.overriddenBy !== null)
|
|
94
|
+
return (`Saved project ${used.name} (${used.id}) for this sign-in. ${PROJECT_ENV} (=${used.overriddenBy}) ` +
|
|
95
|
+
`is in use here, so ${opts.surface === 'cli' ? 'this shell' : 'this server'} keeps working in that project.`);
|
|
96
|
+
return opts.surface === 'cli'
|
|
97
|
+
? `Now working in project ${used.name} (${used.id}). Team maps, pushes, updates and ` +
|
|
98
|
+
'`scrub --team` use this project only; the MCP server picks it up on its next call.'
|
|
99
|
+
: `Now working in project ${used.name} (${used.id}). Team maps and masking with the team's names use this project only.`;
|
|
100
|
+
}
|
|
44
101
|
/** Choose a project by its id or its name. A name two projects share is
|
|
45
102
|
* refused rather than guessed: guessing is how two projects' maps meet. */
|
|
46
103
|
export async function useProject(ctx, ref) {
|
|
@@ -54,15 +111,19 @@ export async function useProject(ctx, ref) {
|
|
|
54
111
|
const listed = await listTeamProjects(ctx);
|
|
55
112
|
if (!listed.ok)
|
|
56
113
|
return listed;
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
return refuse('project_not_found', { project: ref });
|
|
114
|
+
const found = matchProject(listed.value.projects, ref);
|
|
115
|
+
if (!found.ok) {
|
|
116
|
+
return found.reason === 'ambiguous'
|
|
117
|
+
? refuse('project_ambiguous', { project: ref, count: found.count })
|
|
118
|
+
: refuse('project_not_found', { project: ref });
|
|
119
|
+
}
|
|
120
|
+
const chosen = found.project;
|
|
65
121
|
writeCredential({ ...credential, project: chosen.id }, ctx.home);
|
|
66
|
-
|
|
122
|
+
// Stored all the same - it is what applies once the variable is unset - but
|
|
123
|
+
// whoever chose it must hear that this shell goes on using the variable's.
|
|
124
|
+
return {
|
|
125
|
+
ok: true,
|
|
126
|
+
value: { id: chosen.id, name: chosen.name, overriddenBy: listed.value.override?.value ?? null },
|
|
127
|
+
};
|
|
67
128
|
}
|
|
68
129
|
//# sourceMappingURL=projects.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/client/projects.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,EAAE;AACF,qEAAqE;AACrE,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAC9E,8EAA8E;AAC9E,yEAAyE;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAgB,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/client/projects.ts"],"names":[],"mappings":"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"}
|
package/dist/client/status.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PROJECT_ENV } from './project-scope.js';
|
|
1
2
|
import { type Outcome } from './wording.js';
|
|
2
3
|
import type { ClientContext } from './maps.js';
|
|
3
4
|
export interface TeamStatus {
|
|
@@ -8,6 +9,7 @@ export interface TeamStatus {
|
|
|
8
9
|
project: {
|
|
9
10
|
id: string;
|
|
10
11
|
name: string | null;
|
|
12
|
+
from?: typeof PROJECT_ENV;
|
|
11
13
|
} | null;
|
|
12
14
|
teamKeyUntil: string | null;
|
|
13
15
|
personalKeyUntil: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/client/status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/client/status.ts"],"names":[],"mappings":"AAQA,OAAO,EAAsC,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGpF,OAAO,EAAyB,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAE9C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,sEAAsE;IACtE,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,WAAW,CAAA;KAAE,GAAG,IAAI,CAAA;IAC9E,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B;8DAC0D;IAC1D,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CAC7C;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAuDjF"}
|
package/dist/client/status.js
CHANGED
|
@@ -5,23 +5,32 @@
|
|
|
5
5
|
// whether the team owes a key rotation, read from the team's key status; the
|
|
6
6
|
// rest of that answer names teammates, and stays out of this one.
|
|
7
7
|
import { getTeamKeyPending, listMaps, listProjects } from '../cloud.js';
|
|
8
|
-
import {
|
|
8
|
+
import { readScopedCredential, refusalScope } from './project-scope.js';
|
|
9
9
|
import { readTeamUnlock } from '../team-unlock.js';
|
|
10
10
|
import { personalMapsKeyExpiry } from './personal-maps-key.js';
|
|
11
|
-
import {
|
|
11
|
+
import { refusalFromCloudError } from './wording.js';
|
|
12
12
|
export async function teamStatus(ctx) {
|
|
13
|
-
const
|
|
14
|
-
if (!
|
|
15
|
-
return
|
|
13
|
+
const scoped = await readScopedCredential(ctx);
|
|
14
|
+
if (!scoped.ok)
|
|
15
|
+
return scoped;
|
|
16
|
+
const credential = scoped.value;
|
|
16
17
|
let teamId;
|
|
17
18
|
try {
|
|
18
19
|
teamId = (await listMaps(credential)).team?.id ?? null;
|
|
19
20
|
}
|
|
20
21
|
catch (err) {
|
|
21
|
-
return { ok: false, refusal: refusalFromCloudError(err,
|
|
22
|
+
return { ok: false, refusal: refusalFromCloudError(err, refusalScope(credential)) };
|
|
22
23
|
}
|
|
23
24
|
let project = null;
|
|
24
|
-
if (credential.
|
|
25
|
+
if (credential.projectFrom) {
|
|
26
|
+
// Named by the listing that resolved VEILIO_PROJECT: no second one.
|
|
27
|
+
project = {
|
|
28
|
+
id: credential.project,
|
|
29
|
+
name: credential.projectName ?? null,
|
|
30
|
+
from: credential.projectFrom,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
else if (credential.project) {
|
|
25
34
|
let name = null;
|
|
26
35
|
try {
|
|
27
36
|
name =
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/client/status.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,+EAA+E;AAC/E,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,kEAAkE;AAElE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/client/status.ts"],"names":[],"mappings":"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"}
|
package/dist/client/wording.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const REFUSAL_CODES: readonly ["not_signed_in", "which_map", "map_not_found", "map_not_in_project", "not_yours_remove", "not_yours_update", "no_local_map", "no_vault", "no_passphrase", "wrong_passphrase", "vault_locked", "no_pmk_yet", "pmk_unopenable", "keys_not_set_up", "team_key_waiting", "own_public_key_mismatch", "team_key_readback_mismatch", "team_key_not_startable", "team_key_solo_unavailable", "personal_old_seal", "personal_unopenable", "not_envelope", "team_locked", "team_key_unreadable", "team_key_mismatch", "not_in_team", "team_maps_unreadable", "team_map_unopenable", "clash", "would_drop", "pull_would_drop", "diverged", "stale", "rotation_owed", "too_large", "abuse_limit", "which_project", "project_not_found", "project_ambiguous", "project_gone", "no_projects", "destructive_off", "confirm_name", "confirm_unknown", "session_rejected", "unentitled", "suspended", "forbidden", "unreachable", "server"];
|
|
1
|
+
export declare const REFUSAL_CODES: readonly ["not_signed_in", "which_map", "map_not_found", "map_not_in_project", "not_yours_remove", "not_yours_update", "no_local_map", "no_vault", "no_passphrase", "wrong_passphrase", "vault_locked", "no_pmk_yet", "pmk_unopenable", "keys_not_set_up", "team_key_waiting", "own_public_key_mismatch", "team_key_readback_mismatch", "team_key_not_startable", "team_key_solo_unavailable", "personal_old_seal", "personal_unopenable", "not_envelope", "team_locked", "team_key_unreadable", "team_key_mismatch", "not_in_team", "team_maps_unreadable", "team_map_unopenable", "clash", "would_drop", "pull_would_drop", "diverged", "stale", "rotation_owed", "too_large", "abuse_limit", "which_project", "project_not_found", "project_ambiguous", "project_gone", "project_env_not_found", "project_env_ambiguous", "no_projects", "destructive_off", "confirm_name", "confirm_unknown", "session_rejected", "unentitled", "suspended", "forbidden", "unreachable", "server"];
|
|
2
2
|
export type RefusalCode = (typeof REFUSAL_CODES)[number];
|
|
3
3
|
/** What a sentence may be filled with. Every field is optional; each entry
|
|
4
4
|
* uses the ones it needs. */
|
|
@@ -13,6 +13,8 @@ export interface WordingParams {
|
|
|
13
13
|
/** A short, already-joined list - placeholders, map names, ids. */
|
|
14
14
|
list?: string;
|
|
15
15
|
project?: string;
|
|
16
|
+
/** The project came from VEILIO_PROJECT rather than the stored choice. */
|
|
17
|
+
override?: boolean;
|
|
16
18
|
}
|
|
17
19
|
export interface Refusal {
|
|
18
20
|
code: RefusalCode;
|
|
@@ -54,6 +56,7 @@ export declare function renderRefusal(r: Refusal): string;
|
|
|
54
56
|
*/
|
|
55
57
|
export declare function refusalFromCloudError(err: unknown, ctx?: {
|
|
56
58
|
project?: string;
|
|
59
|
+
override?: boolean;
|
|
57
60
|
}): Refusal;
|
|
58
61
|
export {};
|
|
59
62
|
//# sourceMappingURL=wording.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wording.d.ts","sourceRoot":"","sources":["../../src/client/wording.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"wording.d.ts","sourceRoot":"","sources":["../../src/client/wording.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,aAAa,w7BAqDhB,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAExD;8BAC8B;AAC9B,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAA;IACjB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAA;IACf;yCACqC;IACrC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAA;AAajF,KAAK,KAAK,GAAG,CAAC,CAAC,EAAE,aAAa,KAAK;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAIvE,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CA8P9C,CAAA;AAED,gDAAgD;AAChD,wBAAgB,MAAM,CACpB,IAAI,EAAE,WAAW,EACjB,MAAM,GAAE,aAAkB,EAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAEjC;AAED,wBAAgB,OAAO,CACrB,IAAI,EAAE,WAAW,EACjB,MAAM,GAAE,aAAkB,EAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,GACjB,OAAO,CAGT;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAGhD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,EACZ,GAAG,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GACjD,OAAO,CA2BT"}
|
package/dist/client/wording.js
CHANGED
|
@@ -61,6 +61,8 @@ export const REFUSAL_CODES = [
|
|
|
61
61
|
'project_not_found',
|
|
62
62
|
'project_ambiguous',
|
|
63
63
|
'project_gone',
|
|
64
|
+
'project_env_not_found',
|
|
65
|
+
'project_env_ambiguous',
|
|
64
66
|
'no_projects',
|
|
65
67
|
'destructive_off',
|
|
66
68
|
'confirm_name',
|
|
@@ -96,8 +98,10 @@ export const WORDING = {
|
|
|
96
98
|
resolve: 'Run `veilio maps list` for the ids.',
|
|
97
99
|
}),
|
|
98
100
|
map_not_in_project: (p) => ({
|
|
99
|
-
message: `No map ${p.id} in project ${p.project} (the project in use).`,
|
|
100
|
-
resolve:
|
|
101
|
+
message: `No map ${p.id} in project ${p.project} (${p.override ? 'set by VEILIO_PROJECT' : 'the project in use'}).`,
|
|
102
|
+
resolve: p.override
|
|
103
|
+
? 'Set VEILIO_PROJECT to another project, or unset it: `veilio projects` lists them.'
|
|
104
|
+
: '`veilio projects use <other>` to work in another one.',
|
|
101
105
|
}),
|
|
102
106
|
not_yours_remove: (p) => ({
|
|
103
107
|
message: `${label(p)} belongs to someone else on your team, so it is theirs to remove.`,
|
|
@@ -241,9 +245,24 @@ export const WORDING = {
|
|
|
241
245
|
message: `${p.count} projects are called "${p.project}", so nothing was changed.`,
|
|
242
246
|
resolve: 'Choose one by its id: `veilio projects` lists them.',
|
|
243
247
|
}),
|
|
244
|
-
project_gone: (p) =>
|
|
245
|
-
|
|
246
|
-
|
|
248
|
+
project_gone: (p) => p.override
|
|
249
|
+
? {
|
|
250
|
+
message: `the project VEILIO_PROJECT names (${p.project}) is not one your team works in any more, so nothing was done. No other project was used instead.`,
|
|
251
|
+
resolve: 'Run `veilio projects`, then set VEILIO_PROJECT to one of them, or unset it.',
|
|
252
|
+
}
|
|
253
|
+
: {
|
|
254
|
+
message: `the project chosen for this sign-in (${p.project}) is not one your team works in any more, so nothing was done. No other project was used instead.`,
|
|
255
|
+
resolve: 'Run `veilio projects`, then `veilio projects use <name>`.',
|
|
256
|
+
},
|
|
257
|
+
// Somebody typed it, so it is never quietly replaced by the stored choice
|
|
258
|
+
// or the default (FR-012a): the value is named, and so is where it came from.
|
|
259
|
+
project_env_not_found: (p) => ({
|
|
260
|
+
message: `VEILIO_PROJECT is "${p.project}", which is not a project your team works in, so nothing was done. No other project was used instead.`,
|
|
261
|
+
resolve: 'Run `veilio projects` for the ones it does, then set VEILIO_PROJECT to one of them, or unset it.',
|
|
262
|
+
}),
|
|
263
|
+
project_env_ambiguous: (p) => ({
|
|
264
|
+
message: `VEILIO_PROJECT is "${p.project}", and ${p.count} projects are called that, so nothing was done. No other project was used instead.`,
|
|
265
|
+
resolve: "Set VEILIO_PROJECT to the project's id: `veilio projects` lists them.",
|
|
247
266
|
}),
|
|
248
267
|
no_projects: () => ({
|
|
249
268
|
message: "this account's team works in no project yet, so there is none to choose.",
|
|
@@ -312,7 +331,10 @@ export function refusalFromCloudError(err, ctx = {}) {
|
|
|
312
331
|
return refusal('server', { detail: err instanceof Error ? err.message : String(err) });
|
|
313
332
|
}
|
|
314
333
|
if (err.status === 404 && /project not found/i.test(err.message)) {
|
|
315
|
-
return refusal('project_gone', {
|
|
334
|
+
return refusal('project_gone', {
|
|
335
|
+
project: ctx.project ?? 'the default',
|
|
336
|
+
...(ctx.override ? { override: true } : {}),
|
|
337
|
+
});
|
|
316
338
|
}
|
|
317
339
|
switch (err.kind) {
|
|
318
340
|
case 'unauthenticated':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wording.js","sourceRoot":"","sources":["../../src/client/wording.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wording.js","sourceRoot":"","sources":["../../src/client/wording.ts"],"names":[],"mappings":"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"}
|
package/dist/cloud-commands.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type TeamLayer } from '@veilio-inc/engine';
|
|
2
2
|
import { type Io, type TeamNamespaceSource } from './commands.js';
|
|
3
|
+
import { type Env } from './client/project-scope.js';
|
|
3
4
|
/**
|
|
4
5
|
* Sign in, and store the credential only if the account can actually use it.
|
|
5
6
|
*
|
|
@@ -121,13 +122,14 @@ export declare function runVaultLock(io: Io): number;
|
|
|
121
122
|
* as a callback so that command stays unlinked from the network. Signed out:
|
|
122
123
|
* no request, no layer - a local restore, as before.
|
|
123
124
|
*/
|
|
124
|
-
export declare function teamLayerFor(home: string | undefined, missing: readonly string[]): Promise<{
|
|
125
|
+
export declare function teamLayerFor(home: string | undefined, missing: readonly string[], env?: Env): Promise<{
|
|
125
126
|
team: TeamLayer | null;
|
|
126
127
|
note: string | null;
|
|
128
|
+
refused?: string;
|
|
127
129
|
}>;
|
|
128
130
|
/** What `veilio scrub` numbers from (spec 030): the team's namespace, or this
|
|
129
131
|
* project's map with the reason. Signed out or in no team: no request, no note. */
|
|
130
|
-
export declare function teamNamespaceForScrub(home: string | undefined): Promise<Awaited<ReturnType<TeamNamespaceSource>>>;
|
|
132
|
+
export declare function teamNamespaceForScrub(home: string | undefined, env?: Env): Promise<Awaited<ReturnType<TeamNamespaceSource>>>;
|
|
131
133
|
/** Kept importable from here: tests and callers written before spec 052 moved
|
|
132
134
|
* it into the shared client. */
|
|
133
135
|
export { conflictsWithTeam } from './client/maps.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-commands.d.ts","sourceRoot":"","sources":["../src/cloud-commands.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAWjF,OAAO,EAAuB,KAAK,EAAE,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"cloud-commands.d.ts","sourceRoot":"","sources":["../src/cloud-commands.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAWjF,OAAO,EAAuB,KAAK,EAAE,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAoBtF,OAAO,EAIL,KAAK,GAAG,EACT,MAAM,2BAA2B,CAAA;AAelC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAoE1E;AA2CD,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,EAAE,EAAE,EAAE,EACN,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9B,OAAO,CAAC,MAAM,CAAC,CA+FjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA2FvD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAmBxC;AAiFD;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBzD;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,EAAE,EAAE,MAAM,GAAG,IAAI,EACjB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,EAAE,EACN,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAChC,OAAO,CAAC,MAAM,CAAC,CAMjB;AAED;sCACsC;AACtC,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,EAAE,EACN,MAAM,UAAQ,GACb,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED,+EAA+E;AAC/E,wBAAsB,aAAa,CACjC,EAAE,EAAE,MAAM,GAAG,IAAI,EACjB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,EAAE,EACN,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACpC,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAM1E;AAcD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAqC1D;AAID;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA8H1E;AAaD,qCAAqC;AACrC,wBAAgB,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAgB1C;AAID,2DAA2D;AAC3D,wBAAsB,eAAe,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAO7D;AAED,gDAAgD;AAChD,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAOhF;AAID;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsB3E;AAED,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAgB3C;AAID;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,GAAG,CAAC,EAAE,GAAG,GACR,OAAO,CAAC;IAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAS5E;AAID;oFACoF;AACpF,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,GAAG,CAAC,EAAE,GAAG,GACR,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAsCnD;AAED;iCACiC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA"}
|