antigravity-tc 1.1.0 → 1.1.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 +1 -0
- package/bin/reset-password.js +4 -4
- package/dev.md +1 -1
- package/env.example +1 -1
- package/index.js +3 -3
- package/package.json +2 -2
- package/server.js +4 -4
- package/src/paths.js +28 -0
package/README.md
CHANGED
|
@@ -91,6 +91,7 @@ Lokasi default **mengikuti OS tempat package di-install** — tanpa konfigurasi
|
|
|
91
91
|
|
|
92
92
|
| Isi | Keterangan |
|
|
93
93
|
| --- | --- |
|
|
94
|
+
| `.env` | Konfigurasi — dibuat otomatis dari `env.example` saat pertama kali jalan |
|
|
94
95
|
| `logs/donation-logs.sqlite` | Log donasi (auto-migrasi dari instalasi lama) |
|
|
95
96
|
| `bin/cloudflared` | Binary tunnel (auto-download per OS) |
|
|
96
97
|
| `logs/launcher.log` | Log saat auto-start |
|
package/bin/reset-password.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
// Hard reset password admin ATC kembali ke default.
|
|
3
3
|
// Pakai: antigravity-tc-reset-password [--yes]
|
|
4
4
|
|
|
5
|
-
const path = require('path');
|
|
6
5
|
const http = require('http');
|
|
7
6
|
const readline = require('readline');
|
|
8
7
|
|
|
9
|
-
// .env
|
|
10
|
-
|
|
8
|
+
// .env hidup di ~/.antigravity-tc/.env (konsisten dengan index.js).
|
|
9
|
+
const { ENV_PATH, ensureEnvFile } = require('../src/paths');
|
|
10
|
+
require('dotenv').config({ path: ensureEnvFile(), quiet: true });
|
|
11
11
|
|
|
12
12
|
const { getConfig } = require('../src/config');
|
|
13
13
|
|
|
@@ -56,7 +56,7 @@ async function main() {
|
|
|
56
56
|
console.log('bukan dari dashboard — reset di sini tidak akan mengubahnya.');
|
|
57
57
|
console.log('');
|
|
58
58
|
console.log('Solusi : hapus/ubah baris APP_PASSWORD di .env, lalu restart aplikasi.');
|
|
59
|
-
console.log(`Lokasi : ${
|
|
59
|
+
console.log(`Lokasi : ${ENV_PATH}`);
|
|
60
60
|
process.exit(0);
|
|
61
61
|
}
|
|
62
62
|
|
package/dev.md
CHANGED
|
@@ -18,7 +18,7 @@ cp env.example .env # lalu isi nilai
|
|
|
18
18
|
npm run build:web # build frontend sekali sebelum jalan dari source
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
File `.env`
|
|
21
|
+
File `.env` hidup di **`~/.antigravity-tc/.env`** (bukan folder project/cwd). Saat pertama kali jalan, app otomatis membuatnya dari `env.example` — atau memigrasi `.env` lama di folder project bila ada. Override lokal saat development tetap bisa dengan mengedit file itu.
|
|
22
22
|
|
|
23
23
|
### Variabel `.env`
|
|
24
24
|
|
package/env.example
CHANGED
package/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
const path = require('path');
|
|
3
|
-
// .env
|
|
4
|
-
//
|
|
5
|
-
require('dotenv').config({ path:
|
|
3
|
+
// .env hidup di ~/.antigravity-tc/.env (dibuat otomatis dari env.example saat
|
|
4
|
+
// pertama kali jalan) — bukan di folder project/cwd.
|
|
5
|
+
require('dotenv').config({ path: require('./src/paths').ensureEnvFile(), quiet: true });
|
|
6
6
|
|
|
7
7
|
const fs = require('fs');
|
|
8
8
|
const os = require('os');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "antigravity-tc",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Antigravity Token Collector — tray app untuk mengumpulkan & mengelola donasi token Antigravity ke 9Router",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"vite"
|
|
38
38
|
],
|
|
39
39
|
"author": "hifzi",
|
|
40
|
-
|
|
40
|
+
"repository": {
|
|
41
41
|
"type": "git",
|
|
42
42
|
"url": "https://github.com/hifzi/antigravity-tc"
|
|
43
43
|
},
|
package/server.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
const path = require('path');
|
|
3
|
-
// .env
|
|
4
|
-
//
|
|
5
|
-
require('dotenv').config({ path:
|
|
3
|
+
// .env hidup di ~/.antigravity-tc/.env (dibuat otomatis dari env.example saat
|
|
4
|
+
// pertama kali jalan) — wajib dimuat sebelum konstanta env di bawah dibaca.
|
|
5
|
+
require('dotenv').config({ path: require('./src/paths').ensureEnvFile(), quiet: true });
|
|
6
6
|
|
|
7
7
|
const http = require('http');
|
|
8
8
|
const https = require('https');
|
|
@@ -56,7 +56,7 @@ const OAUTH_CLIENT_ID = process.env.OAUTH_CLIENT_ID || decodeBuiltin(BUILTIN_OAU
|
|
|
56
56
|
const OAUTH_CLIENT_SECRET = process.env.OAUTH_CLIENT_SECRET || decodeBuiltin(BUILTIN_OAUTH_CLIENT_SECRET_ENC);
|
|
57
57
|
const OAUTH_METHOD = ['popup', 'new_tab', 'new-tab'].includes(String(process.env.OAUTH_METHOD || '').toLowerCase())
|
|
58
58
|
? (String(process.env.OAUTH_METHOD).toLowerCase() === 'popup' ? 'popup' : 'tab')
|
|
59
|
-
: '
|
|
59
|
+
: 'popup';
|
|
60
60
|
const CONFIGURED_APP_ORIGIN = new URL(APP_URL).origin;
|
|
61
61
|
|
|
62
62
|
const OAUTH_SCOPE = [
|
package/src/paths.js
CHANGED
|
@@ -5,6 +5,31 @@ const fs = require('fs');
|
|
|
5
5
|
const APP_DIR = path.join(os.homedir(), '.antigravity-tc');
|
|
6
6
|
const LOGS_DIR = path.join(APP_DIR, 'logs');
|
|
7
7
|
const BIN_DIR = path.join(APP_DIR, 'bin');
|
|
8
|
+
const ENV_PATH = path.join(APP_DIR, '.env');
|
|
9
|
+
const ENV_EXAMPLE_PATH = path.join(__dirname, '..', 'env.example');
|
|
10
|
+
const LEGACY_ENV_PATH = path.join(__dirname, '..', '.env');
|
|
11
|
+
|
|
12
|
+
// .env hidup di ~/.antigravity-tc/.env. Saat pertama kali jalan:
|
|
13
|
+
// 1) jika sudah ada → pakai apa adanya;
|
|
14
|
+
// 2) jika ada .env lama di folder project → migrasi (copy) satu kali;
|
|
15
|
+
// 3) jika belum ada sama sekali → salin dari env.example.
|
|
16
|
+
function ensureEnvFile() {
|
|
17
|
+
if (fs.existsSync(ENV_PATH)) return ENV_PATH;
|
|
18
|
+
try {
|
|
19
|
+
ensureAppDirs();
|
|
20
|
+
if (fs.existsSync(LEGACY_ENV_PATH)) {
|
|
21
|
+
fs.copyFileSync(LEGACY_ENV_PATH, ENV_PATH);
|
|
22
|
+
console.log(`[env] Migrasi .env lama → ${ENV_PATH}`);
|
|
23
|
+
} else if (fs.existsSync(ENV_EXAMPLE_PATH)) {
|
|
24
|
+
fs.copyFileSync(ENV_EXAMPLE_PATH, ENV_PATH);
|
|
25
|
+
console.log(`[env] Membuat ${ENV_PATH} dari env.example — silakan sesuaikan bila perlu.`);
|
|
26
|
+
} else {
|
|
27
|
+
fs.writeFileSync(ENV_PATH, 'PORT=3456\nAPP_PASSWORD=\n');
|
|
28
|
+
console.log(`[env] Membuat ${ENV_PATH}`);
|
|
29
|
+
}
|
|
30
|
+
} catch (e) {}
|
|
31
|
+
return ENV_PATH;
|
|
32
|
+
}
|
|
8
33
|
|
|
9
34
|
// Default lokasi database 9Router mengikuti OS tempat app di-install:
|
|
10
35
|
// - Windows : %APPDATA%/9router/db/data.sqlite
|
|
@@ -51,9 +76,12 @@ module.exports = {
|
|
|
51
76
|
APP_DIR,
|
|
52
77
|
LOGS_DIR,
|
|
53
78
|
BIN_DIR,
|
|
79
|
+
ENV_PATH,
|
|
80
|
+
ENV_EXAMPLE_PATH,
|
|
54
81
|
LOG_DB_PATH: path.join(LOGS_DIR, 'donation-logs.sqlite'),
|
|
55
82
|
DEFAULT_9ROUTER_DB,
|
|
56
83
|
CLOUDFLARED_BIN: path.join(BIN_DIR, process.platform === 'win32' ? 'cloudflared.exe' : 'cloudflared'),
|
|
57
84
|
ensureAppDirs,
|
|
85
|
+
ensureEnvFile,
|
|
58
86
|
migrateLegacyLogDb,
|
|
59
87
|
};
|