@atlasauth/cli 0.5.0 → 0.7.0
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 +15 -0
- package/README.md +5 -0
- package/dist/args.d.ts +39 -0
- package/dist/args.js +17 -0
- package/dist/args.js.map +1 -1
- package/dist/commands/actions-gallery.d.ts +8 -0
- package/dist/commands/actions-gallery.js +197 -0
- package/dist/commands/actions-gallery.js.map +1 -0
- package/dist/commands/actions.d.ts +2 -0
- package/dist/commands/actions.js +17 -2
- package/dist/commands/actions.js.map +1 -1
- package/dist/commands/import.d.ts +3 -0
- package/dist/commands/import.js +116 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/info.d.ts +75 -0
- package/dist/commands/info.js +362 -0
- package/dist/commands/info.js.map +1 -0
- package/dist/commands/mcp.d.ts +38 -0
- package/dist/commands/mcp.js +108 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/migrate.d.ts +12 -0
- package/dist/commands/migrate.js +65 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/referrals.d.ts +6 -6
- package/dist/commands/referrals.js +28 -28
- package/dist/context.d.ts +1 -1
- package/dist/help.d.ts +1 -1
- package/dist/help.js +111 -7
- package/dist/help.js.map +1 -1
- package/dist/import/csv.d.ts +6 -0
- package/dist/import/csv.js +63 -0
- package/dist/import/csv.js.map +1 -0
- package/dist/import/vendors.d.ts +57 -0
- package/dist/import/vendors.js +568 -0
- package/dist/import/vendors.js.map +1 -0
- package/dist/run.js +8 -0
- package/dist/run.js.map +1 -1
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @atlasauth/cli changelog
|
|
2
2
|
|
|
3
|
+
## 0.7.0 — 2026-10-24
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- `atlas migrate code --from <clerk|authjs|supabase|auth0|better-auth> [path]`: rewrites an app's auth code onto Atlas. A dry run with a diff unless `--yes`; prints what needs a manual look with file and line, the packages to add and remove, and the env vars to set; `--json`.
|
|
8
|
+
- `atlas info [path]`: CLI, Node and OS versions, the framework and Atlas SDK packages with update-available from npm, the configured instance (key prefixes only) and whether the app's publishable key belongs to it, API reachability and latency, and the preflight summary; `--json`; secrets redacted.
|
|
9
|
+
- `atlas actions gallery | show | install | installs | update | publish`: the Actions gallery. Secret values come from `--secrets-file` (dotenv), never argv.
|
|
10
|
+
|
|
11
|
+
## 0.6.0 — 2026-10-23
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- `atlas import --from <auth0|clerk|supabase|firebase|cognito|authjs|workos|better-auth> <file>`: maps each provider's export onto the bulk import, with `--dry-run`, resumable upsert batches (`--state-file`), `--hashes`, `--hash-config` and `--create-orgs`.
|
|
16
|
+
- `atlas mcp install --cursor | --claude-code | --codex | --vscode`: adds the Atlas MCP server (docs search) to the agent's config.
|
|
17
|
+
|
|
3
18
|
## 0.5.0
|
|
4
19
|
|
|
5
20
|
### Added
|
package/README.md
CHANGED
|
@@ -48,6 +48,11 @@ atlas init --product <name> [--domain <d>] [--instance-env development|produ
|
|
|
48
48
|
atlas preflight [--instance <id> | --product <name>] [--fail-on error|warning]
|
|
49
49
|
atlas env --product <name> --format dotenv|coolify|vercel
|
|
50
50
|
atlas client rotate <client-id> [--now | --overlap <seconds>]
|
|
51
|
+
atlas import --from <vendor> <export-file> [--dry-run]
|
|
52
|
+
atlas migrate code --from <clerk|authjs|supabase|auth0|better-auth> [path] [--yes]
|
|
53
|
+
atlas info [path]
|
|
54
|
+
atlas actions list | deploy <file> | test <file> | gallery [query] | show <slug>
|
|
55
|
+
| install <slug> [--secrets-file f] | installs | update <id> | publish <template.json>
|
|
51
56
|
```
|
|
52
57
|
|
|
53
58
|
Every command takes `--json` for raw JSON (otherwise a human table). Paginated
|
package/dist/args.d.ts
CHANGED
|
@@ -67,6 +67,12 @@ declare const OPTIONS: {
|
|
|
67
67
|
readonly trigger: {
|
|
68
68
|
readonly type: "string";
|
|
69
69
|
};
|
|
70
|
+
readonly 'secrets-file': {
|
|
71
|
+
readonly type: "string";
|
|
72
|
+
};
|
|
73
|
+
readonly draft: {
|
|
74
|
+
readonly type: "boolean";
|
|
75
|
+
};
|
|
70
76
|
readonly product: {
|
|
71
77
|
readonly type: "string";
|
|
72
78
|
};
|
|
@@ -177,6 +183,39 @@ declare const OPTIONS: {
|
|
|
177
183
|
readonly wait: {
|
|
178
184
|
readonly type: "boolean";
|
|
179
185
|
};
|
|
186
|
+
readonly from: {
|
|
187
|
+
readonly type: "string";
|
|
188
|
+
};
|
|
189
|
+
readonly 'batch-size': {
|
|
190
|
+
readonly type: "string";
|
|
191
|
+
};
|
|
192
|
+
readonly 'state-file': {
|
|
193
|
+
readonly type: "string";
|
|
194
|
+
};
|
|
195
|
+
readonly 'hash-config': {
|
|
196
|
+
readonly type: "string";
|
|
197
|
+
};
|
|
198
|
+
readonly hashes: {
|
|
199
|
+
readonly type: "string";
|
|
200
|
+
};
|
|
201
|
+
readonly 'create-orgs': {
|
|
202
|
+
readonly type: "boolean";
|
|
203
|
+
};
|
|
204
|
+
readonly cursor: {
|
|
205
|
+
readonly type: "boolean";
|
|
206
|
+
};
|
|
207
|
+
readonly 'claude-code': {
|
|
208
|
+
readonly type: "boolean";
|
|
209
|
+
};
|
|
210
|
+
readonly codex: {
|
|
211
|
+
readonly type: "boolean";
|
|
212
|
+
};
|
|
213
|
+
readonly vscode: {
|
|
214
|
+
readonly type: "boolean";
|
|
215
|
+
};
|
|
216
|
+
readonly global: {
|
|
217
|
+
readonly type: "boolean";
|
|
218
|
+
};
|
|
180
219
|
};
|
|
181
220
|
type OptionValue<O> = O extends {
|
|
182
221
|
type: 'boolean';
|
package/dist/args.js
CHANGED
|
@@ -39,6 +39,10 @@ const OPTIONS = {
|
|
|
39
39
|
prune: { type: 'boolean' },
|
|
40
40
|
// actions.
|
|
41
41
|
trigger: { type: 'string' },
|
|
42
|
+
// actions install / update: secret values from a dotenv file, never argv.
|
|
43
|
+
'secrets-file': { type: 'string' },
|
|
44
|
+
// actions publish: keep the new version a draft instead of submitting it.
|
|
45
|
+
draft: { type: 'boolean' },
|
|
42
46
|
// init / preflight / env / client rotate.
|
|
43
47
|
product: { type: 'string' },
|
|
44
48
|
domain: { type: 'string' },
|
|
@@ -80,6 +84,19 @@ const OPTIONS = {
|
|
|
80
84
|
map: { type: 'string' },
|
|
81
85
|
'metadata-path': { type: 'string' },
|
|
82
86
|
wait: { type: 'boolean' },
|
|
87
|
+
// import --from <vendor>.
|
|
88
|
+
from: { type: 'string' },
|
|
89
|
+
'batch-size': { type: 'string' },
|
|
90
|
+
'state-file': { type: 'string' },
|
|
91
|
+
'hash-config': { type: 'string' },
|
|
92
|
+
hashes: { type: 'string' },
|
|
93
|
+
'create-orgs': { type: 'boolean' },
|
|
94
|
+
// mcp install.
|
|
95
|
+
cursor: { type: 'boolean' },
|
|
96
|
+
'claude-code': { type: 'boolean' },
|
|
97
|
+
codex: { type: 'boolean' },
|
|
98
|
+
vscode: { type: 'boolean' },
|
|
99
|
+
global: { type: 'boolean' },
|
|
83
100
|
};
|
|
84
101
|
/** Parse argv, turning parseArgs' own errors (unknown/invalid flag) into clean CliErrors. */
|
|
85
102
|
function parse(argv) {
|
package/dist/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ParsedArgs } from '../args';
|
|
2
|
+
import type { RunContext } from '../context';
|
|
3
|
+
export declare function gallery(ctx: RunContext, args: ParsedArgs): Promise<number>;
|
|
4
|
+
export declare function show(ctx: RunContext, args: ParsedArgs): Promise<number>;
|
|
5
|
+
export declare function install(ctx: RunContext, args: ParsedArgs): Promise<number>;
|
|
6
|
+
export declare function installs(ctx: RunContext, args: ParsedArgs): Promise<number>;
|
|
7
|
+
export declare function update(ctx: RunContext, args: ParsedArgs): Promise<number>;
|
|
8
|
+
export declare function publish(ctx: RunContext, args: ParsedArgs): Promise<number>;
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gallery = gallery;
|
|
4
|
+
exports.show = show;
|
|
5
|
+
exports.install = install;
|
|
6
|
+
exports.installs = installs;
|
|
7
|
+
exports.update = update;
|
|
8
|
+
exports.publish = publish;
|
|
9
|
+
const node_path_1 = require("node:path");
|
|
10
|
+
const args_1 = require("../args");
|
|
11
|
+
const errors_1 = require("../errors");
|
|
12
|
+
const output_1 = require("../output");
|
|
13
|
+
const secrets_1 = require("../secrets");
|
|
14
|
+
const shared_1 = require("./shared");
|
|
15
|
+
/**
|
|
16
|
+
* The gallery half of `atlas actions`:
|
|
17
|
+
*
|
|
18
|
+
* gallery [query] [--trigger t] browse first-party and community templates
|
|
19
|
+
* show <slug> a template's description, secrets and code
|
|
20
|
+
* install <slug> [--secrets-file f] install as a DISABLED action (secrets from a dotenv file)
|
|
21
|
+
* installs actions from the gallery, with update status
|
|
22
|
+
* update <action-id> [--secrets-file f]
|
|
23
|
+
* move an installed action to the latest version
|
|
24
|
+
* publish <template.json> [--draft] create or version your own template and submit it
|
|
25
|
+
*
|
|
26
|
+
* Secret VALUES come from a dotenv file, never from argv (shell history).
|
|
27
|
+
*/
|
|
28
|
+
const GALLERY_COLUMNS = [
|
|
29
|
+
{ header: 'SLUG', get: (t) => t.slug },
|
|
30
|
+
{ header: 'NAME', get: (t) => t.name },
|
|
31
|
+
{ header: 'TRIGGER', get: (t) => t.trigger },
|
|
32
|
+
{ header: 'BY', get: (t) => (t.author.first_party ? 'Atlas' : `${t.author.name}${t.verified ? ' ✓' : ''}`) },
|
|
33
|
+
{ header: 'VERSION', get: (t) => t.latest_version },
|
|
34
|
+
{ header: 'INSTALLS', get: (t) => t.install_count },
|
|
35
|
+
{ header: 'CALLS OUT', get: (t) => (t.uses_http ? 'yes' : '') },
|
|
36
|
+
];
|
|
37
|
+
const INSTALL_COLUMNS = [
|
|
38
|
+
{ header: 'ACTION', get: (i) => i.action_id },
|
|
39
|
+
{ header: 'NAME', get: (i) => i.action_name },
|
|
40
|
+
{ header: 'TEMPLATE', get: (i) => i.template_slug },
|
|
41
|
+
{ header: 'VERSION', get: (i) => i.installed_version },
|
|
42
|
+
{ header: 'LATEST', get: (i) => i.latest_version ?? 'removed' },
|
|
43
|
+
{ header: 'UPDATE', get: (i) => (i.update_available ? 'available' : '') },
|
|
44
|
+
{ header: 'ENABLED', get: (i) => i.enabled },
|
|
45
|
+
{ header: 'MISSING SECRETS', get: (i) => i.missing_secrets },
|
|
46
|
+
];
|
|
47
|
+
function secretsFrom(ctx, args) {
|
|
48
|
+
const file = (0, args_1.str)(args.values, 'secrets-file');
|
|
49
|
+
if (!file)
|
|
50
|
+
return undefined;
|
|
51
|
+
return (0, secrets_1.parseDotenv)(ctx.readFile(file));
|
|
52
|
+
}
|
|
53
|
+
async function gallery(ctx, args) {
|
|
54
|
+
const { client } = (0, shared_1.requireClient)(ctx, args.values);
|
|
55
|
+
const q = args.positionals.slice(2).join(' ').trim() || undefined;
|
|
56
|
+
const trigger = (0, args_1.str)(args.values, 'trigger');
|
|
57
|
+
const page = await client.actionGallery.list({ q, trigger });
|
|
58
|
+
if ((0, shared_1.wantsJson)(args.values))
|
|
59
|
+
(0, output_1.printJson)(ctx.io, page);
|
|
60
|
+
else {
|
|
61
|
+
ctx.io.out((0, output_1.renderTable)(GALLERY_COLUMNS, page.data));
|
|
62
|
+
ctx.io.out('');
|
|
63
|
+
ctx.io.out("Details: 'atlas actions show <slug>'. Install: 'atlas actions install <slug> [--secrets-file .env.action]'.");
|
|
64
|
+
}
|
|
65
|
+
return 0;
|
|
66
|
+
}
|
|
67
|
+
async function show(ctx, args) {
|
|
68
|
+
const slug = (0, shared_1.requireArg)(args.positionals, 2, 'slug');
|
|
69
|
+
const { client } = (0, shared_1.requireClient)(ctx, args.values);
|
|
70
|
+
const t = await client.actionGallery.get(slug);
|
|
71
|
+
if ((0, shared_1.wantsJson)(args.values)) {
|
|
72
|
+
(0, output_1.printJson)(ctx.io, t);
|
|
73
|
+
return 0;
|
|
74
|
+
}
|
|
75
|
+
ctx.io.out(`${t.name} (${t.slug} ${t.latest_version}, ${t.trigger})`);
|
|
76
|
+
ctx.io.out(`By ${t.author.first_party ? 'Atlas' : t.author.name}${t.verified && !t.author.first_party ? ' (verified)' : ''} · ${t.license} · ${t.install_count} install(s)`);
|
|
77
|
+
ctx.io.out('');
|
|
78
|
+
ctx.io.out(t.summary);
|
|
79
|
+
if (t.uses_http)
|
|
80
|
+
ctx.io.out('Sends outbound HTTPS requests (after the sign-in completes).');
|
|
81
|
+
ctx.io.out('');
|
|
82
|
+
ctx.io.out('Secrets:');
|
|
83
|
+
if (t.secrets.length === 0)
|
|
84
|
+
ctx.io.out(' (none)');
|
|
85
|
+
for (const s of t.secrets)
|
|
86
|
+
ctx.io.out(` ${s.name}${s.required ? ' (required)' : ''} ${s.description}`);
|
|
87
|
+
ctx.io.out('');
|
|
88
|
+
ctx.io.out('Code:');
|
|
89
|
+
ctx.io.out(t.code.replace(/^/gm, ' '));
|
|
90
|
+
return 0;
|
|
91
|
+
}
|
|
92
|
+
async function install(ctx, args) {
|
|
93
|
+
const slug = (0, shared_1.requireArg)(args.positionals, 2, 'slug');
|
|
94
|
+
const secrets = secretsFrom(ctx, args);
|
|
95
|
+
const { client } = (0, shared_1.requireClient)(ctx, args.values);
|
|
96
|
+
const res = await client.actionGallery.install(slug, {
|
|
97
|
+
...((0, args_1.str)(args.values, 'name') ? { name: (0, args_1.str)(args.values, 'name') } : {}),
|
|
98
|
+
...(secrets ? { secrets } : {}),
|
|
99
|
+
});
|
|
100
|
+
if ((0, shared_1.wantsJson)(args.values)) {
|
|
101
|
+
(0, output_1.printJson)(ctx.io, res);
|
|
102
|
+
return 0;
|
|
103
|
+
}
|
|
104
|
+
ctx.io.out(`Installed ${res.template.slug} ${res.template.version} as action ${res.action.id} (${res.action.name}), DISABLED.`);
|
|
105
|
+
if (res.missing_secrets.length > 0) {
|
|
106
|
+
ctx.io.out(`Still needs: ${res.missing_secrets.join(', ')}. Set them with 'atlas actions update ${res.action.id} --secrets-file <file>' or in the dashboard.`);
|
|
107
|
+
}
|
|
108
|
+
ctx.io.out(`Next: bind it to the ${res.action.trigger} flow and enable it (dashboard → Actions), after a dry run.`);
|
|
109
|
+
return 0;
|
|
110
|
+
}
|
|
111
|
+
async function installs(ctx, args) {
|
|
112
|
+
const { client } = (0, shared_1.requireClient)(ctx, args.values);
|
|
113
|
+
const page = await client.actionGallery.installs();
|
|
114
|
+
if ((0, shared_1.wantsJson)(args.values))
|
|
115
|
+
(0, output_1.printJson)(ctx.io, page);
|
|
116
|
+
else
|
|
117
|
+
ctx.io.out((0, output_1.renderTable)(INSTALL_COLUMNS, page.data));
|
|
118
|
+
return 0;
|
|
119
|
+
}
|
|
120
|
+
async function update(ctx, args) {
|
|
121
|
+
const id = (0, shared_1.requireArg)(args.positionals, 2, 'action-id');
|
|
122
|
+
const secrets = secretsFrom(ctx, args);
|
|
123
|
+
const { client } = (0, shared_1.requireClient)(ctx, args.values);
|
|
124
|
+
const res = await client.actionGallery.update(id, secrets ? { secrets } : {});
|
|
125
|
+
if ((0, shared_1.wantsJson)(args.values))
|
|
126
|
+
(0, output_1.printJson)(ctx.io, res);
|
|
127
|
+
else if (res.updated)
|
|
128
|
+
ctx.io.out(`Updated ${id} from ${res.from_version} to ${res.version}.`);
|
|
129
|
+
else
|
|
130
|
+
ctx.io.out(`${id} already runs the latest version (${res.version}).`);
|
|
131
|
+
return 0;
|
|
132
|
+
}
|
|
133
|
+
async function publish(ctx, args) {
|
|
134
|
+
const file = (0, shared_1.requireArg)(args.positionals, 2, 'template.json');
|
|
135
|
+
let manifest;
|
|
136
|
+
try {
|
|
137
|
+
manifest = JSON.parse(ctx.readFile(file));
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
throw new errors_1.CliError(`${file} is not valid JSON (${err.message}).`);
|
|
141
|
+
}
|
|
142
|
+
for (const key of ['slug', 'name', 'trigger', 'version']) {
|
|
143
|
+
if (!manifest[key])
|
|
144
|
+
throw new errors_1.CliError(`${file} needs "${key}".`);
|
|
145
|
+
}
|
|
146
|
+
const code = manifest.code ?? (manifest.code_file ? ctx.readFile((0, node_path_1.resolve)((0, node_path_1.dirname)(file), manifest.code_file)) : undefined);
|
|
147
|
+
if (!code?.trim())
|
|
148
|
+
throw new errors_1.CliError(`${file} needs "code" or "code_file".`);
|
|
149
|
+
const submit = args.values.draft !== true;
|
|
150
|
+
const { client } = (0, shared_1.requireClient)(ctx, args.values);
|
|
151
|
+
const mine = await client.actionTemplates.list();
|
|
152
|
+
const existing = mine.data.find((t) => t.slug === manifest.slug);
|
|
153
|
+
const version = { version: manifest.version, code, secrets: manifest.secrets ?? [], changelog: manifest.changelog, submit };
|
|
154
|
+
let result;
|
|
155
|
+
if (existing) {
|
|
156
|
+
const listing = {
|
|
157
|
+
name: manifest.name,
|
|
158
|
+
summary: manifest.summary,
|
|
159
|
+
description: manifest.description,
|
|
160
|
+
category: manifest.category,
|
|
161
|
+
tags: manifest.tags,
|
|
162
|
+
license: manifest.license,
|
|
163
|
+
repository_url: manifest.repository_url,
|
|
164
|
+
...(manifest.author_name ? { author_name: manifest.author_name } : {}),
|
|
165
|
+
};
|
|
166
|
+
await client.actionTemplates.update(existing.id, listing);
|
|
167
|
+
result = await client.actionTemplates.addVersion(existing.id, version);
|
|
168
|
+
if (!(0, shared_1.wantsJson)(args.values))
|
|
169
|
+
ctx.io.out(`Added ${manifest.slug} ${manifest.version}${submit ? ' and submitted it for review' : ' as a draft'}.`);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
if (!manifest.author_name)
|
|
173
|
+
throw new errors_1.CliError(`${file} needs "author_name" (shown as the author) for a new template.`);
|
|
174
|
+
const body = {
|
|
175
|
+
slug: manifest.slug,
|
|
176
|
+
name: manifest.name,
|
|
177
|
+
author_name: manifest.author_name,
|
|
178
|
+
trigger: manifest.trigger,
|
|
179
|
+
summary: manifest.summary,
|
|
180
|
+
description: manifest.description,
|
|
181
|
+
category: manifest.category,
|
|
182
|
+
tags: manifest.tags,
|
|
183
|
+
license: manifest.license,
|
|
184
|
+
repository_url: manifest.repository_url,
|
|
185
|
+
...version,
|
|
186
|
+
};
|
|
187
|
+
result = await client.actionTemplates.create(body);
|
|
188
|
+
if (!(0, shared_1.wantsJson)(args.values))
|
|
189
|
+
ctx.io.out(`Created ${manifest.slug} ${manifest.version}${submit ? ' and submitted it for review' : ' as a draft'}.`);
|
|
190
|
+
}
|
|
191
|
+
if ((0, shared_1.wantsJson)(args.values))
|
|
192
|
+
(0, output_1.printJson)(ctx.io, result);
|
|
193
|
+
else if (submit)
|
|
194
|
+
ctx.io.out('It is listed in the gallery once approved; follow its status with --json or in the dashboard.');
|
|
195
|
+
return 0;
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=actions-gallery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions-gallery.js","sourceRoot":"","sources":["../../src/commands/actions-gallery.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,5 +7,7 @@ import type { RunContext } from '../context';
|
|
|
7
7
|
* deploy <file> --trigger <t> upload a file's code as a new action
|
|
8
8
|
* test <file> [--trigger <t>] dry-run the file OFFLINE through @atlasauth/actions
|
|
9
9
|
* logs <id> where to find an action's execution history
|
|
10
|
+
* gallery | show | install | installs | update | publish
|
|
11
|
+
* the Actions gallery (see ./actions-gallery.ts)
|
|
10
12
|
*/
|
|
11
13
|
export declare function actions(ctx: RunContext, args: ParsedArgs): Promise<number>;
|
package/dist/commands/actions.js
CHANGED
|
@@ -7,6 +7,7 @@ const args_1 = require("../args");
|
|
|
7
7
|
const errors_1 = require("../errors");
|
|
8
8
|
const output_1 = require("../output");
|
|
9
9
|
const shared_1 = require("./shared");
|
|
10
|
+
const actions_gallery_1 = require("./actions-gallery");
|
|
10
11
|
const COLUMNS = [
|
|
11
12
|
{ header: 'ID', get: (a) => a.id },
|
|
12
13
|
{ header: 'NAME', get: (a) => a.name },
|
|
@@ -32,6 +33,8 @@ function parseTrigger(raw) {
|
|
|
32
33
|
* deploy <file> --trigger <t> upload a file's code as a new action
|
|
33
34
|
* test <file> [--trigger <t>] dry-run the file OFFLINE through @atlasauth/actions
|
|
34
35
|
* logs <id> where to find an action's execution history
|
|
36
|
+
* gallery | show | install | installs | update | publish
|
|
37
|
+
* the Actions gallery (see ./actions-gallery.ts)
|
|
35
38
|
*/
|
|
36
39
|
async function actions(ctx, args) {
|
|
37
40
|
const sub = args.positionals[1];
|
|
@@ -111,10 +114,22 @@ async function actions(ctx, args) {
|
|
|
111
114
|
ctx.io.out(lines.join('\n'));
|
|
112
115
|
return 0;
|
|
113
116
|
}
|
|
117
|
+
case 'gallery':
|
|
118
|
+
return (0, actions_gallery_1.gallery)(ctx, args);
|
|
119
|
+
case 'show':
|
|
120
|
+
return (0, actions_gallery_1.show)(ctx, args);
|
|
121
|
+
case 'install':
|
|
122
|
+
return (0, actions_gallery_1.install)(ctx, args);
|
|
123
|
+
case 'installs':
|
|
124
|
+
return (0, actions_gallery_1.installs)(ctx, args);
|
|
125
|
+
case 'update':
|
|
126
|
+
return (0, actions_gallery_1.update)(ctx, args);
|
|
127
|
+
case 'publish':
|
|
128
|
+
return (0, actions_gallery_1.publish)(ctx, args);
|
|
114
129
|
default:
|
|
115
130
|
throw new errors_1.CliError(sub
|
|
116
|
-
? `Unknown subcommand 'actions ${sub}'. Try: list, deploy, test, logs.`
|
|
117
|
-
: 'actions needs a subcommand: list, deploy, test, logs.');
|
|
131
|
+
? `Unknown subcommand 'actions ${sub}'. Try: list, deploy, test, logs, gallery, show, install, installs, update, publish.`
|
|
132
|
+
: 'actions needs a subcommand: list, deploy, test, logs, gallery, show, install, installs, update, publish.');
|
|
118
133
|
}
|
|
119
134
|
}
|
|
120
135
|
//# sourceMappingURL=actions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/commands/actions.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/commands/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.importUsers = importUsers;
|
|
4
|
+
const node_crypto_1 = require("node:crypto");
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const args_1 = require("../args");
|
|
7
|
+
const errors_1 = require("../errors");
|
|
8
|
+
const output_1 = require("../output");
|
|
9
|
+
const project_1 = require("../project");
|
|
10
|
+
const vendors_1 = require("../import/vendors");
|
|
11
|
+
const shared_1 = require("./shared");
|
|
12
|
+
async function importUsers(ctx, args) {
|
|
13
|
+
const vendor = (0, args_1.str)(args.values, 'from');
|
|
14
|
+
if (!vendor || !vendors_1.VENDORS.includes(vendor)) {
|
|
15
|
+
throw new errors_1.CliError(`import needs --from <${vendors_1.VENDORS.join('|')}>.`);
|
|
16
|
+
}
|
|
17
|
+
const file = args.positionals[1];
|
|
18
|
+
if (!file)
|
|
19
|
+
throw new errors_1.CliError(`import needs the export file: atlas import --from ${vendor} <file>`);
|
|
20
|
+
const text = ctx.readFile(file);
|
|
21
|
+
let doc;
|
|
22
|
+
let hashes;
|
|
23
|
+
try {
|
|
24
|
+
doc = (0, vendors_1.parseExport)(text, file);
|
|
25
|
+
const hashesFile = (0, args_1.str)(args.values, 'hashes');
|
|
26
|
+
if (hashesFile)
|
|
27
|
+
hashes = (0, vendors_1.parseExport)(ctx.readFile(hashesFile), hashesFile);
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
throw new errors_1.CliError(err instanceof Error ? err.message : String(err));
|
|
31
|
+
}
|
|
32
|
+
const { rows, warnings } = (0, vendors_1.mapExport)(vendor, doc, hashes);
|
|
33
|
+
const json = (0, shared_1.wantsJson)(args.values);
|
|
34
|
+
const summary = (0, vendors_1.summarize)(rows);
|
|
35
|
+
let hashConfig;
|
|
36
|
+
const hashConfigFile = (0, args_1.str)(args.values, 'hash-config');
|
|
37
|
+
if (hashConfigFile) {
|
|
38
|
+
try {
|
|
39
|
+
hashConfig = JSON.parse(ctx.readFile(hashConfigFile));
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
throw new errors_1.CliError(`--hash-config ${hashConfigFile} is not valid JSON.`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (vendor === 'firebase' && (summary.with_password_hash ?? 0) > 0 && !hashConfig && !args.values['dry-run']) {
|
|
46
|
+
throw new errors_1.CliError('Firebase password hashes need the project hash parameters. Copy them from the Firebase console (Authentication > Users > Password hash parameters) into a JSON file and pass --hash-config <file>.');
|
|
47
|
+
}
|
|
48
|
+
if (args.values['dry-run']) {
|
|
49
|
+
if (json)
|
|
50
|
+
(0, output_1.printJson)(ctx.io, { vendor, summary, warnings, sample: rows.slice(0, 3).map(redact) });
|
|
51
|
+
else {
|
|
52
|
+
ctx.io.out(`Dry run: ${rows.length} user(s) mapped from ${vendor}. Nothing was sent.`);
|
|
53
|
+
for (const [k, v] of Object.entries(summary))
|
|
54
|
+
ctx.io.out(` ${k.replace(/_/g, ' ')}: ${v}`);
|
|
55
|
+
for (const w of warnings)
|
|
56
|
+
ctx.io.out(` note: ${w}`);
|
|
57
|
+
}
|
|
58
|
+
return 0;
|
|
59
|
+
}
|
|
60
|
+
if (rows.length === 0)
|
|
61
|
+
throw new errors_1.CliError('The export contains no users with an email address.');
|
|
62
|
+
const batchSize = Math.min(Math.max(Number((0, args_1.str)(args.values, 'batch-size') ?? 100) || 100, 1), 100);
|
|
63
|
+
const statePath = (0, args_1.str)(args.values, 'state-file') ?? `${file}.atlas-import.json`;
|
|
64
|
+
const sha = (0, node_crypto_1.createHash)('sha256').update(text).digest('hex');
|
|
65
|
+
let state = { vendor, input_sha256: sha, next_index: 0, total: rows.length, succeeded: 0, failed: 0, jobs: [] };
|
|
66
|
+
if ((0, node_fs_1.existsSync)(statePath)) {
|
|
67
|
+
const saved = JSON.parse((0, node_fs_1.readFileSync)(statePath, 'utf8'));
|
|
68
|
+
if (saved.input_sha256 !== sha || saved.vendor !== vendor) {
|
|
69
|
+
throw new errors_1.CliError(`${statePath} belongs to a different export. Delete it or pass --state-file to start over.`);
|
|
70
|
+
}
|
|
71
|
+
state = saved;
|
|
72
|
+
if (state.next_index >= rows.length) {
|
|
73
|
+
ctx.io.out(`Already imported: ${state.succeeded} succeeded, ${state.failed} failed. Delete ${statePath} to run again.`);
|
|
74
|
+
return 0;
|
|
75
|
+
}
|
|
76
|
+
ctx.io.err(`Resuming at user ${state.next_index + 1} of ${rows.length}.`);
|
|
77
|
+
}
|
|
78
|
+
const auth = (0, shared_1.resolveAuth)(ctx, args.values);
|
|
79
|
+
const http = (0, project_1.httpFor)(ctx, { secretKey: auth.secretKey, apiUrl: auth.apiUrl });
|
|
80
|
+
for (const w of warnings)
|
|
81
|
+
ctx.io.err(`note: ${w}`);
|
|
82
|
+
while (state.next_index < rows.length) {
|
|
83
|
+
const batch = rows.slice(state.next_index, state.next_index + batchSize);
|
|
84
|
+
const body = { users: batch, upsert: true };
|
|
85
|
+
if (args.values['create-orgs'])
|
|
86
|
+
body.create_organizations = true;
|
|
87
|
+
if (hashConfig)
|
|
88
|
+
body.password_hash_config = { firebase: hashConfig };
|
|
89
|
+
let job = await http.post('/v1/user_imports', body);
|
|
90
|
+
// A batch over the inline limit is queued; poll it to completion.
|
|
91
|
+
while (job.status === 'pending' || job.status === 'processing') {
|
|
92
|
+
await (ctx.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms))))(2000);
|
|
93
|
+
job = await http.get(`/v1/jobs/${job.id}`);
|
|
94
|
+
}
|
|
95
|
+
state.next_index += batch.length;
|
|
96
|
+
state.succeeded += job.succeeded;
|
|
97
|
+
state.failed += job.failed;
|
|
98
|
+
state.jobs.push(job.id);
|
|
99
|
+
(0, node_fs_1.writeFileSync)(statePath, JSON.stringify(state, null, 2));
|
|
100
|
+
if (!json)
|
|
101
|
+
ctx.io.err(` ${state.next_index}/${rows.length} sent (job ${job.id}: ${job.succeeded} ok, ${job.failed} issues)`);
|
|
102
|
+
}
|
|
103
|
+
if (json)
|
|
104
|
+
(0, output_1.printJson)(ctx.io, { ...state, summary, warnings });
|
|
105
|
+
else {
|
|
106
|
+
ctx.io.out(`Imported ${rows.length} user(s) from ${vendor}: ${state.succeeded} created or updated, ${state.failed} row issue(s).`);
|
|
107
|
+
if (state.failed)
|
|
108
|
+
ctx.io.out(`Per-row issues: GET /v1/jobs/<job-id>/errors for jobs ${state.jobs.join(', ')}`);
|
|
109
|
+
}
|
|
110
|
+
return state.failed > 0 ? 2 : 0;
|
|
111
|
+
}
|
|
112
|
+
/** A dry-run sample never prints a password hash. */
|
|
113
|
+
function redact(row) {
|
|
114
|
+
return row.password_hash ? { ...row, password_hash: '[redacted]', ...(row.password_salt ? { password_salt: '[redacted]' } : {}) } : row;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":";;AA6CA,kCA+FC;AA5ID,6CAAyC;AACzC,qCAAkE;AAClE,kCAA+C;AAE/C,sCAAqC;AACrC,sCAAsC;AACtC,wCAAqC;AACrC,+CAA4G;AAC5G,qCAAkD;AAqC3C,KAAK,UAAU,WAAW,CAAC,GAAe,EAAE,IAAgB;IACjE,MAAM,MAAM,GAAG,IAAA,UAAG,EAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAuB,CAAC;IAC9D,IAAI,CAAC,MAAM,IAAI,CAAE,iBAA6B,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,iBAAQ,CAAC,wBAAwB,iBAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,iBAAQ,CAAC,qDAAqD,MAAM,SAAS,CAAC,CAAC;IAEpG,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,GAAY,CAAC;IACjB,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,GAAG,GAAG,IAAA,qBAAW,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAA,UAAG,EAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9C,IAAI,UAAU;YAAE,MAAM,GAAG,IAAA,qBAAW,EAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,iBAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAA,mBAAS,EAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,IAAA,kBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,CAAC;IAEhC,IAAI,UAA+C,CAAC;IACpD,MAAM,cAAc,GAAG,IAAA,UAAG,EAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACvD,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAA4B,CAAC;QACnF,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,iBAAQ,CAAC,iBAAiB,cAAc,qBAAqB,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,IAAI,MAAM,KAAK,UAAU,IAAI,CAAC,OAAO,CAAC,kBAAkB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7G,MAAM,IAAI,iBAAQ,CAChB,oMAAoM,CACrM,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,IAAI,IAAI;YAAE,IAAA,kBAAS,EAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;aAC5F,CAAC;YACJ,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,wBAAwB,MAAM,qBAAqB,CAAC,CAAC;YACvF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;gBAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5F,KAAK,MAAM,CAAC,IAAI,QAAQ;gBAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,iBAAQ,CAAC,qDAAqD,CAAC,CAAC;IAEjG,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAA,UAAG,EAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnG,MAAM,SAAS,GAAG,IAAA,UAAG,EAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,GAAG,IAAI,oBAAoB,CAAC;IAChF,MAAM,GAAG,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5D,IAAI,KAAK,GAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC7H,IAAI,IAAA,oBAAU,EAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,SAAS,EAAE,MAAM,CAAC,CAAgB,CAAC;QACzE,IAAI,KAAK,CAAC,YAAY,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC1D,MAAM,IAAI,iBAAQ,CAAC,GAAG,SAAS,+EAA+E,CAAC,CAAC;QAClH,CAAC;QACD,KAAK,GAAG,KAAK,CAAC;QACd,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,SAAS,eAAe,KAAK,CAAC,MAAM,mBAAmB,SAAS,gBAAgB,CAAC,CAAC;YACxH,OAAO,CAAC,CAAC;QACX,CAAC;QACD,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAA,iBAAO,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9E,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAEnD,OAAO,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;QACzE,MAAM,IAAI,GAA4B,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACrE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAAE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjE,IAAI,UAAU;YAAE,IAAI,CAAC,oBAAoB,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QACrE,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAY,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAC/D,kEAAkE;QAClE,OAAO,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAC/D,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3E,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAY,YAAY,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC;QACjC,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC;QACjC,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxB,IAAA,uBAAa,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI;YAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,SAAS,QAAQ,GAAG,CAAC,MAAM,UAAU,CAAC,CAAC;IAChI,CAAC;IAED,IAAI,IAAI;QAAE,IAAA,kBAAS,EAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;SACxD,CAAC;QACJ,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,iBAAiB,MAAM,KAAK,KAAK,CAAC,SAAS,wBAAwB,KAAK,CAAC,MAAM,gBAAgB,CAAC,CAAC;QACnI,IAAI,KAAK,CAAC,MAAM;YAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,yDAAyD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjH,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,qDAAqD;AACrD,SAAS,MAAM,CAAC,GAAc;IAC5B,OAAO,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1I,CAAC"}
|