@statechange/xano-cli 0.2.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/README.md +251 -0
- package/dist/auth.d.ts +22 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +94 -0
- package/dist/auth.js.map +1 -0
- package/dist/commands/audit.d.ts +6 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +316 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/auth.d.ts +6 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +179 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/health.d.ts +6 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +115 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/history.d.ts +6 -0
- package/dist/commands/history.d.ts.map +1 -0
- package/dist/commands/history.js +250 -0
- package/dist/commands/history.js.map +1 -0
- package/dist/commands/inventory.d.ts +6 -0
- package/dist/commands/inventory.d.ts.map +1 -0
- package/dist/commands/inventory.js +282 -0
- package/dist/commands/inventory.js.map +1 -0
- package/dist/commands/logs.d.ts +6 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +411 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/performance.d.ts +6 -0
- package/dist/commands/performance.d.ts.map +1 -0
- package/dist/commands/performance.js +520 -0
- package/dist/commands/performance.js.map +1 -0
- package/dist/commands/secure.d.ts +6 -0
- package/dist/commands/secure.d.ts.map +1 -0
- package/dist/commands/secure.js +52 -0
- package/dist/commands/secure.js.map +1 -0
- package/dist/commands/xanoscript.d.ts +6 -0
- package/dist/commands/xanoscript.d.ts.map +1 -0
- package/dist/commands/xanoscript.js +216 -0
- package/dist/commands/xanoscript.js.map +1 -0
- package/dist/commands/xray.d.ts +6 -0
- package/dist/commands/xray.d.ts.map +1 -0
- package/dist/commands/xray.js +194 -0
- package/dist/commands/xray.js.map +1 -0
- package/dist/format.d.ts +10 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +59 -0
- package/dist/format.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/performance/load-analysis.d.ts +33 -0
- package/dist/performance/load-analysis.d.ts.map +1 -0
- package/dist/performance/load-analysis.js +290 -0
- package/dist/performance/load-analysis.js.map +1 -0
- package/dist/performance/stack-rollup.d.ts +57 -0
- package/dist/performance/stack-rollup.d.ts.map +1 -0
- package/dist/performance/stack-rollup.js +108 -0
- package/dist/performance/stack-rollup.js.map +1 -0
- package/dist/registry-client.d.ts +81 -0
- package/dist/registry-client.d.ts.map +1 -0
- package/dist/registry-client.js +333 -0
- package/dist/registry-client.js.map +1 -0
- package/dist/xano-client.d.ts +103 -0
- package/dist/xano-client.d.ts.map +1 -0
- package/dist/xano-client.js +399 -0
- package/dist/xano-client.js.map +1 -0
- package/package.json +49 -0
- package/skills/performance-analysis/SKILL.md +135 -0
- package/skills/xano-cli/SKILL.md +158 -0
package/README.md
ADDED
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
# @statechange/xano-cli
|
|
2
|
+
|
|
3
|
+
CLI for Xano workspace management, performance analysis, XanoScript generation, and operational insights. Uses Xano's private APIs to provide capabilities not available through the standard Meta API.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g @statechange/xano-cli
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Or run directly with npx:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npx @statechange/xano-cli <command>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Quick Start
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# 1. Authenticate with your StateChange API key
|
|
21
|
+
sc-xano auth init --api-key <your-api-key>
|
|
22
|
+
|
|
23
|
+
# 2. Verify connection and see available instances
|
|
24
|
+
sc-xano auth whoami
|
|
25
|
+
|
|
26
|
+
# 3. Check your Xano session health
|
|
27
|
+
sc-xano auth status
|
|
28
|
+
|
|
29
|
+
# 4. Run commands (instance, workspace, and token auto-resolve)
|
|
30
|
+
sc-xano inventory workspace
|
|
31
|
+
sc-xano performance top-endpoints
|
|
32
|
+
sc-xano audit workspace
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Once authenticated, the CLI auto-resolves your Xano instance, workspace, and token from the StateChange backend. No extra flags needed if you have a single instance.
|
|
36
|
+
|
|
37
|
+
## Authentication & Session Management
|
|
38
|
+
|
|
39
|
+
The CLI uses a StateChange API key to fetch Xano credentials automatically:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Interactive setup
|
|
43
|
+
sc-xano auth init
|
|
44
|
+
|
|
45
|
+
# Or provide key directly
|
|
46
|
+
sc-xano auth init --api-key <key>
|
|
47
|
+
|
|
48
|
+
# Check auth status
|
|
49
|
+
sc-xano auth whoami
|
|
50
|
+
|
|
51
|
+
# Check Xano token health
|
|
52
|
+
sc-xano auth status
|
|
53
|
+
|
|
54
|
+
# Override defaults
|
|
55
|
+
sc-xano auth set-instance <hostname> --workspace <id>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Session Freshness
|
|
59
|
+
|
|
60
|
+
Your Xano session token is refreshed whenever you open Xano in the browser with the StateChange extension active. The CLI monitors token health automatically:
|
|
61
|
+
|
|
62
|
+
- **Fresh token** — commands run normally
|
|
63
|
+
- **Stale token** — a warning is shown, but commands still proceed
|
|
64
|
+
- **Expired token** — a warning is shown; if Xano rejects the request, the CLI prompts you to open Xano and polls until the session is refreshed
|
|
65
|
+
- **401/403 errors** — the CLI advises running `auth status` to diagnose
|
|
66
|
+
|
|
67
|
+
Run `sc-xano auth status` at any time to check your session.
|
|
68
|
+
|
|
69
|
+
### Fallback Options
|
|
70
|
+
|
|
71
|
+
You can also provide credentials directly via flags or environment variables:
|
|
72
|
+
|
|
73
|
+
| Flag | Environment Variable | Description |
|
|
74
|
+
|------|---------------------|-------------|
|
|
75
|
+
| `--api-key` | `STATECHANGE_API_KEY` | StateChange API key |
|
|
76
|
+
| `--instance` | `XANO_INSTANCE` | Xano instance hostname |
|
|
77
|
+
| `--workspace` | `XANO_WORKSPACE` | Workspace ID |
|
|
78
|
+
| `--token` | `XANO_TOKEN` | Xano API token |
|
|
79
|
+
| `--branch` | — | Branch ID (default: 0) |
|
|
80
|
+
| `--format` | — | Output format: `table`, `json`, or `yaml` |
|
|
81
|
+
|
|
82
|
+
All commands support `--format table` (default, human-readable), `--format json`, and `--format yaml`. The yaml format is recommended for AI/LLM consumption.
|
|
83
|
+
|
|
84
|
+
## Commands
|
|
85
|
+
|
|
86
|
+
### `inventory` — Workspace Overview
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
sc-xano inventory workspace # Object counts summary
|
|
90
|
+
sc-xano inventory functions # List functions with tags
|
|
91
|
+
sc-xano inventory tables # List database tables
|
|
92
|
+
sc-xano inventory tasks # List background tasks
|
|
93
|
+
sc-xano inventory triggers # List triggers
|
|
94
|
+
sc-xano inventory addons # List addons
|
|
95
|
+
sc-xano inventory middleware # List middleware
|
|
96
|
+
sc-xano inventory mcp-servers # List MCP/toolset servers
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### `performance` — Performance Analysis
|
|
100
|
+
|
|
101
|
+
Find slow endpoints, trace execution bottlenecks, and deep-dive into request stacks.
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Top slowest endpoints (last 24 hours)
|
|
105
|
+
sc-xano performance top-endpoints
|
|
106
|
+
sc-xano performance top-endpoints --lookback 48 --limit 10
|
|
107
|
+
|
|
108
|
+
# Trace: aggregate stack analysis across multiple executions
|
|
109
|
+
sc-xano performance trace endpoint <query-id> --samples 10
|
|
110
|
+
sc-xano performance trace task <task-id> --samples 10
|
|
111
|
+
sc-xano performance trace trigger <trigger-id> --samples 10
|
|
112
|
+
|
|
113
|
+
# Deep-dive: full stack expansion for a single request
|
|
114
|
+
sc-xano performance deep-dive <request-id>
|
|
115
|
+
|
|
116
|
+
# Scan functions for nested slow steps
|
|
117
|
+
sc-xano performance scan-functions
|
|
118
|
+
sc-xano performance scan-functions --min-nesting 3
|
|
119
|
+
|
|
120
|
+
# Use yaml for AI-driven analysis
|
|
121
|
+
sc-xano performance top-endpoints --format yaml
|
|
122
|
+
sc-xano performance deep-dive <request-id> --format yaml
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Trace** aggregates timing data across N samples, showing duration percentiles (avg, p50, p95, p99) and per-step breakdown by `_xsid`.
|
|
126
|
+
|
|
127
|
+
**Deep-dive** expands a single request's stack into a tree with direct vs rollup timing, percentage breakdowns, loop iteration counts, and warnings for slow steps inside loops (N+1 queries, lambda blocks, external API calls).
|
|
128
|
+
|
|
129
|
+
### `xray` — Function Analysis
|
|
130
|
+
|
|
131
|
+
Analyze function internals: step hierarchy, performance warnings, dependencies.
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
sc-xano xray function --id <function-id>
|
|
135
|
+
sc-xano xray scan-workspace
|
|
136
|
+
sc-xano xray scan-workspace --include-warnings
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### `audit` — Workspace Auditing
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
sc-xano audit workspace # API configurations
|
|
143
|
+
sc-xano audit swagger # Unsecured Swagger endpoints
|
|
144
|
+
sc-xano audit database # Table schemas and indexes
|
|
145
|
+
sc-xano audit middleware
|
|
146
|
+
sc-xano audit addons
|
|
147
|
+
sc-xano audit tasks
|
|
148
|
+
sc-xano audit triggers
|
|
149
|
+
sc-xano audit mcp-servers
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### `secure` — Security Management
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
sc-xano secure swagger --app-id <id> --disable # Disable Swagger
|
|
156
|
+
sc-xano secure swagger --app-id <id> --require-token # Require token
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### `history` — Execution History
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
sc-xano history requests # Recent API requests
|
|
163
|
+
sc-xano history requests --page 2 # Paginate
|
|
164
|
+
sc-xano history request <request-id> # Detailed request info
|
|
165
|
+
sc-xano history tasks <task-id> # Task execution history
|
|
166
|
+
sc-xano history task-run <task-id> <run-id> # Detailed task run
|
|
167
|
+
sc-xano history triggers <trigger-id> # Trigger history
|
|
168
|
+
sc-xano history mcp-servers <tool-id> # MCP server history
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### `logs` — Log Retention Management
|
|
172
|
+
|
|
173
|
+
View and control how much execution history Xano retains per endpoint, task, or trigger.
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
# View retention settings
|
|
177
|
+
sc-xano logs show # All objects
|
|
178
|
+
sc-xano logs show --custom-only # Only non-default settings
|
|
179
|
+
sc-xano logs show endpoint <id> # Single endpoint with parent app context
|
|
180
|
+
sc-xano logs show app <id> # App + all its endpoints
|
|
181
|
+
|
|
182
|
+
# Update retention
|
|
183
|
+
sc-xano logs set endpoint <id> --limit -1 # Unlimited (for debugging)
|
|
184
|
+
sc-xano logs set endpoint <id> --limit 100 # Default
|
|
185
|
+
sc-xano logs set endpoint <id> --limit 0 # Disable
|
|
186
|
+
|
|
187
|
+
# Watch for new executions in real-time
|
|
188
|
+
sc-xano logs watch endpoint <id>
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Useful when performance deep-dives show `stack_truncated: true` — set the limit to unlimited, trigger a new execution, then deep-dive the untruncated result.
|
|
192
|
+
|
|
193
|
+
### `xanoscript` — XanoScript Generation & Conversion
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
sc-xano xanoscript generate function <id>
|
|
197
|
+
sc-xano xanoscript generate table <id>
|
|
198
|
+
sc-xano xanoscript generate api <id>
|
|
199
|
+
|
|
200
|
+
sc-xano xanoscript export-all --type function
|
|
201
|
+
sc-xano xanoscript export-all --type table --output-dir ./backup
|
|
202
|
+
|
|
203
|
+
sc-xano xanoscript convert myfunction.xs
|
|
204
|
+
cat myfunction.xs | sc-xano xanoscript convert
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### `health` — Instance Health (Master API)
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
sc-xano health instances
|
|
211
|
+
sc-xano health database --instance-id <id>
|
|
212
|
+
sc-xano health clear-history --instance-id <id>
|
|
213
|
+
sc-xano health restart-tasks --instance-id <id>
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### `flush` — Cache Management
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
sc-xano flush # Clear cached sink data
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## How It Works
|
|
223
|
+
|
|
224
|
+
This CLI uses Xano's private `api:mvp-admin` endpoints (the same APIs that power the Xano dashboard) to provide operational capabilities beyond the public Meta API.
|
|
225
|
+
|
|
226
|
+
| Capability | This CLI | Xano MCP |
|
|
227
|
+
|-----------|----------|----------|
|
|
228
|
+
| Live workspace data | Yes | No |
|
|
229
|
+
| Performance analysis | Yes | No |
|
|
230
|
+
| Execution history | Yes | No |
|
|
231
|
+
| Log retention management | Yes | No |
|
|
232
|
+
| XanoScript generation | Yes | No |
|
|
233
|
+
| XanoScript validation | No | Yes |
|
|
234
|
+
| XanoScript docs | No | Yes |
|
|
235
|
+
| Meta API docs | No | Yes |
|
|
236
|
+
|
|
237
|
+
## AI Integration
|
|
238
|
+
|
|
239
|
+
The recommended way to use this CLI with AI coding assistants is to install the skills:
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
npx skills add @statechange/xano-cli
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
This teaches your AI agent how to use the CLI for workspace management and performance analysis workflows. Skills are included in the `skills/` directory of the package.
|
|
246
|
+
|
|
247
|
+
For manual use, add `--format yaml` to any command for the most token-efficient structured output.
|
|
248
|
+
|
|
249
|
+
## License
|
|
250
|
+
|
|
251
|
+
MIT
|
package/dist/auth.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StateChange CLI Authentication
|
|
3
|
+
* Manages long-lived API key from file, env var, or command line
|
|
4
|
+
*/
|
|
5
|
+
export interface AuthConfig {
|
|
6
|
+
apiKey: string;
|
|
7
|
+
authToken?: string;
|
|
8
|
+
authTokenExpires?: number;
|
|
9
|
+
xanoInstance?: string;
|
|
10
|
+
xanoWorkspace?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function getAuthFilePath(): string;
|
|
13
|
+
export declare function loadAuthFromFile(): AuthConfig | null;
|
|
14
|
+
export declare function saveAuthToFile(config: AuthConfig): void;
|
|
15
|
+
export declare function getStateChangeApiKey(options?: {
|
|
16
|
+
apiKey?: string;
|
|
17
|
+
}): string | null;
|
|
18
|
+
/**
|
|
19
|
+
* Exchange API key for auth token
|
|
20
|
+
*/
|
|
21
|
+
export declare function getAuthToken(apiKey: string): Promise<string>;
|
|
22
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,gBAAgB,IAAI,UAAU,GAAG,IAAI,CASpD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAQvD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CASjF;AAID;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkDlE"}
|
package/dist/auth.js
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StateChange CLI Authentication
|
|
3
|
+
* Manages long-lived API key from file, env var, or command line
|
|
4
|
+
*/
|
|
5
|
+
import { readFileSync, writeFileSync, mkdirSync } from "fs";
|
|
6
|
+
import { join } from "path";
|
|
7
|
+
import { homedir } from "os";
|
|
8
|
+
const AUTH_FILE_PATH = join(homedir(), ".statechange", "auth.json");
|
|
9
|
+
export function getAuthFilePath() {
|
|
10
|
+
return AUTH_FILE_PATH;
|
|
11
|
+
}
|
|
12
|
+
export function loadAuthFromFile() {
|
|
13
|
+
try {
|
|
14
|
+
const content = readFileSync(AUTH_FILE_PATH, "utf-8");
|
|
15
|
+
const config = JSON.parse(content);
|
|
16
|
+
if (!config.apiKey)
|
|
17
|
+
return null;
|
|
18
|
+
return config;
|
|
19
|
+
}
|
|
20
|
+
catch (e) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export function saveAuthToFile(config) {
|
|
25
|
+
const dir = join(homedir(), ".statechange");
|
|
26
|
+
try {
|
|
27
|
+
mkdirSync(dir, { recursive: true });
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
// Directory might already exist
|
|
31
|
+
}
|
|
32
|
+
writeFileSync(AUTH_FILE_PATH, JSON.stringify(config, null, 2), "utf-8");
|
|
33
|
+
}
|
|
34
|
+
export function getStateChangeApiKey(options) {
|
|
35
|
+
// 1. Command line flag
|
|
36
|
+
if (options?.apiKey)
|
|
37
|
+
return options.apiKey;
|
|
38
|
+
// 2. Environment variable
|
|
39
|
+
if (process.env.STATECHANGE_API_KEY)
|
|
40
|
+
return process.env.STATECHANGE_API_KEY;
|
|
41
|
+
// 3. Auth file
|
|
42
|
+
const auth = loadAuthFromFile();
|
|
43
|
+
if (auth?.apiKey)
|
|
44
|
+
return auth.apiKey;
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
const STATECHANGE_BACKEND_URL = "https://api.statechange.ai/api:jKMCYXQa/";
|
|
48
|
+
/**
|
|
49
|
+
* Exchange API key for auth token
|
|
50
|
+
*/
|
|
51
|
+
export async function getAuthToken(apiKey) {
|
|
52
|
+
// Check if we have a cached valid token
|
|
53
|
+
const auth = loadAuthFromFile();
|
|
54
|
+
if (auth?.authToken &&
|
|
55
|
+
auth?.authTokenExpires &&
|
|
56
|
+
Date.now() < auth.authTokenExpires) {
|
|
57
|
+
return auth.authToken;
|
|
58
|
+
}
|
|
59
|
+
// Exchange API key for token
|
|
60
|
+
const response = await fetch(`${STATECHANGE_BACKEND_URL}auth/key`, {
|
|
61
|
+
method: "POST",
|
|
62
|
+
headers: {
|
|
63
|
+
"Content-Type": "application/json",
|
|
64
|
+
},
|
|
65
|
+
body: JSON.stringify({ key: apiKey }),
|
|
66
|
+
});
|
|
67
|
+
if (!response.ok) {
|
|
68
|
+
const errorText = await response.text();
|
|
69
|
+
if (response.status === 401) {
|
|
70
|
+
throw new Error("Invalid or expired API key");
|
|
71
|
+
}
|
|
72
|
+
throw new Error(`Failed to authenticate: ${response.status} ${response.statusText} - ${errorText}`);
|
|
73
|
+
}
|
|
74
|
+
const data = (await response.json());
|
|
75
|
+
const token = data.token;
|
|
76
|
+
// Cache the token (expires in 24 hours, cache for 23 hours to be safe)
|
|
77
|
+
const expiresAt = Date.now() + 23 * 60 * 60 * 1000; // 23 hours in milliseconds
|
|
78
|
+
if (auth) {
|
|
79
|
+
auth.authToken = token;
|
|
80
|
+
auth.authTokenExpires = expiresAt;
|
|
81
|
+
saveAuthToFile(auth);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
// Create new config with just the token (API key should already be saved)
|
|
85
|
+
const newAuth = loadAuthFromFile();
|
|
86
|
+
if (newAuth) {
|
|
87
|
+
newAuth.authToken = token;
|
|
88
|
+
newAuth.authTokenExpires = expiresAt;
|
|
89
|
+
saveAuthToFile(newAuth);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return token;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,WAwUlD"}
|