@authrim/setup 0.1.18 ā 0.1.22
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 +125 -2
- package/dist/cli/commands/delete.d.ts +18 -0
- package/dist/cli/commands/delete.d.ts.map +1 -0
- package/dist/cli/commands/delete.js +130 -0
- package/dist/cli/commands/delete.js.map +1 -0
- package/dist/cli/commands/info.d.ts +14 -0
- package/dist/cli/commands/info.d.ts.map +1 -0
- package/dist/cli/commands/info.js +183 -0
- package/dist/cli/commands/info.js.map +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +241 -48
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/core/config.d.ts +4 -4
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +4 -4
- package/dist/core/config.js.map +1 -1
- package/dist/core/wrangler.d.ts.map +1 -1
- package/dist/core/wrangler.js +3 -4
- package/dist/core/wrangler.js.map +1 -1
- package/dist/index.js +23 -1
- package/dist/index.js.map +1 -1
- package/dist/web/api.d.ts.map +1 -1
- package/dist/web/api.js +8 -1
- package/dist/web/api.js.map +1 -1
- package/dist/web/ui.d.ts.map +1 -1
- package/dist/web/ui.js +28 -10
- package/dist/web/ui.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -159,6 +159,77 @@ Options:
|
|
|
159
159
|
--json Output in JSON format
|
|
160
160
|
```
|
|
161
161
|
|
|
162
|
+
### `delete`
|
|
163
|
+
|
|
164
|
+
Delete an Authrim environment and its resources:
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
npx @authrim/setup delete [options]
|
|
168
|
+
|
|
169
|
+
Options:
|
|
170
|
+
--env <name> Environment name to delete
|
|
171
|
+
-y, --yes Skip confirmation prompts (for CI/CD)
|
|
172
|
+
--no-workers Keep Workers
|
|
173
|
+
--no-d1 Keep D1 databases
|
|
174
|
+
--no-kv Keep KV namespaces
|
|
175
|
+
--no-queues Keep Queues
|
|
176
|
+
--no-r2 Keep R2 buckets
|
|
177
|
+
--all Delete all resource types (default)
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Examples:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
# Interactive mode - prompts for environment selection
|
|
184
|
+
npx @authrim/setup delete
|
|
185
|
+
|
|
186
|
+
# CI/CD mode - no prompts
|
|
187
|
+
npx @authrim/setup delete --env staging --yes
|
|
188
|
+
|
|
189
|
+
# Partial deletion - keep D1 databases
|
|
190
|
+
npx @authrim/setup delete --env dev --no-d1 --yes
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### `info`
|
|
194
|
+
|
|
195
|
+
Display detailed information about Authrim resources:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
npx @authrim/setup info [options]
|
|
199
|
+
|
|
200
|
+
Options:
|
|
201
|
+
--env <name> Environment name
|
|
202
|
+
--json Output in JSON format (for scripting/CI)
|
|
203
|
+
--d1 Show only D1 database information
|
|
204
|
+
--workers Show only Worker information
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Examples:
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# Interactive mode
|
|
211
|
+
npx @authrim/setup info
|
|
212
|
+
|
|
213
|
+
# Specific environment with JSON output (for CI/CD)
|
|
214
|
+
npx @authrim/setup info --env prod --json
|
|
215
|
+
|
|
216
|
+
# D1 database details only
|
|
217
|
+
npx @authrim/setup info --env prod --d1
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### `secrets`
|
|
221
|
+
|
|
222
|
+
Upload secrets to Cloudflare Workers:
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
npx @authrim/setup secrets [options]
|
|
226
|
+
|
|
227
|
+
Options:
|
|
228
|
+
--env <name> Environment name
|
|
229
|
+
--config <path> Configuration file path
|
|
230
|
+
--keys-dir <path> Keys directory (default: ".keys")
|
|
231
|
+
```
|
|
232
|
+
|
|
162
233
|
## Web UI Features
|
|
163
234
|
|
|
164
235
|
### Resource Provisioning
|
|
@@ -273,7 +344,9 @@ The main configuration file containing all environment settings:
|
|
|
273
344
|
"adminUi": true,
|
|
274
345
|
"saml": false,
|
|
275
346
|
"async": false,
|
|
276
|
-
"vc": false
|
|
347
|
+
"vc": false,
|
|
348
|
+
"bridge": false,
|
|
349
|
+
"policy": false
|
|
277
350
|
},
|
|
278
351
|
"keys": {
|
|
279
352
|
"keyId": "kid-xxxxxxxx",
|
|
@@ -282,6 +355,24 @@ The main configuration file containing all environment settings:
|
|
|
282
355
|
}
|
|
283
356
|
```
|
|
284
357
|
|
|
358
|
+
**URL Configuration**:
|
|
359
|
+
- `custom`: Your custom domain (optional). Set to `null` to use the auto-generated URL.
|
|
360
|
+
- `auto`: Auto-generated Cloudflare URL (workers.dev / pages.dev).
|
|
361
|
+
|
|
362
|
+
**Components**:
|
|
363
|
+
| Component | Description |
|
|
364
|
+
|-----------|-------------|
|
|
365
|
+
| `api` | Core OIDC API (required) |
|
|
366
|
+
| `loginUi` | Login/consent UI |
|
|
367
|
+
| `adminUi` | Admin dashboard |
|
|
368
|
+
| `saml` | SAML 2.0 IdP support |
|
|
369
|
+
| `async` | Async job processing (email, webhooks) |
|
|
370
|
+
| `vc` | Verifiable Credentials |
|
|
371
|
+
| `bridge` | External IdP / Social Login (Google, GitHub, etc.) |
|
|
372
|
+
| `policy` | ReBAC Policy Engine |
|
|
373
|
+
|
|
374
|
+
**CORS Auto-Configuration**: When LoginUI or AdminUI use different origins from the API, CORS allowed origins are automatically configured.
|
|
375
|
+
|
|
285
376
|
### authrim-lock.json
|
|
286
377
|
|
|
287
378
|
Records provisioned resource IDs for re-deployment:
|
|
@@ -335,11 +426,13 @@ Authrim workers are deployed in a specific order to satisfy dependencies:
|
|
|
335
426
|
Level 0: ar-lib-core # Durable Objects definitions (always first)
|
|
336
427
|
Level 1: ar-discovery # Discovery endpoint
|
|
337
428
|
Level 2: ar-auth, ar-token, ar-userinfo, ar-management # Core services (parallel)
|
|
338
|
-
Level 3: ar-async, ar-saml, ar-vc, ar-bridge
|
|
429
|
+
Level 3: ar-async, ar-saml, ar-vc, ar-bridge, ar-policy # Optional (parallel)
|
|
339
430
|
Level 4: ar-router # Service bindings (always last)
|
|
340
431
|
Level 5: ar-ui # Cloudflare Pages (optional)
|
|
341
432
|
```
|
|
342
433
|
|
|
434
|
+
**Note**: Only enabled components are deployed. Service bindings in ar-router are automatically configured based on your component selection.
|
|
435
|
+
|
|
343
436
|
## Initial Admin Setup
|
|
344
437
|
|
|
345
438
|
After deployment, the CLI displays a one-time setup URL:
|
|
@@ -362,15 +455,41 @@ This URL allows you to:
|
|
|
362
455
|
2. Access the Admin Dashboard
|
|
363
456
|
3. Create OAuth clients and configure settings
|
|
364
457
|
|
|
458
|
+
## CI/CD Integration
|
|
459
|
+
|
|
460
|
+
The CLI commands support non-interactive mode for automation:
|
|
461
|
+
|
|
462
|
+
```bash
|
|
463
|
+
# Deploy without prompts
|
|
464
|
+
npx @authrim/setup deploy --env prod --yes
|
|
465
|
+
|
|
466
|
+
# Delete environment in CI (requires explicit --env)
|
|
467
|
+
npx @authrim/setup delete --env staging --yes
|
|
468
|
+
|
|
469
|
+
# Get resource info as JSON for scripting
|
|
470
|
+
npx @authrim/setup info --env prod --json
|
|
471
|
+
|
|
472
|
+
# Example: Parse JSON output
|
|
473
|
+
npx @authrim/setup info --env prod --json | jq '.d1[0].databaseSize'
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
### Environment Variables
|
|
477
|
+
|
|
478
|
+
The CLI respects standard Cloudflare environment variables:
|
|
479
|
+
- `CLOUDFLARE_API_TOKEN` - API token for authentication
|
|
480
|
+
- `CLOUDFLARE_ACCOUNT_ID` - Target account ID
|
|
481
|
+
|
|
365
482
|
## Security Features
|
|
366
483
|
|
|
367
484
|
- **Session Token Authentication**: API endpoints require session tokens to prevent unauthorized access
|
|
368
485
|
- **Path Traversal Prevention**: Key storage directory is validated to prevent directory traversal attacks
|
|
369
486
|
- **Command Injection Prevention**: Browser launch URLs are validated to prevent shell injection
|
|
487
|
+
- **XSS Prevention**: User-controlled content is rendered safely using textContent instead of innerHTML
|
|
370
488
|
- **Error Sanitization**: Error messages are sanitized to prevent information leakage
|
|
371
489
|
- **Operation Locking**: Concurrent operations are serialized to prevent race conditions
|
|
372
490
|
- **Localhost-Only Web UI**: Web UI only binds to localhost for security
|
|
373
491
|
- **Auto Port Selection**: If default port is in use, automatically finds an available port (3456-3465)
|
|
492
|
+
- **Selective Deployment**: Only explicitly enabled components are deployed, minimizing attack surface
|
|
374
493
|
|
|
375
494
|
## Requirements
|
|
376
495
|
|
|
@@ -454,6 +573,10 @@ npx @authrim/setup manage --port 4000
|
|
|
454
573
|
|
|
455
574
|
Ensure all dependent workers are deployed. The ar-router must be deployed last as it references other workers via Service Bindings.
|
|
456
575
|
|
|
576
|
+
If you see an error like `Could not resolve service binding 'OP_ASYNC'`, it means you're trying to deploy ar-router with a component enabled that hasn't been deployed yet. Either:
|
|
577
|
+
1. Deploy the missing component first
|
|
578
|
+
2. Disable the component in your configuration
|
|
579
|
+
|
|
457
580
|
## License
|
|
458
581
|
|
|
459
582
|
Apache License 2.0 - see [LICENSE](https://github.com/sgrastar/authrim/blob/main/LICENSE) for details.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delete Command
|
|
3
|
+
*
|
|
4
|
+
* Deletes an Authrim environment and its resources.
|
|
5
|
+
* Designed for both interactive and CI use.
|
|
6
|
+
*/
|
|
7
|
+
export interface DeleteCommandOptions {
|
|
8
|
+
env?: string;
|
|
9
|
+
yes?: boolean;
|
|
10
|
+
workers?: boolean;
|
|
11
|
+
d1?: boolean;
|
|
12
|
+
kv?: boolean;
|
|
13
|
+
queues?: boolean;
|
|
14
|
+
r2?: boolean;
|
|
15
|
+
all?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function deleteCommand(options: DeleteCommandOptions): Promise<void>;
|
|
18
|
+
//# sourceMappingURL=delete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/delete.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAMD,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyIhF"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delete Command
|
|
3
|
+
*
|
|
4
|
+
* Deletes an Authrim environment and its resources.
|
|
5
|
+
* Designed for both interactive and CI use.
|
|
6
|
+
*/
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
import ora from 'ora';
|
|
9
|
+
import { confirm } from '@inquirer/prompts';
|
|
10
|
+
import { isWranglerInstalled, checkAuth, detectEnvironments, deleteEnvironment, } from '../../core/cloudflare.js';
|
|
11
|
+
// =============================================================================
|
|
12
|
+
// Delete Command
|
|
13
|
+
// =============================================================================
|
|
14
|
+
export async function deleteCommand(options) {
|
|
15
|
+
console.log(chalk.bold('\nšļø Authrim Environment Delete\n'));
|
|
16
|
+
// Check prerequisites
|
|
17
|
+
const spinner = ora('Checking prerequisites...').start();
|
|
18
|
+
if (!(await isWranglerInstalled())) {
|
|
19
|
+
spinner.fail('Wrangler is not installed');
|
|
20
|
+
console.log(chalk.yellow('\nInstall wrangler:'));
|
|
21
|
+
console.log(' npm install -g wrangler');
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
const auth = await checkAuth();
|
|
25
|
+
if (!auth.isLoggedIn) {
|
|
26
|
+
spinner.fail('Not logged in to Cloudflare');
|
|
27
|
+
console.log(chalk.yellow('\nLogin with:'));
|
|
28
|
+
console.log(' wrangler login');
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
spinner.succeed(`Logged in as ${auth.email || 'unknown'}`);
|
|
32
|
+
// Get environment name
|
|
33
|
+
let env = options.env;
|
|
34
|
+
if (!env) {
|
|
35
|
+
// Detect environments
|
|
36
|
+
const detectSpinner = ora('Detecting environments...').start();
|
|
37
|
+
const environments = await detectEnvironments();
|
|
38
|
+
detectSpinner.stop();
|
|
39
|
+
if (environments.length === 0) {
|
|
40
|
+
console.log(chalk.yellow('\nNo Authrim environments found.'));
|
|
41
|
+
process.exit(0);
|
|
42
|
+
}
|
|
43
|
+
console.log(chalk.cyan('\nDetected environments:'));
|
|
44
|
+
for (const e of environments) {
|
|
45
|
+
console.log(chalk.gray(` ⢠${e.env} (${e.workers.length} workers, ${e.d1.length} D1, ${e.kv.length} KV)`));
|
|
46
|
+
}
|
|
47
|
+
if (!options.yes) {
|
|
48
|
+
// Interactive mode: ask which environment to delete
|
|
49
|
+
const { select } = await import('@inquirer/prompts');
|
|
50
|
+
env = await select({
|
|
51
|
+
message: 'Select environment to delete:',
|
|
52
|
+
choices: environments.map((e) => ({
|
|
53
|
+
name: `${e.env} (${e.workers.length} workers, ${e.d1.length} D1, ${e.kv.length} KV)`,
|
|
54
|
+
value: e.env,
|
|
55
|
+
})),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
console.error(chalk.red('\nError: --env is required when using --yes flag'));
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
console.log(chalk.cyan(`\nEnvironment: ${env}`));
|
|
64
|
+
// Determine what to delete
|
|
65
|
+
const deleteWorkers = options.all || options.workers !== false;
|
|
66
|
+
const deleteD1 = options.all || options.d1 !== false;
|
|
67
|
+
const deleteKV = options.all || options.kv !== false;
|
|
68
|
+
const deleteQueues = options.all || options.queues !== false;
|
|
69
|
+
const deleteR2 = options.all || options.r2 !== false;
|
|
70
|
+
console.log(chalk.gray('\nResources to delete:'));
|
|
71
|
+
console.log(chalk.gray(` Workers: ${deleteWorkers ? 'ā' : 'ā'}`));
|
|
72
|
+
console.log(chalk.gray(` D1: ${deleteD1 ? 'ā' : 'ā'}`));
|
|
73
|
+
console.log(chalk.gray(` KV: ${deleteKV ? 'ā' : 'ā'}`));
|
|
74
|
+
console.log(chalk.gray(` Queues: ${deleteQueues ? 'ā' : 'ā'}`));
|
|
75
|
+
console.log(chalk.gray(` R2: ${deleteR2 ? 'ā' : 'ā'}`));
|
|
76
|
+
// Confirm deletion
|
|
77
|
+
if (!options.yes) {
|
|
78
|
+
console.log('');
|
|
79
|
+
const confirmed = await confirm({
|
|
80
|
+
message: chalk.red(`ā ļø This will permanently delete all resources for "${env}". Continue?`),
|
|
81
|
+
default: false,
|
|
82
|
+
});
|
|
83
|
+
if (!confirmed) {
|
|
84
|
+
console.log(chalk.yellow('\nDeletion cancelled.'));
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
console.log('');
|
|
89
|
+
// Delete environment
|
|
90
|
+
const result = await deleteEnvironment({
|
|
91
|
+
env,
|
|
92
|
+
deleteWorkers,
|
|
93
|
+
deleteD1,
|
|
94
|
+
deleteKV,
|
|
95
|
+
deleteQueues,
|
|
96
|
+
deleteR2,
|
|
97
|
+
onProgress: (msg) => console.log(msg),
|
|
98
|
+
});
|
|
99
|
+
// Summary
|
|
100
|
+
console.log(chalk.bold('\nāāā Deletion Summary āāā\n'));
|
|
101
|
+
if (result.deleted.workers.length > 0) {
|
|
102
|
+
console.log(chalk.green(`Workers deleted: ${result.deleted.workers.length}`));
|
|
103
|
+
}
|
|
104
|
+
if (result.deleted.d1.length > 0) {
|
|
105
|
+
console.log(chalk.green(`D1 databases deleted: ${result.deleted.d1.length}`));
|
|
106
|
+
}
|
|
107
|
+
if (result.deleted.kv.length > 0) {
|
|
108
|
+
console.log(chalk.green(`KV namespaces deleted: ${result.deleted.kv.length}`));
|
|
109
|
+
}
|
|
110
|
+
if (result.deleted.queues.length > 0) {
|
|
111
|
+
console.log(chalk.green(`Queues deleted: ${result.deleted.queues.length}`));
|
|
112
|
+
}
|
|
113
|
+
if (result.deleted.r2.length > 0) {
|
|
114
|
+
console.log(chalk.green(`R2 buckets deleted: ${result.deleted.r2.length}`));
|
|
115
|
+
}
|
|
116
|
+
if (result.errors.length > 0) {
|
|
117
|
+
console.log(chalk.yellow(`\nErrors (${result.errors.length}):`));
|
|
118
|
+
for (const error of result.errors) {
|
|
119
|
+
console.log(chalk.red(` ⢠${error}`));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (result.success) {
|
|
123
|
+
console.log(chalk.green('\nā
Environment deleted successfully!'));
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
console.log(chalk.yellow('\nā ļø Environment deletion completed with errors.'));
|
|
127
|
+
process.exit(1);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/cli/commands/delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Info Command
|
|
3
|
+
*
|
|
4
|
+
* Displays detailed information about Authrim resources.
|
|
5
|
+
* Designed for both interactive and CI use.
|
|
6
|
+
*/
|
|
7
|
+
export interface InfoCommandOptions {
|
|
8
|
+
env?: string;
|
|
9
|
+
json?: boolean;
|
|
10
|
+
d1?: boolean;
|
|
11
|
+
workers?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function infoCommand(options: InfoCommandOptions): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/info.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAwBD,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyL5E"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Info Command
|
|
3
|
+
*
|
|
4
|
+
* Displays detailed information about Authrim resources.
|
|
5
|
+
* Designed for both interactive and CI use.
|
|
6
|
+
*/
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
import ora from 'ora';
|
|
9
|
+
import { isWranglerInstalled, checkAuth, detectEnvironments, getD1Info, getWorkerDeployments, } from '../../core/cloudflare.js';
|
|
10
|
+
// =============================================================================
|
|
11
|
+
// Info Command
|
|
12
|
+
// =============================================================================
|
|
13
|
+
export async function infoCommand(options) {
|
|
14
|
+
if (!options.json) {
|
|
15
|
+
console.log(chalk.bold('\nš Authrim Resource Info\n'));
|
|
16
|
+
}
|
|
17
|
+
// Check prerequisites
|
|
18
|
+
const spinner = ora('Checking prerequisites...').start();
|
|
19
|
+
if (!(await isWranglerInstalled())) {
|
|
20
|
+
spinner.fail('Wrangler is not installed');
|
|
21
|
+
if (!options.json) {
|
|
22
|
+
console.log(chalk.yellow('\nInstall wrangler:'));
|
|
23
|
+
console.log(' npm install -g wrangler');
|
|
24
|
+
}
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
const auth = await checkAuth();
|
|
28
|
+
if (!auth.isLoggedIn) {
|
|
29
|
+
spinner.fail('Not logged in to Cloudflare');
|
|
30
|
+
if (!options.json) {
|
|
31
|
+
console.log(chalk.yellow('\nLogin with:'));
|
|
32
|
+
console.log(' wrangler login');
|
|
33
|
+
}
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
spinner.succeed(`Logged in as ${auth.email || 'unknown'}`);
|
|
37
|
+
// Get environment
|
|
38
|
+
let env = options.env;
|
|
39
|
+
let envInfo;
|
|
40
|
+
if (!env) {
|
|
41
|
+
// Detect environments
|
|
42
|
+
const detectSpinner = ora('Detecting environments...').start();
|
|
43
|
+
const environments = await detectEnvironments();
|
|
44
|
+
detectSpinner.stop();
|
|
45
|
+
if (environments.length === 0) {
|
|
46
|
+
if (options.json) {
|
|
47
|
+
console.log(JSON.stringify({ error: 'No environments found' }));
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
console.log(chalk.yellow('\nNo Authrim environments found.'));
|
|
51
|
+
}
|
|
52
|
+
process.exit(0);
|
|
53
|
+
}
|
|
54
|
+
if (environments.length === 1) {
|
|
55
|
+
env = environments[0].env;
|
|
56
|
+
envInfo = environments[0];
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// Interactive mode: ask which environment
|
|
60
|
+
const { select } = await import('@inquirer/prompts');
|
|
61
|
+
env = await select({
|
|
62
|
+
message: 'Select environment:',
|
|
63
|
+
choices: environments.map((e) => ({
|
|
64
|
+
name: `${e.env} (${e.workers.length} workers, ${e.d1.length} D1, ${e.kv.length} KV)`,
|
|
65
|
+
value: e.env,
|
|
66
|
+
})),
|
|
67
|
+
});
|
|
68
|
+
envInfo = environments.find((e) => e.env === env);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
// Find environment info
|
|
73
|
+
const detectSpinner = ora('Detecting environments...').start();
|
|
74
|
+
const environments = await detectEnvironments();
|
|
75
|
+
detectSpinner.stop();
|
|
76
|
+
envInfo = environments.find((e) => e.env === env);
|
|
77
|
+
if (!envInfo) {
|
|
78
|
+
if (options.json) {
|
|
79
|
+
console.log(JSON.stringify({ error: `Environment not found: ${env}` }));
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
console.error(chalk.red(`\nEnvironment not found: ${env}`));
|
|
83
|
+
}
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
const output = { environment: env };
|
|
88
|
+
// Determine what to show (default: both)
|
|
89
|
+
const showD1 = options.d1 || (!options.d1 && !options.workers);
|
|
90
|
+
const showWorkers = options.workers || (!options.d1 && !options.workers);
|
|
91
|
+
// D1 Information
|
|
92
|
+
if (showD1 && envInfo && envInfo.d1.length > 0) {
|
|
93
|
+
if (!options.json) {
|
|
94
|
+
console.log(chalk.bold(`\nš D1 Databases (${envInfo.d1.length})`));
|
|
95
|
+
}
|
|
96
|
+
output.d1 = [];
|
|
97
|
+
for (const db of envInfo.d1) {
|
|
98
|
+
const infoSpinner = options.json ? null : ora(`Fetching info for ${db.name}...`).start();
|
|
99
|
+
try {
|
|
100
|
+
const info = await getD1Info(db.name);
|
|
101
|
+
infoSpinner?.succeed(db.name);
|
|
102
|
+
output.d1.push({
|
|
103
|
+
name: db.name,
|
|
104
|
+
id: db.id,
|
|
105
|
+
databaseSize: info.databaseSize,
|
|
106
|
+
numTables: info.numTables,
|
|
107
|
+
region: info.region,
|
|
108
|
+
});
|
|
109
|
+
if (!options.json) {
|
|
110
|
+
console.log(chalk.gray(` ID: ${db.id}`));
|
|
111
|
+
if (info.databaseSize) {
|
|
112
|
+
console.log(chalk.gray(` Size: ${info.databaseSize}`));
|
|
113
|
+
}
|
|
114
|
+
if (info.numTables !== null && info.numTables !== undefined) {
|
|
115
|
+
console.log(chalk.gray(` Tables: ${info.numTables}`));
|
|
116
|
+
}
|
|
117
|
+
if (info.region) {
|
|
118
|
+
console.log(chalk.gray(` Region: ${info.region}`));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
infoSpinner?.fail(db.name);
|
|
124
|
+
output.d1.push({
|
|
125
|
+
name: db.name,
|
|
126
|
+
id: db.id,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// Worker Information
|
|
132
|
+
if (showWorkers && envInfo && envInfo.workers.length > 0) {
|
|
133
|
+
if (!options.json) {
|
|
134
|
+
console.log(chalk.bold(`\nš§ Workers (${envInfo.workers.length})`));
|
|
135
|
+
}
|
|
136
|
+
output.workers = [];
|
|
137
|
+
for (const worker of envInfo.workers) {
|
|
138
|
+
const infoSpinner = options.json ? null : ora(`Fetching info for ${worker.name}...`).start();
|
|
139
|
+
try {
|
|
140
|
+
const info = await getWorkerDeployments(worker.name);
|
|
141
|
+
infoSpinner?.succeed(worker.name);
|
|
142
|
+
output.workers.push({
|
|
143
|
+
name: worker.name,
|
|
144
|
+
exists: info.exists,
|
|
145
|
+
versionId: info.versionId,
|
|
146
|
+
lastDeployedAt: info.lastDeployedAt,
|
|
147
|
+
author: info.author,
|
|
148
|
+
});
|
|
149
|
+
if (!options.json) {
|
|
150
|
+
if (info.exists) {
|
|
151
|
+
if (info.versionId) {
|
|
152
|
+
console.log(chalk.gray(` Version: ${info.versionId}`));
|
|
153
|
+
}
|
|
154
|
+
if (info.lastDeployedAt) {
|
|
155
|
+
console.log(chalk.gray(` Deployed: ${info.lastDeployedAt}`));
|
|
156
|
+
}
|
|
157
|
+
if (info.author) {
|
|
158
|
+
console.log(chalk.gray(` Author: ${info.author}`));
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
console.log(chalk.yellow(` Status: Not deployed`));
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
infoSpinner?.fail(worker.name);
|
|
168
|
+
output.workers.push({
|
|
169
|
+
name: worker.name,
|
|
170
|
+
exists: false,
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// JSON output
|
|
176
|
+
if (options.json) {
|
|
177
|
+
console.log(JSON.stringify(output, null, 2));
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
console.log('');
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/cli/commands/info.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,kBAAkB,EAClB,SAAS,EACT,oBAAoB,GAErB,MAAM,0BAA0B,CAAC;AA+BlC,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC3D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,sBAAsB;IACtB,MAAM,OAAO,GAAG,GAAG,CAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;IAEzD,IAAI,CAAC,CAAC,MAAM,mBAAmB,EAAE,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,SAAS,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;IAE3D,kBAAkB;IAClB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACtB,IAAI,OAAoC,CAAC;IAEzC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,sBAAsB;QACtB,MAAM,aAAa,GAAG,GAAG,CAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/D,MAAM,YAAY,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAChD,aAAa,CAAC,IAAI,EAAE,CAAC;QAErB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;YAClE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1B,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,0CAA0C;YAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACrD,GAAG,GAAG,MAAM,MAAM,CAAC;gBACjB,OAAO,EAAE,qBAAqB;gBAC9B,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,MAAM,MAAM;oBACpF,KAAK,EAAE,CAAC,CAAC,GAAG;iBACb,CAAC,CAAC;aACJ,CAAC,CAAC;YACH,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,wBAAwB;QACxB,MAAM,aAAa,GAAG,GAAG,CAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/D,MAAM,YAAY,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAChD,aAAa,CAAC,IAAI,EAAE,CAAC;QACrB,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAElD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,0BAA0B,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAe,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;IAEhD,yCAAyC;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzE,iBAAiB;IACjB,IAAI,MAAM,IAAI,OAAO,IAAI,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;QAEf,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;YAEzF,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACtC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAE9B,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,EAAE,CAAC,IAAI;oBACb,EAAE,EAAE,EAAE,CAAC,EAAE;oBACT,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC,CAAC;gBAEH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;oBAC5C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;oBAC5D,CAAC;oBACD,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;wBAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBAC3D,CAAC;oBACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACxD,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;oBACb,IAAI,EAAE,EAAE,CAAC,IAAI;oBACb,EAAE,EAAE,EAAE,CAAC,EAAE;iBACV,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,WAAW,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;QAEpB,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;YAE7F,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrD,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAElC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC,CAAC;gBAEH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBAClB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBAChB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;4BACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;wBAC5D,CAAC;wBACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;4BACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;wBAClE,CAAC;wBACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;4BAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBACxD,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;oBACxD,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,MAAM,EAAE,KAAK;iBACd,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,cAAc;IACd,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiDH,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiDH,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAiXD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAuErE"}
|