@ranger-testing/ranger-cli 1.1.6 → 2.0.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 +47 -45
- package/build/cli.js +671 -291
- package/build/cli.js.map +1 -1
- package/build/commands/addEnv.js +1 -1
- package/build/commands/addEnv.js.map +1 -1
- package/build/commands/authEncrypt.js +5 -10
- package/build/commands/authEncrypt.js.map +1 -1
- package/build/commands/clean.js +1 -1
- package/build/commands/clean.js.map +1 -1
- package/build/commands/config.js +9 -15
- package/build/commands/config.js.map +1 -1
- package/build/commands/env.js +10 -13
- package/build/commands/env.js.map +1 -1
- package/build/commands/feature.js +138 -67
- package/build/commands/feature.js.map +1 -1
- package/build/commands/hook.js +9 -4
- package/build/commands/hook.js.map +1 -1
- package/build/commands/hooks/autoPrompt.js +32 -0
- package/build/commands/hooks/autoPrompt.js.map +1 -0
- package/build/commands/hooks/disable.js +8 -5
- package/build/commands/hooks/disable.js.map +1 -1
- package/build/commands/hooks/enable.js +16 -9
- package/build/commands/hooks/enable.js.map +1 -1
- package/build/commands/hooks/exitPlanMode.js +10 -10
- package/build/commands/hooks/exitPlanMode.js.map +1 -1
- package/build/commands/hooks/index.js +1 -0
- package/build/commands/hooks/index.js.map +1 -1
- package/build/commands/hooks/output.js +20 -2
- package/build/commands/hooks/output.js.map +1 -1
- package/build/commands/hooks/planReminder.js +9 -9
- package/build/commands/hooks/planReminder.js.map +1 -1
- package/build/commands/hooks/planStart.js +6 -6
- package/build/commands/hooks/planStart.js.map +1 -1
- package/build/commands/hooks/postEdit.js +6 -6
- package/build/commands/hooks/postEdit.js.map +1 -1
- package/build/commands/hooks/preCompact.js +5 -5
- package/build/commands/hooks/preCompact.js.map +1 -1
- package/build/commands/hooks/sessionEnd.js +8 -4
- package/build/commands/hooks/sessionEnd.js.map +1 -1
- package/build/commands/hooks/sessionStart.js +41 -25
- package/build/commands/hooks/sessionStart.js.map +1 -1
- package/build/commands/hooks/stopHook.js +30 -6
- package/build/commands/hooks/stopHook.js.map +1 -1
- package/build/commands/index.js +1 -2
- package/build/commands/index.js.map +1 -1
- package/build/commands/login.js +2 -5
- package/build/commands/login.js.map +1 -1
- package/build/commands/setupCi.js +189 -0
- package/build/commands/setupCi.js.map +1 -0
- package/build/commands/skillup.js +16 -68
- package/build/commands/skillup.js.map +1 -1
- package/build/commands/start.js +1 -1
- package/build/commands/start.js.map +1 -1
- package/build/commands/status.js +14 -13
- package/build/commands/status.js.map +1 -1
- package/build/commands/update.js +34 -5
- package/build/commands/update.js.map +1 -1
- package/build/commands/updateEnv.js +1 -1
- package/build/commands/updateEnv.js.map +1 -1
- package/build/commands/useEnv.js +1 -1
- package/build/commands/useEnv.js.map +1 -1
- package/build/commands/utils/activeProfile.js +76 -0
- package/build/commands/utils/activeProfile.js.map +1 -0
- package/build/commands/utils/browserSessionsApi.js +1 -1
- package/build/commands/utils/browserSessionsApi.js.map +1 -1
- package/build/commands/utils/desirePathLog.js +39 -34
- package/build/commands/utils/desirePathLog.js.map +1 -1
- package/build/commands/utils/deviceAuth.js +53 -5
- package/build/commands/utils/deviceAuth.js.map +1 -1
- package/build/commands/utils/environment.js +11 -12
- package/build/commands/utils/environment.js.map +1 -1
- package/build/commands/utils/featureApi.js +49 -46
- package/build/commands/utils/featureApi.js.map +1 -1
- package/build/commands/utils/featureReportGenerator.js +6 -6
- package/build/commands/utils/featureReportGenerator.js.map +1 -1
- package/build/commands/utils/keychain.js +1 -1
- package/build/commands/utils/localAgentInstallationsApi.js +1 -1
- package/build/commands/utils/profileMessages.js +8 -0
- package/build/commands/utils/profileMessages.js.map +1 -0
- package/build/commands/utils/profileSetupBanner.js +167 -0
- package/build/commands/utils/profileSetupBanner.js.map +1 -0
- package/build/commands/utils/retry.js +25 -0
- package/build/commands/utils/retry.js.map +1 -0
- package/build/commands/utils/sessionCache.js +17 -0
- package/build/commands/utils/sessionCache.js.map +1 -1
- package/build/commands/utils/settings.js +23 -2
- package/build/commands/utils/settings.js.map +1 -1
- package/build/commands/utils/skills.js +1 -1
- package/build/commands/utils/telemetry.js +254 -0
- package/build/commands/utils/telemetry.js.map +1 -0
- package/build/commands/utils/userApi.js +4 -4
- package/build/commands/utils/userApi.js.map +1 -1
- package/build/commands/verifyFeature.js +678 -407
- package/build/commands/verifyFeature.js.map +1 -1
- package/build/commands/verifyInBrowser.js +1 -1
- package/build/commands/verifyInBrowser.js.map +1 -1
- package/build/skills/ranger/SKILL.md +65 -64
- package/build/skills/ranger/create.md +31 -31
- package/build/skills/ranger/feedback.md +25 -17
- package/build/skills/ranger/start.md +37 -37
- package/build/skills/ranger/verify.md +59 -55
- package/package.json +1 -1
- package/scripts/postinstall.js +1 -1
- package/build/commands/dataMcpServer.js +0 -1
- package/build/commands/dataMcpServer.js.map +0 -1
- package/build/commands/utils/cliSecret.js +0 -1
- package/build/commands/utils/cliSecret.js.map +0 -1
- package/build/skills/bug-bash.md +0 -329
- package/build/skills/e2e-test-recommender.md +0 -168
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
# Starting a Feature Session
|
|
1
|
+
# Starting a Feature Review Session
|
|
2
2
|
|
|
3
|
-
At the START of any coding session, check if there's an existing feature to resume before creating a new one.
|
|
3
|
+
At the START of any coding session, check if there's an existing feature review to resume before creating a new one.
|
|
4
4
|
|
|
5
|
-
## List
|
|
5
|
+
## List Feature Reviews
|
|
6
6
|
|
|
7
|
-
First, check what
|
|
7
|
+
First, check what feature reviews exist:
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
ranger
|
|
10
|
+
ranger list
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
Or filter to the current git branch:
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
ranger
|
|
16
|
+
ranger list --current-branch
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
This shows feature names, IDs, status, and branch info.
|
|
19
|
+
This shows feature review names, IDs, status, and branch info.
|
|
20
20
|
|
|
21
|
-
## Resume a Feature
|
|
21
|
+
## Resume a Feature Review
|
|
22
22
|
|
|
23
|
-
If you find a pertinent feature to resume:
|
|
23
|
+
If you find a pertinent feature review to resume:
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
|
-
ranger
|
|
26
|
+
ranger resume <id>
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
This command:
|
|
30
|
-
1. Sets the feature as active
|
|
30
|
+
1. Sets the feature review as active
|
|
31
31
|
2. Starts the session if it's in `ready` status
|
|
32
|
-
3. Displays the feature with its
|
|
32
|
+
3. Displays the feature review with its scenarios
|
|
33
33
|
|
|
34
34
|
## Check Current Status
|
|
35
35
|
|
|
36
36
|
After resuming, view the full status:
|
|
37
37
|
|
|
38
38
|
```bash
|
|
39
|
-
ranger
|
|
39
|
+
ranger show
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
This displays:
|
|
43
|
-
- Feature name and ID
|
|
43
|
+
- Feature review name and ID
|
|
44
44
|
- Current status (in_progress, blocked, completed)
|
|
45
45
|
- Git context (repo, branch)
|
|
46
|
-
-
|
|
46
|
+
- Scenarios with status indicators
|
|
47
47
|
|
|
48
48
|
## Check for Reviewer Feedback
|
|
49
49
|
|
|
50
|
-
If any
|
|
50
|
+
If any scenarios show comment badges (e.g., `[2 comments]`) or are at v2+, reviewer feedback needs to be addressed:
|
|
51
51
|
|
|
52
52
|
```bash
|
|
53
|
-
ranger
|
|
53
|
+
ranger get-review
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
This shows the actual comment content, who wrote it, and the previous version description. **Read [feedback.md](./feedback.md) for the full feedback workflow.**
|
|
57
57
|
|
|
58
|
-
## Add
|
|
58
|
+
## Add Scenarios
|
|
59
59
|
|
|
60
|
-
If you need to add new work to an existing feature:
|
|
60
|
+
If you need to add new work to an existing feature review:
|
|
61
61
|
|
|
62
62
|
```bash
|
|
63
|
-
ranger
|
|
63
|
+
ranger add-scenario "User navigates to /settings, clicks 'Edit Profile', updates their display name, clicks Save, sees success toast, refreshes the page, and confirms the new name persists"
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
This adds a new pending
|
|
66
|
+
This adds a new pending scenario to the active feature review. Use this when:
|
|
67
67
|
- The scope of work has expanded
|
|
68
68
|
- You discover additional scenarios to verify
|
|
69
69
|
- A review requested additional coverage
|
|
70
70
|
|
|
71
|
-
### Writing Good
|
|
71
|
+
### Writing Good Scenarios
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
Scenarios should be **detailed, multi-step E2E flows** that can be verified in a browser:
|
|
74
74
|
|
|
75
75
|
**Bad (too vague):**
|
|
76
76
|
```bash
|
|
77
|
-
ranger
|
|
77
|
+
ranger add-scenario "Profile editing works"
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
**Good (detailed flow):**
|
|
81
81
|
```bash
|
|
82
|
-
ranger
|
|
82
|
+
ranger add-scenario "User goes to /settings, clicks 'Edit Profile' button, changes display name to 'Test User', clicks Save, sees 'Profile updated' success message, refreshes the page, and verifies the name still shows 'Test User'"
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
-
**Note:** You cannot add
|
|
85
|
+
**Note:** You cannot add scenarios while a review is in progress.
|
|
86
86
|
|
|
87
87
|
## Decision Tree
|
|
88
88
|
|
|
@@ -90,20 +90,20 @@ ranger feature add-checklist-item "User goes to /settings, clicks 'Edit Profile'
|
|
|
90
90
|
Start Session
|
|
91
91
|
│
|
|
92
92
|
▼
|
|
93
|
-
ranger
|
|
93
|
+
ranger list
|
|
94
94
|
│
|
|
95
|
-
├── Found pertinent feature? ──▶ ranger
|
|
95
|
+
├── Found pertinent feature review? ──▶ ranger resume <id>
|
|
96
96
|
│ │
|
|
97
97
|
│ ▼
|
|
98
|
-
│ ranger
|
|
98
|
+
│ ranger show
|
|
99
99
|
│ │
|
|
100
100
|
│ ▼
|
|
101
|
-
│
|
|
101
|
+
│ Scenarios have comments?
|
|
102
102
|
│ │ │
|
|
103
103
|
│ YES NO
|
|
104
104
|
│ │ │
|
|
105
105
|
│ ▼ ▼
|
|
106
|
-
│ get-
|
|
106
|
+
│ get-review Continue working
|
|
107
107
|
│ fix + verify
|
|
108
108
|
│
|
|
109
109
|
└── None exist? ──▶ See create.md
|
|
@@ -112,8 +112,8 @@ ranger feature list
|
|
|
112
112
|
## Example
|
|
113
113
|
|
|
114
114
|
```bash
|
|
115
|
-
# Start of session - list
|
|
116
|
-
$ ranger
|
|
115
|
+
# Start of session - list feature reviews
|
|
116
|
+
$ ranger list
|
|
117
117
|
|
|
118
118
|
Showing 3 of 3:
|
|
119
119
|
|
|
@@ -122,16 +122,16 @@ Showing 3 of 3:
|
|
|
122
122
|
Dev Status: In Progress
|
|
123
123
|
Branch: feature/auth
|
|
124
124
|
|
|
125
|
-
# Resume the feature
|
|
126
|
-
$ ranger
|
|
125
|
+
# Resume the feature review
|
|
126
|
+
$ ranger resume feat_abc123
|
|
127
127
|
|
|
128
|
-
✅ Resumed feature: User Authentication (feat_abc123)
|
|
128
|
+
✅ Resumed feature review: User Authentication (feat_abc123)
|
|
129
129
|
|
|
130
130
|
🔄 User Authentication (feat_abc123)
|
|
131
131
|
Dev Status: In Progress
|
|
132
132
|
Branch: feature/auth
|
|
133
133
|
|
|
134
|
-
|
|
134
|
+
Scenarios:
|
|
135
135
|
1. ✅ Login flow works
|
|
136
136
|
2. ⬜ Signup creates account
|
|
137
137
|
3. ⬜ Password reset sends email
|
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
# Verifying
|
|
1
|
+
# Verifying Scenarios
|
|
2
2
|
|
|
3
|
-
After implementing code for a
|
|
3
|
+
After implementing code for a scenario, verify it works in the browser. This creates evidence (screenshots, traces, logs) that the implementation is complete.
|
|
4
4
|
|
|
5
5
|
## Basic Command
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
ranger
|
|
8
|
+
ranger go --scenario <N> --notes "<what to verify>"
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
The URL is derived from your active
|
|
11
|
+
The URL is derived from your active profile's `baseUrl` setting.
|
|
12
12
|
|
|
13
|
-
## Required: Active Feature
|
|
13
|
+
## Required: Active Feature Review
|
|
14
14
|
|
|
15
|
-
`
|
|
15
|
+
`go` requires an active feature review. If you don't have one:
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
ranger
|
|
19
|
-
ranger
|
|
18
|
+
ranger list # Find feature reviews to resume
|
|
19
|
+
ranger resume <id> # Resume a specific feature review
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
## The Verification Flow
|
|
23
23
|
|
|
24
|
-
1. **Select
|
|
25
|
-
2. **Fetch reviewer feedback** - If the
|
|
24
|
+
1. **Select scenario** - CLI prompts which scenario this verifies
|
|
25
|
+
2. **Fetch reviewer feedback** - If the scenario has unaddressed comments or a parent scenario, reviewer comments are automatically injected into the verification prompt
|
|
26
26
|
3. **Run browser verification** - Agent executes the task in a real browser
|
|
27
|
-
4. **Evaluate results** - Agent determines if the
|
|
28
|
-
5. **Update status** -
|
|
29
|
-
6. **Link evidence** - Session trace is attached to the
|
|
27
|
+
4. **Evaluate results** - Agent determines if the scenario is satisfied (including whether reviewer concerns were addressed)
|
|
28
|
+
5. **Update status** - Scenario is marked verified, partial, blocked, or failed
|
|
29
|
+
6. **Link evidence** - Session trace is attached to the scenario
|
|
30
30
|
|
|
31
31
|
### Reviewer Feedback Auto-Injection
|
|
32
32
|
|
|
33
|
-
When verifying
|
|
33
|
+
When verifying scenarios that have reviewer comments (v2+ scenarios or scenarios with unaddressed comments), the verification agent automatically receives a **"Reviewer Feedback to Address"** section in its prompt. This includes:
|
|
34
34
|
- Each reviewer comment with author and date
|
|
35
35
|
- The previous version's description
|
|
36
36
|
- The canonical flow from prior verification (if available)
|
|
37
37
|
|
|
38
|
-
You do NOT need to manually include reviewer feedback in your `--
|
|
38
|
+
You do NOT need to manually include reviewer feedback in your `--notes` description — it's handled automatically. Just make sure you've addressed the feedback in your code before verifying.
|
|
39
39
|
|
|
40
40
|
## Options
|
|
41
41
|
|
|
42
42
|
| Option | Required | Description |
|
|
43
43
|
|--------|----------|-------------|
|
|
44
|
-
| `--
|
|
45
|
-
| `--
|
|
46
|
-
| `--
|
|
44
|
+
| `--profile` | No | Profile to use (defaults to active profile) |
|
|
45
|
+
| `--notes` | No | What to verify (defaults to scenario description) |
|
|
46
|
+
| `--scenario` | No | Scenario index to verify (skips selection prompt) |
|
|
47
47
|
| `--start-path` | No | Path to start on (appended to base URL, e.g., `/dashboard`) |
|
|
48
48
|
|
|
49
49
|
## Writing Good Task Descriptions
|
|
50
50
|
|
|
51
|
-
The `--
|
|
51
|
+
The `--notes` is what the verification agent will actually do. Be VERY specific:
|
|
52
52
|
|
|
53
53
|
**Bad:**
|
|
54
54
|
```bash
|
|
55
|
-
--
|
|
55
|
+
--notes "Test login"
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
**Good:**
|
|
59
59
|
```bash
|
|
60
|
-
--
|
|
60
|
+
--notes "Navigate to /login. Enter test@example.com in email field and password123 in password field. Click the Submit button. Verify a loading spinner appears. Verify redirect to /dashboard within 5 seconds. Verify the user's name appears in the header."
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
-
## Using
|
|
63
|
+
## Using Scenario Description as Task
|
|
64
64
|
|
|
65
|
-
If your
|
|
65
|
+
If your scenario has a detailed description, you can omit `--notes`:
|
|
66
66
|
|
|
67
67
|
```bash
|
|
68
|
-
#
|
|
69
|
-
ranger
|
|
68
|
+
# Scenario 1: "User can log in with valid credentials - sees loading state - redirects to dashboard"
|
|
69
|
+
ranger go --scenario 1
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
-
The
|
|
72
|
+
The scenario description becomes the task automatically.
|
|
73
73
|
|
|
74
74
|
## Evaluation Results
|
|
75
75
|
|
|
76
|
-
After verification, the agent evaluates if the result satisfies the
|
|
76
|
+
After verification, the agent evaluates if the result satisfies the scenario:
|
|
77
77
|
|
|
78
|
-
| Result | Meaning |
|
|
78
|
+
| Result | Meaning | Scenario Status |
|
|
79
79
|
|--------|---------|-------------|
|
|
80
80
|
| **Verified** | Task completed, requirements met | ✅ Verified |
|
|
81
81
|
| **Partial** | Some aspects work, others don't | ⬜ Pending (session linked) |
|
|
@@ -91,8 +91,8 @@ Run multiple non-conflicting verifications in parallel using background executio
|
|
|
91
91
|
Use Bash with `run_in_background: true`:
|
|
92
92
|
|
|
93
93
|
```
|
|
94
|
-
[Bash: ranger
|
|
95
|
-
[Bash: ranger
|
|
94
|
+
[Bash: ranger go --scenario 1, run_in_background: true] → task_abc
|
|
95
|
+
[Bash: ranger go --scenario 2, run_in_background: true] → task_def
|
|
96
96
|
```
|
|
97
97
|
|
|
98
98
|
Poll with TaskOutput, report results as they complete.
|
|
@@ -117,40 +117,44 @@ File watchers (Next.js, Vite) will restart the dev server and break active brows
|
|
|
117
117
|
### Basic Verification
|
|
118
118
|
|
|
119
119
|
```bash
|
|
120
|
-
ranger
|
|
121
|
-
--
|
|
120
|
+
ranger go \
|
|
121
|
+
--scenario 1 \
|
|
122
|
+
--notes "Log in with test@example.com / password123, verify redirect to dashboard"
|
|
122
123
|
```
|
|
123
124
|
|
|
124
|
-
### Verify Specific
|
|
125
|
+
### Verify Specific Scenario
|
|
125
126
|
|
|
126
127
|
```bash
|
|
127
|
-
# Skip the selection prompt, verify
|
|
128
|
-
ranger
|
|
129
|
-
--
|
|
130
|
-
--
|
|
128
|
+
# Skip the selection prompt, verify scenario 2 directly
|
|
129
|
+
ranger go \
|
|
130
|
+
--notes "Complete signup flow with new email" \
|
|
131
|
+
--scenario 2
|
|
131
132
|
```
|
|
132
133
|
|
|
133
|
-
### Verify with Specific
|
|
134
|
+
### Verify with Specific Profile
|
|
134
135
|
|
|
135
136
|
```bash
|
|
136
|
-
# Use staging
|
|
137
|
-
ranger
|
|
138
|
-
--
|
|
139
|
-
--
|
|
137
|
+
# Use staging profile instead of active profile
|
|
138
|
+
ranger go \
|
|
139
|
+
--profile staging \
|
|
140
|
+
--scenario 1 \
|
|
141
|
+
--notes "Verify login works in staging"
|
|
140
142
|
```
|
|
141
143
|
|
|
142
144
|
### Start on a Specific Page
|
|
143
145
|
|
|
144
146
|
```bash
|
|
145
147
|
# Start verification at /settings instead of base URL
|
|
146
|
-
ranger
|
|
148
|
+
ranger go \
|
|
147
149
|
--start-path /settings \
|
|
148
|
-
--
|
|
150
|
+
--scenario 1 \
|
|
151
|
+
--notes "Verify user can update their profile"
|
|
149
152
|
|
|
150
153
|
# Start at /admin/users
|
|
151
|
-
ranger
|
|
154
|
+
ranger go \
|
|
152
155
|
--start-path /admin/users \
|
|
153
|
-
--
|
|
156
|
+
--scenario 2 \
|
|
157
|
+
--notes "Verify admin can see user list"
|
|
154
158
|
```
|
|
155
159
|
|
|
156
160
|
## After Verification
|
|
@@ -158,10 +162,10 @@ ranger verify-feature \
|
|
|
158
162
|
Check progress:
|
|
159
163
|
|
|
160
164
|
```bash
|
|
161
|
-
ranger
|
|
165
|
+
ranger show
|
|
162
166
|
```
|
|
163
167
|
|
|
164
|
-
If all non-closed
|
|
168
|
+
If all non-closed scenarios are verified, the feature review auto-completes:
|
|
165
169
|
|
|
166
170
|
```
|
|
167
171
|
✅ User Authentication (feat_abc123)
|
|
@@ -181,14 +185,14 @@ Access evidence via the report or dashboard.
|
|
|
181
185
|
|
|
182
186
|
## Troubleshooting
|
|
183
187
|
|
|
184
|
-
### "No active feature"
|
|
185
|
-
Run `ranger
|
|
188
|
+
### "No active feature review"
|
|
189
|
+
Run `ranger list` to find feature reviews, then `ranger resume <id>` to resume one.
|
|
186
190
|
|
|
187
|
-
### "No active
|
|
188
|
-
Run `ranger use <
|
|
191
|
+
### "No active profile"
|
|
192
|
+
Run `ranger profile use <profile-name>` to set a profile with browser access.
|
|
189
193
|
|
|
190
194
|
### Verification times out
|
|
191
|
-
The agent has 59 minutes max. For very long flows, break into smaller
|
|
195
|
+
The agent has 59 minutes max. For very long flows, break into smaller scenarios.
|
|
192
196
|
|
|
193
|
-
### Wrong
|
|
194
|
-
Reset the
|
|
197
|
+
### Wrong scenario marked
|
|
198
|
+
Reset the scenario via the dashboard, then re-verify.
|
package/package.json
CHANGED
package/scripts/postinstall.js
CHANGED
|
@@ -10,7 +10,7 @@ console.log(`
|
|
|
10
10
|
|
|
11
11
|
Get started:
|
|
12
12
|
1. Get your API token: https://dashboard.ranger.net/cli
|
|
13
|
-
2. Run: ranger
|
|
13
|
+
2. Run: ranger setup [token]
|
|
14
14
|
|
|
15
15
|
For Claude Code, install the plugin in Claude Code:
|
|
16
16
|
/plugin marketplace add ranger-testing/trailhead
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function _0x1e92(){const _0x17070b=['rMD4uuG','mtbtAwr4tgK','ywfguNi','Aw5JBhvKzxm','yxbWBhK','v2DOsLu','zfjfC0G','z2v0uMvHzgvY','C3rHCNrZv2L0Aa','BwvZC2fNzq','zxHPDa','ndq5nZyXmKHnEhvVvG','vw5RBM93BIbLCNjVCG','vxDtvvi','mtKYntaYwujOsvHt','qMvHCMvYia','y1v5rM8','C3bSAxq','mJm5mZmWmeHAyvz4va','qundrvntx0rftKLfra','y2XVC2u','C3rHDhvZ','mI4W','Dg9tDhjPBMC','z3L5Ee8','yKH4zLi','odG3mJu4y1fLyvPA','sLL6rxO','CKHIAee','sMD2uhy','swncCuy','C2vHCMnO','nvLjt0TMza','DNrzEKi','rgnkueq','uMXKq2i','mZi0mZaWmgfwt2Hrva','r2v0ihLVDxiGDg9Rzw4GyxqGAhr0Chm6lY9KyxnOyM9HCMqUCMfUz2vYlM5LDc9JBgK','tK9Fve9lru4','z2v0','Bg9N','DhjPBq','C3rYAw5NAwz5','ELDxsg8','C3rKB3v0','DezVDva','Cw9Iz3C','mJfLA0LnCeq','uMfUz2vYig5VDcbJB25MAwD1CMvKlIbsDw4GyhjHBMDLCIbZDgfYDca8Dg9Rzw4+ycbPBIbHihrLCM1PBMfSlIa','zgf0ytOG','CMvHza','uMfUz2vYihnLCNzLCIb1BMf2ywLSywjSzs4GugXLyxnLihrYEsbHz2fPBIbSyxrLCI4','ue9tva','nZG4ntq0nLfyELbsyW','su5wquXjrf9ut0TftG','uhfrzxq','ufHQwvG','u0vsvKvsx1voqvzbsuXbqKXf','v2HAywi','mZe3mtq2otvhy1rOEvq','ruTHu1e','tMfKEfm','ru1OA2u','C2XPy2u','AgvHzgvYCW','yxbWBgLJyxrPB24VANnVBG','y29UDgvUDc10ExbL','r21PBuO','kcGOlISPkYKRksSK','z09HvKy','zwzPtuC','su5urvjoquXFrvjst1i','Cg9W','Bg5xwwi'];_0x1e92=function(){return _0x17070b;};return _0x1e92();}(function(_0x3bf553,_0x7b8f98){const _0x32ad56=_0x5c3f,_0x1b1c97=_0x3bf553();while(!![]){try{const _0x43b8cf=-parseInt(_0x32ad56(0x196))/0x1+-parseInt(_0x32ad56(0x18a))/0x2*(-parseInt(_0x32ad56(0x1ab))/0x3)+parseInt(_0x32ad56(0x187))/0x4*(-parseInt(_0x32ad56(0x19c))/0x5)+-parseInt(_0x32ad56(0x1b1))/0x6+parseInt(_0x32ad56(0x18e))/0x7+-parseInt(_0x32ad56(0x1a0))/0x8+-parseInt(_0x32ad56(0x16d))/0x9*(-parseInt(_0x32ad56(0x17d))/0xa);if(_0x43b8cf===_0x7b8f98)break;else _0x1b1c97['push'](_0x1b1c97['shift']());}catch(_0x4e47e5){_0x1b1c97['push'](_0x1b1c97['shift']());}}}(_0x1e92,0xc552b));const _0x1fbd3f=(function(){let _0x594ba4=!![];return function(_0x58f881,_0x1a6c9e){const _0x1a5ee0=_0x594ba4?function(){const _0x4ea88f=_0x5c3f;if(_0x1a6c9e){const _0x557dea=_0x1a6c9e[_0x4ea88f(0x180)](_0x58f881,arguments);return _0x1a6c9e=null,_0x557dea;}}:function(){};return _0x594ba4=![],_0x1a5ee0;};}()),_0x5290fc=_0x1fbd3f(this,function(){const _0x54e92c=_0x5c3f,_0x5be9d8={'RldCb':_0x54e92c(0x176)};return _0x5290fc['toString']()[_0x54e92c(0x19b)](_0x5be9d8[_0x54e92c(0x19f)])[_0x54e92c(0x193)]()['constructor'](_0x5290fc)[_0x54e92c(0x19b)](_0x5be9d8[_0x54e92c(0x19f)]);});_0x5290fc();import*as _0x41c71a from'readline';import{getToken}from'./utils/keychain.js';import{getMcpServerUrl}from'./utils/environment.js';const ERROR_CODES={'NO_TOKEN':-0x7d01,'INVALID_TOKEN':-0x7d02,'ACCESS_DENIED':-0x7d03,'SERVER_UNAVAILABLE':-0x7d04,'INTERNAL_ERROR':-0x7f5b};function jsonRpcError(_0x3d024e,_0x47549f,_0x2b19d6){const _0x1b9954=_0x5c3f;console['log'](JSON['stringify']({'jsonrpc':_0x1b9954(0x192),'id':_0x3d024e,'error':{'code':_0x47549f,'message':_0x2b19d6}}));}function _0x5c3f(_0x1202fa,_0x3c3914){_0x1202fa=_0x1202fa-0x169;const _0x4703cb=_0x1e92();let _0x5290fc=_0x4703cb[_0x1202fa];if(_0x5c3f['NuNLQA']===undefined){var _0x1fbd3f=function(_0x1cb32b){const _0x24cfc7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x44ab31='',_0x5f0e07='',_0x311c9a=_0x44ab31+_0x1fbd3f;for(let _0x3be2b7=0x0,_0x5e970a,_0x4eb827,_0x55627f=0x0;_0x4eb827=_0x1cb32b['charAt'](_0x55627f++);~_0x4eb827&&(_0x5e970a=_0x3be2b7%0x4?_0x5e970a*0x40+_0x4eb827:_0x4eb827,_0x3be2b7++%0x4)?_0x44ab31+=_0x311c9a['charCodeAt'](_0x55627f+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x5e970a>>(-0x2*_0x3be2b7&0x6)):_0x3be2b7:0x0){_0x4eb827=_0x24cfc7['indexOf'](_0x4eb827);}for(let _0x4c892c=0x0,_0x1eb2e9=_0x44ab31['length'];_0x4c892c<_0x1eb2e9;_0x4c892c++){_0x5f0e07+='%'+('00'+_0x44ab31['charCodeAt'](_0x4c892c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5f0e07);};_0x5c3f['JMGjbV']=_0x1fbd3f,_0x5c3f['iYizVW']={},_0x5c3f['NuNLQA']=!![];}const _0x1e9207=_0x4703cb[0x0],_0x5c3fef=_0x1202fa+_0x1e9207,_0x49fb43=_0x5c3f['iYizVW'][_0x5c3fef];if(!_0x49fb43){const _0x392ab5=function(_0xa4d76){this['brMMlz']=_0xa4d76,this['rMXXUn']=[0x1,0x0,0x0],this['lNcEiV']=function(){return'newState';},this['rqaazG']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['iQSssG']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x392ab5['prototype']['LCLcgF']=function(){const _0x3b978a=new RegExp(this['rqaazG']+this['iQSssG']),_0x157d59=_0x3b978a['test'](this['lNcEiV']['toString']())?--this['rMXXUn'][0x1]:--this['rMXXUn'][0x0];return this['vYlfOP'](_0x157d59);},_0x392ab5['prototype']['vYlfOP']=function(_0x4dd462){if(!Boolean(~_0x4dd462))return _0x4dd462;return this['UoiZoj'](this['brMMlz']);},_0x392ab5['prototype']['UoiZoj']=function(_0x2c005f){for(let _0x18dba0=0x0,_0x2dec74=this['rMXXUn']['length'];_0x18dba0<_0x2dec74;_0x18dba0++){this['rMXXUn']['push'](Math['round'](Math['random']())),_0x2dec74=this['rMXXUn']['length'];}return _0x2c005f(this['rMXXUn'][0x0]);},new _0x392ab5(_0x5c3f)['LCLcgF'](),_0x5290fc=_0x5c3f['JMGjbV'](_0x5290fc),_0x5c3f['iYizVW'][_0x5c3fef]=_0x5290fc;}else _0x5290fc=_0x49fb43;return _0x5290fc;}export async function dataMcpServer(){const _0x2c03ac=_0x5c3f,_0x495b05={'EMhke':_0x2c03ac(0x1ad),'IcBqF':'2.0','WhZab':_0x2c03ac(0x199),'JYzEz':_0x2c03ac(0x17b),'aaFRr':function(_0x5d7006,_0x50ce60,_0x3a3d86){return _0x5d7006(_0x50ce60,_0x3a3d86);},'ZfpTv':_0x2c03ac(0x173),'PqQet':'application/json,\x20text/event-stream','gOaVF':function(_0x503145,_0x30428c){return _0x503145!==_0x30428c;},'EKaSQ':'sRkXW','NadxS':function(_0x3d5c82,_0x5d3eda){return _0x3d5c82===_0x5d3eda;},'WghJU':function(_0x7fbddc,_0x3dfb5e,_0x1b5753,_0x286719){return _0x7fbddc(_0x3dfb5e,_0x1b5753,_0x286719);},'fsWMv':'Invalid\x20or\x20expired\x20API\x20token.\x20Run\x20`ranger\x20start\x20<new-token>`\x20to\x20re-authenticate.','Pkhvi':'Access\x20denied.\x20Your\x20token\x20may\x20not\x20have\x20MCP\x20permissions.','PXjYX':function(_0x376c14,_0xf31d){return _0x376c14>=_0xf31d;},'UwSUR':_0x2c03ac(0x1af),'cUyFo':_0x2c03ac(0x174),'zWWHo':'text/event-stream','DcJPD':_0x2c03ac(0x198),'adIOB':_0x2c03ac(0x178),'FgxQH':function(_0x52e451,_0x47fb2b,_0x41f6f3,_0x48f562){return _0x52e451(_0x47fb2b,_0x41f6f3,_0x48f562);},'dREsH':function(_0x223660,_0x2aff7a){return _0x223660 instanceof _0x2aff7a;},'bHxfR':_0x2c03ac(0x188),'GmimJ':function(_0x5dad29){return _0x5dad29();},'bRQmV':_0x2c03ac(0x1ac),'gyyxO':_0x2c03ac(0x1a1),'tFouP':'line','vtYzB':_0x2c03ac(0x190)},_0x508361=await _0x495b05[_0x2c03ac(0x175)](getToken);!_0x508361&&(jsonRpcError(null,ERROR_CODES[_0x2c03ac(0x1a2)],_0x495b05['bRQmV']+_0x495b05[_0x2c03ac(0x194)]),process[_0x2c03ac(0x186)](0x1));const _0x13c032=getMcpServerUrl(),_0x4b1ed4=_0x13c032+'/mcp',_0x54812a=_0x41c71a['createInterface']({'input':process['stdin'],'output':process[_0x2c03ac(0x1a8)],'terminal':![]});_0x54812a['on'](_0x495b05[_0x2c03ac(0x1a9)],async _0x28af46=>{const _0x4fe68a=_0x2c03ac;if(!_0x28af46['trim']())return;try{if(_0x495b05[_0x4fe68a(0x16c)]===_0x495b05[_0x4fe68a(0x197)]){const _0x5d5b20=_0x392ab5?function(){const _0x3df71a=_0x4fe68a;if(_0x18dba0){const _0x2763ad=_0x3b6d8e[_0x3df71a(0x180)](_0x3d4f94,arguments);return _0x4ca570=null,_0x2763ad;}}:function(){};return _0x2c005f=![],_0x5d5b20;}else{const _0x5c1042=JSON['parse'](_0x28af46),_0x4bdf10=await _0x495b05[_0x4fe68a(0x17e)](fetch,_0x4b1ed4,{'method':_0x4fe68a(0x1b0),'headers':{'Content-Type':_0x495b05['ZfpTv'],'Accept':_0x495b05[_0x4fe68a(0x169)],'Authorization':_0x4fe68a(0x18b)+_0x508361},'body':JSON[_0x4fe68a(0x1a6)](_0x5c1042)});if(!_0x4bdf10['ok']){if(_0x495b05[_0x4fe68a(0x177)](_0x495b05[_0x4fe68a(0x16e)],_0x495b05['EKaSQ'])){if(_0xd3042a[_0x4fe68a(0x184)](_0x495b05[_0x4fe68a(0x170)])){const _0x5e2f09=_0x98343d[_0x4fe68a(0x171)](0x6);_0x5e2f09[_0x4fe68a(0x1a5)]()&&_0x3de7a2[_0x4fe68a(0x1a4)](_0x5e2f09);}}else{if(_0x495b05[_0x4fe68a(0x16f)](_0x4bdf10[_0x4fe68a(0x191)],0x191))_0x495b05[_0x4fe68a(0x181)](jsonRpcError,_0x5c1042['id']??null,ERROR_CODES[_0x4fe68a(0x1b2)],_0x495b05['fsWMv']);else{if(_0x495b05[_0x4fe68a(0x16f)](_0x4bdf10[_0x4fe68a(0x191)],0x193))_0x495b05[_0x4fe68a(0x177)]('ZAxPW',_0x4fe68a(0x1aa))?jsonRpcError(_0x5c1042['id']??null,ERROR_CODES[_0x4fe68a(0x18f)],_0x495b05['Pkhvi']):_0x373d2a[_0x4fe68a(0x1a4)](_0x39874f['stringify']({'jsonrpc':_0x495b05[_0x4fe68a(0x19a)],'id':_0x1a4f80,'error':{'code':_0x545269,'message':_0x594e7e}}));else _0x495b05[_0x4fe68a(0x16a)](_0x4bdf10[_0x4fe68a(0x191)],0x1f4)?_0x495b05['WghJU'](jsonRpcError,_0x5c1042['id']??null,ERROR_CODES[_0x4fe68a(0x16b)],_0x495b05[_0x4fe68a(0x189)]):jsonRpcError(_0x5c1042['id']??null,ERROR_CODES[_0x4fe68a(0x179)],'HTTP\x20error:\x20'+_0x4bdf10[_0x4fe68a(0x191)]+'\x20'+_0x4bdf10['statusText']);}return;}}const _0x1920d1=_0x4bdf10[_0x4fe68a(0x172)][_0x4fe68a(0x1a3)](_0x495b05[_0x4fe68a(0x18c)])||'';if(_0x1920d1[_0x4fe68a(0x17f)](_0x495b05[_0x4fe68a(0x1a7)])){const _0x41fece=_0x4bdf10['body']?.[_0x4fe68a(0x183)]();if(!_0x41fece)return;const _0x3a2c3f=new TextDecoder();let _0xac0347='';while(!![]){const {done:_0x5ca8ac,value:_0x3229e7}=await _0x41fece[_0x4fe68a(0x1ae)]();if(_0x5ca8ac)break;_0xac0347+=_0x3a2c3f['decode'](_0x3229e7,{'stream':!![]});const _0x1616c3=_0xac0347[_0x4fe68a(0x18d)]('\x0a\x0a');_0xac0347=_0x1616c3[_0x4fe68a(0x17a)]()||'';for(const _0x42caa8 of _0x1616c3){if(!_0x42caa8['trim']())continue;const _0x2933f4=_0x42caa8['split']('\x0a');for(const _0x3462a6 of _0x2933f4){if(_0x3462a6[_0x4fe68a(0x184)](_0x495b05[_0x4fe68a(0x170)])){const _0x490599=_0x3462a6[_0x4fe68a(0x171)](0x6);_0x490599[_0x4fe68a(0x1a5)]()&&console['log'](_0x490599);}}}}}else{if(_0x495b05[_0x4fe68a(0x177)](_0x495b05[_0x4fe68a(0x19e)],_0x495b05['adIOB'])){const _0x51f461=await _0x4bdf10['json']();console['log'](JSON['stringify'](_0x51f461));}else{if(_0x12c071){const _0x2c7bff=_0x326ae5[_0x4fe68a(0x180)](_0x51585a,arguments);return _0x52f46e=null,_0x2c7bff;}}}}}catch(_0x174424){_0x495b05[_0x4fe68a(0x17c)](jsonRpcError,null,ERROR_CODES['INTERNAL_ERROR'],_0x495b05[_0x4fe68a(0x182)](_0x174424,Error)?_0x174424[_0x4fe68a(0x185)]:_0x495b05[_0x4fe68a(0x195)]);}}),_0x54812a['on'](_0x495b05[_0x2c03ac(0x19d)],()=>{const _0x15002e=_0x2c03ac;process[_0x15002e(0x186)](0x0);});}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dataMcpServer.js","sourceRoot":"","sources":["../../src/commands/dataMcpServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const _0x1ae56f=_0xf9a8;(function(_0x2f4c3d,_0x375c49){const _0x3c6c74=_0xf9a8,_0x52f410=_0x2f4c3d();while(!![]){try{const _0xc4a313=-parseInt(_0x3c6c74(0x9c))/0x1+parseInt(_0x3c6c74(0xac))/0x2*(-parseInt(_0x3c6c74(0x9d))/0x3)+-parseInt(_0x3c6c74(0xa0))/0x4*(-parseInt(_0x3c6c74(0xb2))/0x5)+parseInt(_0x3c6c74(0x9a))/0x6*(-parseInt(_0x3c6c74(0x9f))/0x7)+-parseInt(_0x3c6c74(0x99))/0x8+-parseInt(_0x3c6c74(0xb4))/0x9+parseInt(_0x3c6c74(0xb0))/0xa;if(_0xc4a313===_0x375c49)break;else _0x52f410['push'](_0x52f410['shift']());}catch(_0x14cc04){_0x52f410['push'](_0x52f410['shift']());}}}(_0x15dc,0x88c1d));const _0x517e2f=(function(){const _0x1defbb=_0xf9a8,_0x34a28d={'GGJoe':_0x1defbb(0x9b),'CpOSv':_0x1defbb(0xa7),'gtASF':function(_0x1f85ca,_0x433cb9){return _0x1f85ca!==_0x433cb9;},'LYyLQ':_0x1defbb(0xa3)};let _0xce0966=!![];return function(_0x5eed7f,_0x5902ed){const _0x1a2b22=_0x1defbb,_0x2609db={'yhtaF':function(_0x3415af,_0x160b14){return _0x3415af===_0x160b14;},'MrykK':_0x34a28d[_0x1a2b22(0xbb)]};if(_0x34a28d[_0x1a2b22(0xa1)](_0x34a28d[_0x1a2b22(0x9e)],_0x1a2b22(0xa3)))return _0x40bb2f['toString']()['search'](_0x34a28d[_0x1a2b22(0xa2)])['toString']()[_0x1a2b22(0xaf)](_0x5f3fa3)['search'](_0x1a2b22(0x9b));else{const _0x231e23=_0xce0966?function(){const _0x1fc41c=_0x1a2b22;if(_0x2609db[_0x1fc41c(0xb3)](_0x1fc41c(0xb7),_0x2609db[_0x1fc41c(0xb1)])){const _0x2b2a12=_0x291e54?function(){const _0x323681=_0x1fc41c;if(_0x4a726e){const _0x295246=_0x4b9acf[_0x323681(0xa9)](_0x4769dc,arguments);return _0x3fe8ce=null,_0x295246;}}:function(){};return _0x511bfc=![],_0x2b2a12;}else{if(_0x5902ed){const _0x23d943=_0x5902ed[_0x1fc41c(0xa9)](_0x5eed7f,arguments);return _0x5902ed=null,_0x23d943;}}}:function(){};return _0xce0966=![],_0x231e23;}};}()),_0x4bdac2=_0x517e2f(this,function(){const _0x3f5ab2=_0xf9a8,_0x2ffa7d={'xmuUn':_0x3f5ab2(0x9b)};return _0x4bdac2[_0x3f5ab2(0xae)]()[_0x3f5ab2(0xa8)]('(((.+)+)+)+$')[_0x3f5ab2(0xae)]()['constructor'](_0x4bdac2)['search'](_0x2ffa7d[_0x3f5ab2(0xb9)]);});function _0xf9a8(_0x3f59a9,_0x593d8c){_0x3f59a9=_0x3f59a9-0x99;const _0x4aa2f9=_0x15dc();let _0x4bdac2=_0x4aa2f9[_0x3f59a9];if(_0xf9a8['AxBaQu']===undefined){var _0x517e2f=function(_0x34c30f){const _0x586814='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x453ea1='',_0x36d250='',_0x9336cc=_0x453ea1+_0x517e2f;for(let _0x256e97=0x0,_0x2a7421,_0x2ab84b,_0x3dfc1b=0x0;_0x2ab84b=_0x34c30f['charAt'](_0x3dfc1b++);~_0x2ab84b&&(_0x2a7421=_0x256e97%0x4?_0x2a7421*0x40+_0x2ab84b:_0x2ab84b,_0x256e97++%0x4)?_0x453ea1+=_0x9336cc['charCodeAt'](_0x3dfc1b+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x2a7421>>(-0x2*_0x256e97&0x6)):_0x256e97:0x0){_0x2ab84b=_0x586814['indexOf'](_0x2ab84b);}for(let _0x435c58=0x0,_0xa8f260=_0x453ea1['length'];_0x435c58<_0xa8f260;_0x435c58++){_0x36d250+='%'+('00'+_0x453ea1['charCodeAt'](_0x435c58)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x36d250);};_0xf9a8['BBcJxa']=_0x517e2f,_0xf9a8['SxVisj']={},_0xf9a8['AxBaQu']=!![];}const _0x15dc0d=_0x4aa2f9[0x0],_0xf9a86f=_0x3f59a9+_0x15dc0d,_0x237ca9=_0xf9a8['SxVisj'][_0xf9a86f];if(!_0x237ca9){const _0x291e54=function(_0x2d8d15){this['vwSSZA']=_0x2d8d15,this['IsLrGS']=[0x1,0x0,0x0],this['pTaQHv']=function(){return'newState';},this['rEFloj']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['ILtJjM']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x291e54['prototype']['KMuLUG']=function(){const _0x5a5136=new RegExp(this['rEFloj']+this['ILtJjM']),_0x1e008f=_0x5a5136['test'](this['pTaQHv']['toString']())?--this['IsLrGS'][0x1]:--this['IsLrGS'][0x0];return this['aTXncM'](_0x1e008f);},_0x291e54['prototype']['aTXncM']=function(_0x420c21){if(!Boolean(~_0x420c21))return _0x420c21;return this['rgwVAI'](this['vwSSZA']);},_0x291e54['prototype']['rgwVAI']=function(_0x511bfc){for(let _0x4a726e=0x0,_0x47fb45=this['IsLrGS']['length'];_0x4a726e<_0x47fb45;_0x4a726e++){this['IsLrGS']['push'](Math['round'](Math['random']())),_0x47fb45=this['IsLrGS']['length'];}return _0x511bfc(this['IsLrGS'][0x0]);},new _0x291e54(_0xf9a8)['KMuLUG'](),_0x4bdac2=_0xf9a8['BBcJxa'](_0x4bdac2),_0xf9a8['SxVisj'][_0xf9a86f]=_0x4bdac2;}else _0x4bdac2=_0x237ca9;return _0x4bdac2;}_0x4bdac2();import{createHmac}from'crypto';function _0x15dc(){const _0x5a44=['Eg11vw4','v0P3y2W','q3bpu3y','C2HHmJu2','nJyZmZaZmNn2wxjhAa','mtmYnLviCgTUBa','kcGOlISPkYKRksSK','otCXotu4zKnMz0D5','mty3nJfSseriExK','tfL5tfe','mty1otDJuK9kvMW','ntq5nJa0quPICg9X','z3rbu0y','r0DkB2u','wwz1teK','zgLNzxn0','C2vJCMv0xW','AM9PBG','A0DiALe','C2vHCMnO','yxbWBhK','CM5NCG','DxbKyxrL','mJa0swT0Ag9m','DJfF','Dg9tDhjPBMC','y29UC3rYDwn0B3i','nda1mtiWotbLz3HrtvC','txj5A0S','mtbsreD6reC','EwH0yuy','nZGZodeXogLZqLH6EG','CdrXohCX','ue5LugC','s010C1i','BM93'];_0x15dc=function(){return _0x5a44;};return _0x15dc();}const _p1=_0x1ae56f(0xaa),_p2='_cli_',_p3=_0x1ae56f(0xa5),_p4=_0x1ae56f(0xad),_p5='x7k9m2',_p6=_0x1ae56f(0xb5),_getSecret=()=>[_p1,_p2,_p3,_p4,_p5,_p6][_0x1ae56f(0xa6)]('');export function signRequest(_0x30c0db){const _0x3f4527=_0x1ae56f,_0xda8d7d={'PNePg':function(_0x173b31,_0x249308,_0x469745){return _0x173b31(_0x249308,_0x469745);},'WJwcl':_0x3f4527(0xbc),'mcBVD':function(_0x159192){return _0x159192();},'TvrHS':'hex'},_0x463485=Date[_0x3f4527(0xb8)](),_0x1ff795=_0x463485+':'+_0x30c0db,_0x33708b=_0xda8d7d[_0x3f4527(0xb6)](createHmac,_0xda8d7d[_0x3f4527(0xba)],_0xda8d7d['mcBVD'](_getSecret))[_0x3f4527(0xab)](_0x1ff795)[_0x3f4527(0xa4)](_0xda8d7d['TvrHS']);return{'signature':_0x33708b,'timestamp':_0x463485};}export function getSignedHeaders(_0x956afa){const _0x561f62=_0x1ae56f,{signature:_0x1e399a,timestamp:_0x4a7f16}=signRequest(_0x956afa);return{'X-Ranger-CLI-Signature':_0x1e399a,'X-Ranger-CLI-Timestamp':_0x4a7f16[_0x561f62(0xae)]()};}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cliSecret.js","sourceRoot":"","sources":["../../../src/commands/utils/cliSecret.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;;GAGG;AAEH,kDAAkD;AAClD,MAAM,GAAG,GAAG,MAAM,CAAC;AACnB,MAAM,GAAG,GAAG,OAAO,CAAC;AACpB,MAAM,GAAG,GAAG,SAAS,CAAC;AACtB,MAAM,GAAG,GAAG,KAAK,CAAC;AAClB,MAAM,GAAG,GAAG,QAAQ,CAAC;AACrB,MAAM,GAAG,GAAG,QAAQ,CAAC;AACrB,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEjE;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IAIvC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;SAC/C,MAAM,CAAC,IAAI,CAAC;SACZ,MAAM,CAAC,KAAK,CAAC,CAAC;IAEnB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC5C,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACtD,OAAO;QACH,wBAAwB,EAAE,SAAS;QACnC,wBAAwB,EAAE,SAAS,CAAC,QAAQ,EAAE;KACjD,CAAC;AACN,CAAC"}
|