@gelglx/arjunakey 1.0.1 → 1.1.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 +8 -9
- package/cli.js +17 -17
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -5,16 +5,15 @@ CLI satu akun untuk:
|
|
|
5
5
|
1. membuat informasi akun acak,
|
|
6
6
|
2. register ke `https://dash.arjuna.dev/register`,
|
|
7
7
|
3. mempertahankan session hasil register (login ulang hanya jika server tidak memberi session),
|
|
8
|
-
4.
|
|
8
|
+
4. redeem voucher melalui form `Redeem voucher`,
|
|
9
9
|
5. mengambil API key dari `/api/me`.
|
|
10
10
|
|
|
11
11
|
Tidak ada dependency npm eksternal.
|
|
12
12
|
|
|
13
|
-
## Instalasi
|
|
13
|
+
## Instalasi
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
|
|
17
|
-
npm install -g .
|
|
16
|
+
npm install -g @gelglx/arjunakey@latest
|
|
18
17
|
```
|
|
19
18
|
|
|
20
19
|
## Pemakaian
|
|
@@ -23,18 +22,18 @@ npm install -g .
|
|
|
23
22
|
arjunakey create
|
|
24
23
|
```
|
|
25
24
|
|
|
26
|
-
|
|
25
|
+
Voucher default:
|
|
27
26
|
|
|
28
27
|
```text
|
|
29
|
-
ONE-
|
|
28
|
+
ONE-CAC0-209C-55C0-1535-831E
|
|
30
29
|
```
|
|
31
30
|
|
|
32
|
-
|
|
31
|
+
CLI mengirim voucher ke `POST /api/billing/redeem`, sama seperti form `Redeem voucher`. CLI tidak menggunakan form `2. Enter group code` dan tidak memanggil `/api/billing/signup-bonus`.
|
|
33
32
|
|
|
34
|
-
Ganti
|
|
33
|
+
Ganti voucher jika diperlukan:
|
|
35
34
|
|
|
36
35
|
```bash
|
|
37
|
-
arjunakey create --
|
|
36
|
+
arjunakey create --voucher-code ONE-CAC0-209C-55C0-1535-831E
|
|
38
37
|
```
|
|
39
38
|
|
|
40
39
|
Output hanya API key:
|
package/cli.js
CHANGED
|
@@ -8,9 +8,9 @@ const https = require('https');
|
|
|
8
8
|
const path = require('path');
|
|
9
9
|
const { URL } = require('url');
|
|
10
10
|
|
|
11
|
-
const VERSION = '1.0
|
|
11
|
+
const VERSION = '1.1.0';
|
|
12
12
|
const DEFAULT_BASE_URL = 'https://dash.arjuna.dev';
|
|
13
|
-
const
|
|
13
|
+
const DEFAULT_VOUCHER_CODE = 'ONE-CAC0-209C-55C0-1535-831E';
|
|
14
14
|
|
|
15
15
|
class ApiError extends Error {
|
|
16
16
|
constructor(message, response = null) {
|
|
@@ -138,12 +138,12 @@ async function register(client, profile) {
|
|
|
138
138
|
assertOk(response, 'Gagal membuat akun');
|
|
139
139
|
}
|
|
140
140
|
|
|
141
|
-
async function
|
|
142
|
-
const
|
|
143
|
-
if (
|
|
144
|
-
return { kind: '
|
|
141
|
+
async function redeemVoucher(client, code) {
|
|
142
|
+
const voucherResponse = await client.request('POST', '/api/billing/redeem', { code });
|
|
143
|
+
if (voucherResponse.status >= 200 && voucherResponse.status < 300) {
|
|
144
|
+
return { kind: 'voucher', ...voucherResponse.data };
|
|
145
145
|
}
|
|
146
|
-
throw new ApiError(apiMessage(
|
|
146
|
+
throw new ApiError(apiMessage(voucherResponse, 'Voucher ditolak'), voucherResponse);
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
async function getAccount(client) {
|
|
@@ -157,7 +157,7 @@ function parseArgs(argv) {
|
|
|
157
157
|
const opts = {
|
|
158
158
|
command: 'create',
|
|
159
159
|
baseUrl: process.env.ARJUNA_BASE_URL || DEFAULT_BASE_URL,
|
|
160
|
-
|
|
160
|
+
voucherCode: process.env.ARJUNA_VOUCHER_CODE || DEFAULT_VOUCHER_CODE,
|
|
161
161
|
emailDomain: process.env.ARJUNA_EMAIL_DOMAIN || 'example.com',
|
|
162
162
|
timeout: Number(process.env.ARJUNA_TIMEOUT || 30),
|
|
163
163
|
json: false,
|
|
@@ -168,7 +168,7 @@ function parseArgs(argv) {
|
|
|
168
168
|
|
|
169
169
|
const input = [...argv];
|
|
170
170
|
if (input[0] && !input[0].startsWith('-')) opts.command = input.shift();
|
|
171
|
-
const valueFlags = new Set(['--base-url', '--
|
|
171
|
+
const valueFlags = new Set(['--base-url', '--voucher-code', '--email-domain', '--name', '--email', '--password', '--save', '--account-out', '--timeout']);
|
|
172
172
|
|
|
173
173
|
for (let i = 0; i < input.length; i++) {
|
|
174
174
|
let flag = input[i];
|
|
@@ -188,7 +188,7 @@ function parseArgs(argv) {
|
|
|
188
188
|
|
|
189
189
|
switch (flag) {
|
|
190
190
|
case '--base-url': opts.baseUrl = value; break;
|
|
191
|
-
case '--
|
|
191
|
+
case '--voucher-code': opts.voucherCode = value; break;
|
|
192
192
|
case '--email-domain': opts.emailDomain = value; break;
|
|
193
193
|
case '--name': opts.name = value; break;
|
|
194
194
|
case '--email': opts.email = value; break;
|
|
@@ -260,11 +260,11 @@ Pemakaian:
|
|
|
260
260
|
arjunakey create [opsi]
|
|
261
261
|
arjunakey login --email EMAIL --password PASSWORD [opsi]
|
|
262
262
|
|
|
263
|
-
create membuat satu akun acak,
|
|
264
|
-
|
|
263
|
+
create membuat satu akun acak, redeem voucher, lalu mengambil API key.
|
|
264
|
+
Voucher default: ${DEFAULT_VOUCHER_CODE}
|
|
265
265
|
|
|
266
266
|
Opsi:
|
|
267
|
-
--
|
|
267
|
+
--voucher-code CODE Kode pada form "Redeem voucher"
|
|
268
268
|
--email-domain HOST Domain email acak (default: example.com)
|
|
269
269
|
--name NAME Ganti nama acak
|
|
270
270
|
--email EMAIL Ganti email acak
|
|
@@ -281,7 +281,7 @@ Opsi:
|
|
|
281
281
|
|
|
282
282
|
Environment:
|
|
283
283
|
ARJUNA_EMAIL, ARJUNA_PASSWORD, ARJUNA_BASE_URL,
|
|
284
|
-
|
|
284
|
+
ARJUNA_VOUCHER_CODE, ARJUNA_EMAIL_DOMAIN, ARJUNA_TIMEOUT`);
|
|
285
285
|
}
|
|
286
286
|
|
|
287
287
|
async function main() {
|
|
@@ -315,10 +315,10 @@ async function main() {
|
|
|
315
315
|
await login(client, profile.email, profile.password);
|
|
316
316
|
}
|
|
317
317
|
|
|
318
|
-
if (!opts.noClaim && opts.
|
|
319
|
-
if (!opts.quiet && !opts.raw && !opts.json) console.error('
|
|
318
|
+
if (!opts.noClaim && opts.voucherCode) {
|
|
319
|
+
if (!opts.quiet && !opts.raw && !opts.json) console.error('Redeem voucher...');
|
|
320
320
|
try {
|
|
321
|
-
claim = await
|
|
321
|
+
claim = await redeemVoucher(client, opts.voucherCode);
|
|
322
322
|
} catch (error) {
|
|
323
323
|
if (opts.command === 'login' && error instanceof ApiError && /already|sudah|claimed/i.test(error.message)) {
|
|
324
324
|
claim = { kind: 'already-claimed' };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gelglx/arjunakey",
|
|
3
|
-
"version": "1.0
|
|
4
|
-
"description": "Single-account CLI for OneStore registration,
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "Single-account CLI for OneStore registration, voucher redemption, and API-key retrieval",
|
|
5
5
|
"bin": {
|
|
6
6
|
"arjunakey": "cli.js"
|
|
7
7
|
},
|