@gelglx/arjunakey 1.0.0 → 1.0.1
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 +9 -3
- package/cli.js +14 -24
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -4,8 +4,8 @@ CLI satu akun untuk:
|
|
|
4
4
|
|
|
5
5
|
1. membuat informasi akun acak,
|
|
6
6
|
2. register ke `https://dash.arjuna.dev/register`,
|
|
7
|
-
3. login,
|
|
8
|
-
4.
|
|
7
|
+
3. mempertahankan session hasil register (login ulang hanya jika server tidak memberi session),
|
|
8
|
+
4. mengisi `2. Enter group code`,
|
|
9
9
|
5. mengambil API key dari `/api/me`.
|
|
10
10
|
|
|
11
11
|
Tidak ada dependency npm eksternal.
|
|
@@ -29,7 +29,13 @@ Kode default:
|
|
|
29
29
|
ONE-GROUP-6T2E-2V7N-H37Q
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
Kode tersebut adalah
|
|
32
|
+
Kode tersebut adalah group verification code. CLI hanya mengirimnya ke `/api/billing/signup-bonus`, sama seperti form `2. Enter group code`. CLI tidak menggunakan form `Redeem voucher` dan tidak memanggil `/api/billing/redeem`.
|
|
33
|
+
|
|
34
|
+
Ganti group code jika diperlukan:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
arjunakey create --group-code ONE-GROUP-6T2E-2V7N-H37Q
|
|
38
|
+
```
|
|
33
39
|
|
|
34
40
|
Output hanya API key:
|
|
35
41
|
|
package/cli.js
CHANGED
|
@@ -8,7 +8,7 @@ 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.0.1';
|
|
12
12
|
const DEFAULT_BASE_URL = 'https://dash.arjuna.dev';
|
|
13
13
|
const DEFAULT_CODE = 'ONE-GROUP-6T2E-2V7N-H37Q';
|
|
14
14
|
|
|
@@ -143,19 +143,7 @@ async function claimCode(client, code) {
|
|
|
143
143
|
if (groupResponse.status >= 200 && groupResponse.status < 300) {
|
|
144
144
|
return { kind: 'welcome-group', ...groupResponse.data };
|
|
145
145
|
}
|
|
146
|
-
|
|
147
|
-
if (![400, 404].includes(groupResponse.status)) {
|
|
148
|
-
throw new ApiError(apiMessage(groupResponse, 'Gagal klaim welcome code'), groupResponse);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
const voucherResponse = await client.request('POST', '/api/billing/redeem', { code });
|
|
152
|
-
if (voucherResponse.status >= 200 && voucherResponse.status < 300) {
|
|
153
|
-
return { kind: 'voucher', ...voucherResponse.data };
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
const groupError = apiMessage(groupResponse, 'Welcome code ditolak');
|
|
157
|
-
const voucherError = apiMessage(voucherResponse, 'Voucher ditolak');
|
|
158
|
-
throw new ApiError(`${groupError}; ${voucherError}`, voucherResponse);
|
|
146
|
+
throw new ApiError(apiMessage(groupResponse, 'Group verification code ditolak'), groupResponse);
|
|
159
147
|
}
|
|
160
148
|
|
|
161
149
|
async function getAccount(client) {
|
|
@@ -169,7 +157,7 @@ function parseArgs(argv) {
|
|
|
169
157
|
const opts = {
|
|
170
158
|
command: 'create',
|
|
171
159
|
baseUrl: process.env.ARJUNA_BASE_URL || DEFAULT_BASE_URL,
|
|
172
|
-
|
|
160
|
+
groupCode: process.env.ARJUNA_GROUP_CODE || DEFAULT_CODE,
|
|
173
161
|
emailDomain: process.env.ARJUNA_EMAIL_DOMAIN || 'example.com',
|
|
174
162
|
timeout: Number(process.env.ARJUNA_TIMEOUT || 30),
|
|
175
163
|
json: false,
|
|
@@ -180,7 +168,7 @@ function parseArgs(argv) {
|
|
|
180
168
|
|
|
181
169
|
const input = [...argv];
|
|
182
170
|
if (input[0] && !input[0].startsWith('-')) opts.command = input.shift();
|
|
183
|
-
const valueFlags = new Set(['--base-url', '--
|
|
171
|
+
const valueFlags = new Set(['--base-url', '--group-code', '--email-domain', '--name', '--email', '--password', '--save', '--account-out', '--timeout']);
|
|
184
172
|
|
|
185
173
|
for (let i = 0; i < input.length; i++) {
|
|
186
174
|
let flag = input[i];
|
|
@@ -200,7 +188,7 @@ function parseArgs(argv) {
|
|
|
200
188
|
|
|
201
189
|
switch (flag) {
|
|
202
190
|
case '--base-url': opts.baseUrl = value; break;
|
|
203
|
-
case '--
|
|
191
|
+
case '--group-code': opts.groupCode = value; break;
|
|
204
192
|
case '--email-domain': opts.emailDomain = value; break;
|
|
205
193
|
case '--name': opts.name = value; break;
|
|
206
194
|
case '--email': opts.email = value; break;
|
|
@@ -276,7 +264,7 @@ create membuat satu akun acak, login, klaim kode, lalu mengambil API key.
|
|
|
276
264
|
Kode default: ${DEFAULT_CODE}
|
|
277
265
|
|
|
278
266
|
Opsi:
|
|
279
|
-
--
|
|
267
|
+
--group-code CODE Kode "2. Enter group code"
|
|
280
268
|
--email-domain HOST Domain email acak (default: example.com)
|
|
281
269
|
--name NAME Ganti nama acak
|
|
282
270
|
--email EMAIL Ganti email acak
|
|
@@ -293,7 +281,7 @@ Opsi:
|
|
|
293
281
|
|
|
294
282
|
Environment:
|
|
295
283
|
ARJUNA_EMAIL, ARJUNA_PASSWORD, ARJUNA_BASE_URL,
|
|
296
|
-
|
|
284
|
+
ARJUNA_GROUP_CODE, ARJUNA_EMAIL_DOMAIN, ARJUNA_TIMEOUT`);
|
|
297
285
|
}
|
|
298
286
|
|
|
299
287
|
async function main() {
|
|
@@ -314,8 +302,10 @@ async function main() {
|
|
|
314
302
|
validateProfile(profile);
|
|
315
303
|
if (!opts.quiet && !opts.raw && !opts.json) console.error('Membuat akun...');
|
|
316
304
|
await register(client, profile);
|
|
317
|
-
if (!
|
|
318
|
-
|
|
305
|
+
if (!client.cookies.size) {
|
|
306
|
+
if (!opts.quiet && !opts.raw && !opts.json) console.error('Masuk ke akun...');
|
|
307
|
+
await login(client, profile.email, profile.password);
|
|
308
|
+
}
|
|
319
309
|
} else {
|
|
320
310
|
profile = {
|
|
321
311
|
email: (opts.email || process.env.ARJUNA_EMAIL).toLowerCase(),
|
|
@@ -325,10 +315,10 @@ async function main() {
|
|
|
325
315
|
await login(client, profile.email, profile.password);
|
|
326
316
|
}
|
|
327
317
|
|
|
328
|
-
if (!opts.noClaim && opts.
|
|
329
|
-
if (!opts.quiet && !opts.raw && !opts.json) console.error('
|
|
318
|
+
if (!opts.noClaim && opts.groupCode) {
|
|
319
|
+
if (!opts.quiet && !opts.raw && !opts.json) console.error('Mengisi 2. Enter group code...');
|
|
330
320
|
try {
|
|
331
|
-
claim = await claimCode(client, opts.
|
|
321
|
+
claim = await claimCode(client, opts.groupCode);
|
|
332
322
|
} catch (error) {
|
|
333
323
|
if (opts.command === 'login' && error instanceof ApiError && /already|sudah|claimed/i.test(error.message)) {
|
|
334
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.0.1",
|
|
4
|
+
"description": "Single-account CLI for OneStore registration, group-code claiming, and API-key retrieval",
|
|
5
5
|
"bin": {
|
|
6
6
|
"arjunakey": "cli.js"
|
|
7
7
|
},
|