Refactor environment variable handling in package.json scripts, update .env.example for consistency, and enhance Turbo configuration for environment variable passthrough. Modify API content type parsing and resolve circular dependencies in Auth and Billing modules. Add unique username generation logic in bootstrap-admin script.
This commit is contained in:
@@ -4,7 +4,7 @@
|
|||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
# --- Application ---
|
# --- Application ---
|
||||||
APP_NAME=HexaHost GameCloud
|
APP_NAME="HexaHost GameCloud"
|
||||||
APP_ENV=development
|
APP_ENV=development
|
||||||
APP_URL=http://localhost:3000
|
APP_URL=http://localhost:3000
|
||||||
API_URL=http://localhost:3001
|
API_URL=http://localhost:3001
|
||||||
@@ -76,7 +76,7 @@ EDGE_START_WAIT_SECONDS=180
|
|||||||
EDGE_POLL_INTERVAL_MS=2000
|
EDGE_POLL_INTERVAL_MS=2000
|
||||||
|
|
||||||
# --- Catalog Providers ---
|
# --- Catalog Providers ---
|
||||||
MODRINTH_USER_AGENT=HexaHostGameCloud/0.1.0 (contact@example.net)
|
MODRINTH_USER_AGENT="HexaHostGameCloud/0.1.0 (contact@example.net)"
|
||||||
CURSEFORGE_API_KEY=
|
CURSEFORGE_API_KEY=
|
||||||
|
|
||||||
# --- Billing ---
|
# --- Billing ---
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -7,3 +7,4 @@ dist/
|
|||||||
bin/
|
bin/
|
||||||
*.log
|
*.log
|
||||||
data/
|
data/
|
||||||
|
.logs/
|
||||||
|
|||||||
1
.turbo/cache/083c8105a3916fd9-manifest.json
vendored
Normal file
1
.turbo/cache/083c8105a3916fd9-manifest.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"files":{"packages/auth/dist/username.d.ts":{"size":442,"mtime_nanos":1783255151494048909,"mode":420,"is_dir":false},"packages/auth/dist/recovery-codes.js":{"size":1089,"mtime_nanos":1783255151493710470,"mode":420,"is_dir":false},"packages/auth/dist/tokens.d.ts.map":{"size":281,"mtime_nanos":1783255151493885819,"mode":420,"is_dir":false},"packages/auth/dist/username.d.ts.map":{"size":430,"mtime_nanos":1783255151494073119,"mode":420,"is_dir":false},"packages/auth/dist/password.d.ts":{"size":200,"mtime_nanos":1783255151493536190,"mode":420,"is_dir":false},"packages/auth/dist/recovery-codes.d.ts.map":{"size":306,"mtime_nanos":1783255151493686290,"mode":420,"is_dir":false},"packages/auth/dist/password.d.ts.map":{"size":266,"mtime_nanos":1783255151493572620,"mode":420,"is_dir":false},"packages/auth/.turbo/turbo-build.log":{"size":102,"mtime_nanos":1783255052127378550,"mode":420,"is_dir":false},"packages/auth/dist/session.js":{"size":672,"mtime_nanos":1783255151493811820,"mode":420,"is_dir":false},"packages/auth/dist/totp.d.ts.map":{"size":303,"mtime_nanos":1783255151493978659,"mode":420,"is_dir":false},"packages/auth/dist/index.js.map":{"size":824,"mtime_nanos":1783255151493485050,"mode":420,"is_dir":false},"packages/auth/dist/totp.js.map":{"size":569,"mtime_nanos":1783255151494024989,"mode":420,"is_dir":false},"packages/auth/dist/username.js":{"size":2787,"mtime_nanos":1783255151494096559,"mode":420,"is_dir":false},"packages/auth/dist/session.d.ts.map":{"size":300,"mtime_nanos":1783255151493784580,"mode":420,"is_dir":false},"packages/auth/dist/index.d.ts":{"size":1570,"mtime_nanos":1783255151493314190,"mode":420,"is_dir":false},"packages/auth/dist/index.d.ts.map":{"size":1443,"mtime_nanos":1783255151493364820,"mode":420,"is_dir":false},"packages/auth/dist/tokens.js.map":{"size":760,"mtime_nanos":1783255151493932809,"mode":420,"is_dir":false},"packages/auth/dist/totp.d.ts":{"size":269,"mtime_nanos":1783255151493955819,"mode":420,"is_dir":false},"packages/auth/dist/index.js":{"size":4135,"mtime_nanos":1783255151493407900,"mode":420,"is_dir":false},"packages/auth/dist/recovery-codes.js.map":{"size":949,"mtime_nanos":1783255151493735800,"mode":420,"is_dir":false},"packages/auth/dist/tokens.d.ts":{"size":244,"mtime_nanos":1783255151493861049,"mode":420,"is_dir":false},"packages/auth/dist/totp.js":{"size":683,"mtime_nanos":1783255151494002079,"mode":420,"is_dir":false},"packages/auth/dist/username.js.map":{"size":2294,"mtime_nanos":1783255151494119969,"mode":420,"is_dir":false},"packages/auth/dist/tokens.js":{"size":864,"mtime_nanos":1783255151493909599,"mode":420,"is_dir":false},"packages/auth/dist/session.js.map":{"size":493,"mtime_nanos":1783255151493836729,"mode":420,"is_dir":false},"packages/auth/dist/password.js":{"size":482,"mtime_nanos":1783255151493603670,"mode":420,"is_dir":false},"packages/auth/dist/password.js.map":{"size":404,"mtime_nanos":1783255151493633310,"mode":420,"is_dir":false},"packages/auth/dist/recovery-codes.d.ts":{"size":264,"mtime_nanos":1783255151493659970,"mode":420,"is_dir":false},"packages/auth/dist/session.d.ts":{"size":334,"mtime_nanos":1783255151493759480,"mode":420,"is_dir":false}},"order":["packages/auth/.turbo/turbo-build.log","packages/auth/dist/index.d.ts","packages/auth/dist/index.d.ts.map","packages/auth/dist/index.js","packages/auth/dist/index.js.map","packages/auth/dist/password.d.ts","packages/auth/dist/password.d.ts.map","packages/auth/dist/password.js","packages/auth/dist/password.js.map","packages/auth/dist/recovery-codes.d.ts","packages/auth/dist/recovery-codes.d.ts.map","packages/auth/dist/recovery-codes.js","packages/auth/dist/recovery-codes.js.map","packages/auth/dist/session.d.ts","packages/auth/dist/session.d.ts.map","packages/auth/dist/session.js","packages/auth/dist/session.js.map","packages/auth/dist/tokens.d.ts","packages/auth/dist/tokens.d.ts.map","packages/auth/dist/tokens.js","packages/auth/dist/tokens.js.map","packages/auth/dist/totp.d.ts","packages/auth/dist/totp.d.ts.map","packages/auth/dist/totp.js","packages/auth/dist/totp.js.map","packages/auth/dist/username.d.ts","packages/auth/dist/username.d.ts.map","packages/auth/dist/username.js","packages/auth/dist/username.js.map"]}
|
||||||
1
.turbo/cache/083c8105a3916fd9-meta.json
vendored
Normal file
1
.turbo/cache/083c8105a3916fd9-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"083c8105a3916fd9","duration":2162,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"abc4a2c6304f10abbf2d6c628ed6a63dbf9e6ca06fecaaea2935e4ea7f4ff660"}
|
||||||
BIN
.turbo/cache/083c8105a3916fd9.tar.zst
vendored
Normal file
BIN
.turbo/cache/083c8105a3916fd9.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/0b354b78644f8aad-manifest.json
vendored
Normal file
1
.turbo/cache/0b354b78644f8aad-manifest.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"files":{"packages/database/dist/index.js":{"size":962,"mtime_nanos":1783254827141954191,"mode":420,"is_dir":false},"packages/database/dist/index.d.ts":{"size":991,"mtime_nanos":1783254827155894338,"mode":420,"is_dir":false},"packages/database/dist/index.js.map":{"size":617,"mtime_nanos":1783254827141791201,"mode":420,"is_dir":false},"packages/database/.turbo/turbo-build.log":{"size":506,"mtime_nanos":1783254827176786884,"mode":420,"is_dir":false},"packages/database/dist":{"size":0,"mtime_nanos":0,"mode":0,"is_dir":true},"packages/database/dist/index.d.ts.map":{"size":733,"mtime_nanos":1783254827154786924,"mode":420,"is_dir":false}},"order":["packages/database/.turbo/turbo-build.log","packages/database/dist","packages/database/dist/index.d.ts","packages/database/dist/index.d.ts.map","packages/database/dist/index.js","packages/database/dist/index.js.map"]}
|
||||||
1
.turbo/cache/0b354b78644f8aad-meta.json
vendored
Normal file
1
.turbo/cache/0b354b78644f8aad-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"0b354b78644f8aad","duration":3330,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"67d44d689fa95ed97ad8bb0d3e753762649434cb9a64ff731786cdc979515618"}
|
||||||
BIN
.turbo/cache/0b354b78644f8aad.tar.zst
vendored
Normal file
BIN
.turbo/cache/0b354b78644f8aad.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/1a030577ec3e46e3-manifest.json
vendored
Normal file
1
.turbo/cache/1a030577ec3e46e3-manifest.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
.turbo/cache/1a030577ec3e46e3-meta.json
vendored
Normal file
1
.turbo/cache/1a030577ec3e46e3-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"1a030577ec3e46e3","duration":1256,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"67d44d689fa95ed97ad8bb0d3e753762649434cb9a64ff731786cdc979515618"}
|
||||||
BIN
.turbo/cache/1a030577ec3e46e3.tar.zst
vendored
Normal file
BIN
.turbo/cache/1a030577ec3e46e3.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/3bace58668d8c69c-manifest.json
vendored
Normal file
1
.turbo/cache/3bace58668d8c69c-manifest.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"files":{"packages/config/dist/index.js":{"size":3043,"mtime_nanos":1783254824143649550,"mode":420,"is_dir":false},"packages/config/dist/index.js.map":{"size":3214,"mtime_nanos":1783254824143422120,"mode":420,"is_dir":false},"packages/config/dist/index.d.ts":{"size":1874,"mtime_nanos":1783254824156792366,"mode":420,"is_dir":false},"packages/config/.turbo/turbo-build.log":{"size":102,"mtime_nanos":1783254824177792328,"mode":420,"is_dir":false},"packages/config/dist/index.d.ts.map":{"size":521,"mtime_nanos":1783254824156792366,"mode":420,"is_dir":false},"packages/config/dist":{"size":0,"mtime_nanos":0,"mode":0,"is_dir":true}},"order":["packages/config/.turbo/turbo-build.log","packages/config/dist","packages/config/dist/index.d.ts","packages/config/dist/index.d.ts.map","packages/config/dist/index.js","packages/config/dist/index.js.map"]}
|
||||||
1
.turbo/cache/3bace58668d8c69c-meta.json
vendored
Normal file
1
.turbo/cache/3bace58668d8c69c-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"3bace58668d8c69c","duration":1783,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"67d44d689fa95ed97ad8bb0d3e753762649434cb9a64ff731786cdc979515618"}
|
||||||
BIN
.turbo/cache/3bace58668d8c69c.tar.zst
vendored
Normal file
BIN
.turbo/cache/3bace58668d8c69c.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/51664cdd00a0048d-manifest.json
vendored
Normal file
1
.turbo/cache/51664cdd00a0048d-manifest.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
.turbo/cache/51664cdd00a0048d-meta.json
vendored
Normal file
1
.turbo/cache/51664cdd00a0048d-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"51664cdd00a0048d","duration":2814,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"abc4a2c6304f10abbf2d6c628ed6a63dbf9e6ca06fecaaea2935e4ea7f4ff660"}
|
||||||
BIN
.turbo/cache/51664cdd00a0048d.tar.zst
vendored
Normal file
BIN
.turbo/cache/51664cdd00a0048d.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/53573aa3334db733-manifest.json
vendored
Normal file
1
.turbo/cache/53573aa3334db733-manifest.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"files":{"packages/integration-auth/dist/hmac.test.js":{"size":953,"mtime_nanos":1783255052203378412,"mode":420,"is_dir":false},"packages/integration-auth/dist":{"size":0,"mtime_nanos":0,"mode":0,"is_dir":true},"packages/integration-auth/dist/hmac.d.ts.map":{"size":821,"mtime_nanos":1783255052199378419,"mode":420,"is_dir":false},"packages/integration-auth/.turbo/turbo-build.log":{"size":126,"mtime_nanos":1783255052243378339,"mode":420,"is_dir":false},"packages/integration-auth/dist/mtls.js":{"size":1604,"mtime_nanos":1783255052208378403,"mode":420,"is_dir":false},"packages/integration-auth/dist/hmac.js":{"size":2272,"mtime_nanos":1783255052181441322,"mode":420,"is_dir":false},"packages/integration-auth/dist/mtls.js.map":{"size":1048,"mtime_nanos":1783255052208378403,"mode":420,"is_dir":false},"packages/integration-auth/dist/index.d.ts.map":{"size":316,"mtime_nanos":1783255052217816303,"mode":420,"is_dir":false},"packages/integration-auth/dist/index.js.map":{"size":382,"mtime_nanos":1783255052216516404,"mode":420,"is_dir":false},"packages/integration-auth/dist/hmac.d.ts":{"size":1050,"mtime_nanos":1783255052199378419,"mode":420,"is_dir":false},"packages/integration-auth/dist/hmac.test.d.ts.map":{"size":112,"mtime_nanos":1783255052204378410,"mode":420,"is_dir":false},"packages/integration-auth/dist/hmac.test.d.ts":{"size":50,"mtime_nanos":1783255052205548416,"mode":420,"is_dir":false},"packages/integration-auth/dist/hmac.js.map":{"size":2198,"mtime_nanos":1783255052180273802,"mode":420,"is_dir":false},"packages/integration-auth/dist/hmac.test.js.map":{"size":744,"mtime_nanos":1783255052203378412,"mode":420,"is_dir":false},"packages/integration-auth/dist/index.d.ts":{"size":368,"mtime_nanos":1783255052217816303,"mode":420,"is_dir":false},"packages/integration-auth/dist/index.js":{"size":2061,"mtime_nanos":1783255052216799793,"mode":420,"is_dir":false},"packages/integration-auth/dist/mtls.d.ts":{"size":628,"mtime_nanos":1783255052210378399,"mode":420,"is_dir":false},"packages/integration-auth/dist/mtls.d.ts.map":{"size":370,"mtime_nanos":1783255052210378399,"mode":420,"is_dir":false}},"order":["packages/integration-auth/.turbo/turbo-build.log","packages/integration-auth/dist","packages/integration-auth/dist/hmac.d.ts","packages/integration-auth/dist/hmac.d.ts.map","packages/integration-auth/dist/hmac.js","packages/integration-auth/dist/hmac.js.map","packages/integration-auth/dist/hmac.test.d.ts","packages/integration-auth/dist/hmac.test.d.ts.map","packages/integration-auth/dist/hmac.test.js","packages/integration-auth/dist/hmac.test.js.map","packages/integration-auth/dist/index.d.ts","packages/integration-auth/dist/index.d.ts.map","packages/integration-auth/dist/index.js","packages/integration-auth/dist/index.js.map","packages/integration-auth/dist/mtls.d.ts","packages/integration-auth/dist/mtls.d.ts.map","packages/integration-auth/dist/mtls.js","packages/integration-auth/dist/mtls.js.map"]}
|
||||||
1
.turbo/cache/53573aa3334db733-meta.json
vendored
Normal file
1
.turbo/cache/53573aa3334db733-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"53573aa3334db733","duration":2278,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"abc4a2c6304f10abbf2d6c628ed6a63dbf9e6ca06fecaaea2935e4ea7f4ff660"}
|
||||||
BIN
.turbo/cache/53573aa3334db733.tar.zst
vendored
Normal file
BIN
.turbo/cache/53573aa3334db733.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/7138297b16f09c78-manifest.json
vendored
Normal file
1
.turbo/cache/7138297b16f09c78-manifest.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"files":{"packages/storage/dist/client.js.map":{"size":1685,"mtime_nanos":1783255052719377475,"mode":420,"is_dir":false},"packages/storage/dist/client.js":{"size":2298,"mtime_nanos":1783255052720940624,"mode":420,"is_dir":false},"packages/storage/dist/index.js":{"size":1654,"mtime_nanos":1783255052726484843,"mode":420,"is_dir":false},"packages/storage/dist/keys.test.d.ts":{"size":50,"mtime_nanos":1783255052728421552,"mode":420,"is_dir":false},"packages/storage/dist/config.d.ts":{"size":922,"mtime_nanos":1783255052716923925,"mode":420,"is_dir":false},"packages/storage/dist/index.d.ts.map":{"size":291,"mtime_nanos":1783255052726484843,"mode":420,"is_dir":false},"packages/storage/.turbo/turbo-build.log":{"size":108,"mtime_nanos":1783255052745377428,"mode":420,"is_dir":false},"packages/storage/dist/keys.test.d.ts.map":{"size":112,"mtime_nanos":1783255052728421552,"mode":420,"is_dir":false},"packages/storage/dist/config.d.ts.map":{"size":358,"mtime_nanos":1783255052715377483,"mode":420,"is_dir":false},"packages/storage/dist/client.d.ts.map":{"size":960,"mtime_nanos":1783255052722502344,"mode":420,"is_dir":false},"packages/storage/dist/config.js.map":{"size":967,"mtime_nanos":1783255052705824178,"mode":420,"is_dir":false},"packages/storage/dist/index.js.map":{"size":339,"mtime_nanos":1783255052726285013,"mode":420,"is_dir":false},"packages/storage/dist/client.d.ts":{"size":925,"mtime_nanos":1783255052723096764,"mode":420,"is_dir":false},"packages/storage/dist/config.js":{"size":1011,"mtime_nanos":1783255052705916208,"mode":420,"is_dir":false},"packages/storage/dist/keys.test.js":{"size":623,"mtime_nanos":1783255052728421552,"mode":420,"is_dir":false},"packages/storage/dist/index.d.ts":{"size":290,"mtime_nanos":1783255052726484843,"mode":420,"is_dir":false},"packages/storage/dist":{"size":0,"mtime_nanos":0,"mode":0,"is_dir":true},"packages/storage/dist/keys.test.js.map":{"size":518,"mtime_nanos":1783255052728371962,"mode":420,"is_dir":false}},"order":["packages/storage/.turbo/turbo-build.log","packages/storage/dist","packages/storage/dist/client.d.ts","packages/storage/dist/client.d.ts.map","packages/storage/dist/client.js","packages/storage/dist/client.js.map","packages/storage/dist/config.d.ts","packages/storage/dist/config.d.ts.map","packages/storage/dist/config.js","packages/storage/dist/config.js.map","packages/storage/dist/index.d.ts","packages/storage/dist/index.d.ts.map","packages/storage/dist/index.js","packages/storage/dist/index.js.map","packages/storage/dist/keys.test.d.ts","packages/storage/dist/keys.test.d.ts.map","packages/storage/dist/keys.test.js","packages/storage/dist/keys.test.js.map"]}
|
||||||
1
.turbo/cache/7138297b16f09c78-meta.json
vendored
Normal file
1
.turbo/cache/7138297b16f09c78-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"7138297b16f09c78","duration":2780,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"abc4a2c6304f10abbf2d6c628ed6a63dbf9e6ca06fecaaea2935e4ea7f4ff660"}
|
||||||
BIN
.turbo/cache/7138297b16f09c78.tar.zst
vendored
Normal file
BIN
.turbo/cache/7138297b16f09c78.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/7c83d574699fc347-manifest.json
vendored
Normal file
1
.turbo/cache/7c83d574699fc347-manifest.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"files":{"packages/auth/dist/password.js.map":{"size":404,"mtime_nanos":1783254823699793196,"mode":420,"is_dir":false},"packages/auth/dist":{"size":0,"mtime_nanos":0,"mode":0,"is_dir":true},"packages/auth/dist/tokens.d.ts.map":{"size":281,"mtime_nanos":1783254823716073291,"mode":420,"is_dir":false},"packages/auth/dist/recovery-codes.d.ts.map":{"size":306,"mtime_nanos":1783254823751018942,"mode":420,"is_dir":false},"packages/auth/dist/index.d.ts":{"size":1570,"mtime_nanos":1783254823800793012,"mode":420,"is_dir":false},"packages/auth/dist/username.d.ts.map":{"size":430,"mtime_nanos":1783254823731793138,"mode":420,"is_dir":false},"packages/auth/dist/username.js.map":{"size":2294,"mtime_nanos":1783254823728793143,"mode":420,"is_dir":false},"packages/auth/dist/totp.d.ts":{"size":269,"mtime_nanos":1783254823743793116,"mode":420,"is_dir":false},"packages/auth/dist/totp.js":{"size":683,"mtime_nanos":1783254823741793119,"mode":420,"is_dir":false},"packages/auth/dist/index.d.ts.map":{"size":1443,"mtime_nanos":1783254823800793012,"mode":420,"is_dir":false},"packages/auth/dist/recovery-codes.js":{"size":1089,"mtime_nanos":1783254823749679443,"mode":420,"is_dir":false},"packages/auth/dist/session.d.ts.map":{"size":300,"mtime_nanos":1783254823757744571,"mode":420,"is_dir":false},"packages/auth/dist/username.d.ts":{"size":442,"mtime_nanos":1783254823731793138,"mode":420,"is_dir":false},"packages/auth/dist/session.d.ts":{"size":334,"mtime_nanos":1783254823757986501,"mode":420,"is_dir":false},"packages/auth/dist/tokens.js.map":{"size":760,"mtime_nanos":1783254823712940372,"mode":420,"is_dir":false},"packages/auth/dist/recovery-codes.js.map":{"size":949,"mtime_nanos":1783254823749441483,"mode":420,"is_dir":false},"packages/auth/dist/index.js":{"size":4135,"mtime_nanos":1783254823782793045,"mode":420,"is_dir":false},"packages/auth/dist/password.js":{"size":482,"mtime_nanos":1783254823700699224,"mode":420,"is_dir":false},"packages/auth/dist/session.js.map":{"size":493,"mtime_nanos":1783254823754793096,"mode":420,"is_dir":false},"packages/auth/dist/username.js":{"size":2787,"mtime_nanos":1783254823729845437,"mode":420,"is_dir":false},"packages/auth/dist/password.d.ts.map":{"size":266,"mtime_nanos":1783254823706019293,"mode":420,"is_dir":false},"packages/auth/dist/tokens.d.ts":{"size":244,"mtime_nanos":1783254823716326991,"mode":420,"is_dir":false},"packages/auth/dist/index.js.map":{"size":824,"mtime_nanos":1783254823782793045,"mode":420,"is_dir":false},"packages/auth/dist/totp.d.ts.map":{"size":303,"mtime_nanos":1783254823742793118,"mode":420,"is_dir":false},"packages/auth/dist/session.js":{"size":672,"mtime_nanos":1783254823754793096,"mode":420,"is_dir":false},"packages/auth/dist/totp.js.map":{"size":569,"mtime_nanos":1783254823741793119,"mode":420,"is_dir":false},"packages/auth/.turbo/turbo-build.log":{"size":98,"mtime_nanos":1783254823836792947,"mode":420,"is_dir":false},"packages/auth/dist/recovery-codes.d.ts":{"size":264,"mtime_nanos":1783254823751270432,"mode":420,"is_dir":false},"packages/auth/dist/tokens.js":{"size":864,"mtime_nanos":1783254823713299411,"mode":420,"is_dir":false},"packages/auth/dist/password.d.ts":{"size":200,"mtime_nanos":1783254823706019293,"mode":420,"is_dir":false}},"order":["packages/auth/.turbo/turbo-build.log","packages/auth/dist","packages/auth/dist/index.d.ts","packages/auth/dist/index.d.ts.map","packages/auth/dist/index.js","packages/auth/dist/index.js.map","packages/auth/dist/password.d.ts","packages/auth/dist/password.d.ts.map","packages/auth/dist/password.js","packages/auth/dist/password.js.map","packages/auth/dist/recovery-codes.d.ts","packages/auth/dist/recovery-codes.d.ts.map","packages/auth/dist/recovery-codes.js","packages/auth/dist/recovery-codes.js.map","packages/auth/dist/session.d.ts","packages/auth/dist/session.d.ts.map","packages/auth/dist/session.js","packages/auth/dist/session.js.map","packages/auth/dist/tokens.d.ts","packages/auth/dist/tokens.d.ts.map","packages/auth/dist/tokens.js","packages/auth/dist/tokens.js.map","packages/auth/dist/totp.d.ts","packages/auth/dist/totp.d.ts.map","packages/auth/dist/totp.js","packages/auth/dist/totp.js.map","packages/auth/dist/username.d.ts","packages/auth/dist/username.d.ts.map","packages/auth/dist/username.js","packages/auth/dist/username.js.map"]}
|
||||||
1
.turbo/cache/7c83d574699fc347-meta.json
vendored
Normal file
1
.turbo/cache/7c83d574699fc347-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"7c83d574699fc347","duration":1442,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"67d44d689fa95ed97ad8bb0d3e753762649434cb9a64ff731786cdc979515618"}
|
||||||
BIN
.turbo/cache/7c83d574699fc347.tar.zst
vendored
Normal file
BIN
.turbo/cache/7c83d574699fc347.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/7ec080769e22b52e-manifest.json
vendored
Normal file
1
.turbo/cache/7ec080769e22b52e-manifest.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"files":{"packages/config/dist":{"size":0,"mtime_nanos":0,"mode":0,"is_dir":true},"packages/config/dist/index.js.map":{"size":3214,"mtime_nanos":1783255052195378426,"mode":420,"is_dir":false},"packages/config/.turbo/turbo-build.log":{"size":106,"mtime_nanos":1783255052255378317,"mode":420,"is_dir":false},"packages/config/dist/index.d.ts.map":{"size":521,"mtime_nanos":1783255052219805483,"mode":420,"is_dir":false},"packages/config/dist/index.d.ts":{"size":1874,"mtime_nanos":1783255052220051732,"mode":420,"is_dir":false},"packages/config/dist/index.js":{"size":3043,"mtime_nanos":1783255052196378425,"mode":420,"is_dir":false}},"order":["packages/config/.turbo/turbo-build.log","packages/config/dist","packages/config/dist/index.d.ts","packages/config/dist/index.d.ts.map","packages/config/dist/index.js","packages/config/dist/index.js.map"]}
|
||||||
1
.turbo/cache/7ec080769e22b52e-meta.json
vendored
Normal file
1
.turbo/cache/7ec080769e22b52e-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"7ec080769e22b52e","duration":2294,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"abc4a2c6304f10abbf2d6c628ed6a63dbf9e6ca06fecaaea2935e4ea7f4ff660"}
|
||||||
BIN
.turbo/cache/7ec080769e22b52e.tar.zst
vendored
Normal file
BIN
.turbo/cache/7ec080769e22b52e.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/83bc945bf697348a-manifest.json
vendored
Normal file
1
.turbo/cache/83bc945bf697348a-manifest.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
.turbo/cache/83bc945bf697348a-meta.json
vendored
Normal file
1
.turbo/cache/83bc945bf697348a-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"83bc945bf697348a","duration":17907,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"67d44d689fa95ed97ad8bb0d3e753762649434cb9a64ff731786cdc979515618"}
|
||||||
BIN
.turbo/cache/83bc945bf697348a.tar.zst
vendored
Normal file
BIN
.turbo/cache/83bc945bf697348a.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/8c5cbe4308e26227-manifest.json
vendored
Normal file
1
.turbo/cache/8c5cbe4308e26227-manifest.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
.turbo/cache/8c5cbe4308e26227-meta.json
vendored
Normal file
1
.turbo/cache/8c5cbe4308e26227-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"8c5cbe4308e26227","duration":1073,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"abc4a2c6304f10abbf2d6c628ed6a63dbf9e6ca06fecaaea2935e4ea7f4ff660"}
|
||||||
BIN
.turbo/cache/8c5cbe4308e26227.tar.zst
vendored
Normal file
BIN
.turbo/cache/8c5cbe4308e26227.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/95e8fc4f72d7869c-manifest.json
vendored
Normal file
1
.turbo/cache/95e8fc4f72d7869c-manifest.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"files":{"packages/scheduler/dist/index.js":{"size":2244,"mtime_nanos":1783254823897792836,"mode":420,"is_dir":false},"packages/scheduler/dist/scheduling.test.d.ts.map":{"size":124,"mtime_nanos":1783254823903792825,"mode":420,"is_dir":false},"packages/scheduler/dist/scheduling.test.js":{"size":1778,"mtime_nanos":1783254823903792825,"mode":420,"is_dir":false},"packages/scheduler/dist/index.js.map":{"size":414,"mtime_nanos":1783254823897792836,"mode":420,"is_dir":false},"packages/scheduler/dist/capacity.d.ts":{"size":1024,"mtime_nanos":1783254823885792858,"mode":420,"is_dir":false},"packages/scheduler/dist/types.d.ts":{"size":615,"mtime_nanos":1783254823857792909,"mode":420,"is_dir":false},"packages/scheduler/dist/index.d.ts":{"size":431,"mtime_nanos":1783254823898792834,"mode":420,"is_dir":false},"packages/scheduler/dist/capacity.js.map":{"size":2635,"mtime_nanos":1783254823878792871,"mode":420,"is_dir":false},"packages/scheduler/.turbo/turbo-build.log":{"size":108,"mtime_nanos":1783254823935792767,"mode":420,"is_dir":false},"packages/scheduler/dist":{"size":0,"mtime_nanos":0,"mode":0,"is_dir":true},"packages/scheduler/dist/index.d.ts.map":{"size":378,"mtime_nanos":1783254823898792834,"mode":420,"is_dir":false},"packages/scheduler/dist/select-node.js.map":{"size":939,"mtime_nanos":1783254823890792849,"mode":420,"is_dir":false},"packages/scheduler/dist/capacity.js":{"size":3044,"mtime_nanos":1783254823878792871,"mode":420,"is_dir":false},"packages/scheduler/dist/types.js.map":{"size":102,"mtime_nanos":1783254823853908348,"mode":420,"is_dir":false},"packages/scheduler/dist/scheduling.test.d.ts":{"size":56,"mtime_nanos":1783254823903792825,"mode":420,"is_dir":false},"packages/scheduler/dist/types.js":{"size":110,"mtime_nanos":1783254823853908348,"mode":420,"is_dir":false},"packages/scheduler/dist/select-node.d.ts":{"size":304,"mtime_nanos":1783254823892792845,"mode":420,"is_dir":false},"packages/scheduler/dist/capacity.d.ts.map":{"size":766,"mtime_nanos":1783254823885792858,"mode":420,"is_dir":false},"packages/scheduler/dist/types.d.ts.map":{"size":664,"mtime_nanos":1783254823857792909,"mode":420,"is_dir":false},"packages/scheduler/dist/select-node.d.ts.map":{"size":347,"mtime_nanos":1783254823892792845,"mode":420,"is_dir":false},"packages/scheduler/dist/scheduling.test.js.map":{"size":1650,"mtime_nanos":1783254823903792825,"mode":420,"is_dir":false},"packages/scheduler/dist/select-node.js":{"size":944,"mtime_nanos":1783254823891792847,"mode":420,"is_dir":false}},"order":["packages/scheduler/.turbo/turbo-build.log","packages/scheduler/dist","packages/scheduler/dist/capacity.d.ts","packages/scheduler/dist/capacity.d.ts.map","packages/scheduler/dist/capacity.js","packages/scheduler/dist/capacity.js.map","packages/scheduler/dist/index.d.ts","packages/scheduler/dist/index.d.ts.map","packages/scheduler/dist/index.js","packages/scheduler/dist/index.js.map","packages/scheduler/dist/scheduling.test.d.ts","packages/scheduler/dist/scheduling.test.d.ts.map","packages/scheduler/dist/scheduling.test.js","packages/scheduler/dist/scheduling.test.js.map","packages/scheduler/dist/select-node.d.ts","packages/scheduler/dist/select-node.d.ts.map","packages/scheduler/dist/select-node.js","packages/scheduler/dist/select-node.js.map","packages/scheduler/dist/types.d.ts","packages/scheduler/dist/types.d.ts.map","packages/scheduler/dist/types.js","packages/scheduler/dist/types.js.map"]}
|
||||||
1
.turbo/cache/95e8fc4f72d7869c-meta.json
vendored
Normal file
1
.turbo/cache/95e8fc4f72d7869c-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"95e8fc4f72d7869c","duration":1541,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"67d44d689fa95ed97ad8bb0d3e753762649434cb9a64ff731786cdc979515618"}
|
||||||
BIN
.turbo/cache/95e8fc4f72d7869c.tar.zst
vendored
Normal file
BIN
.turbo/cache/95e8fc4f72d7869c.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/a2830d8f7ca0f71c-manifest.json
vendored
Normal file
1
.turbo/cache/a2830d8f7ca0f71c-manifest.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"files":{"packages/metering/dist/metering.test.js.map":{"size":782,"mtime_nanos":1783254824041792575,"mode":420,"is_dir":false},"packages/metering/.turbo/turbo-build.log":{"size":106,"mtime_nanos":1783254824068792526,"mode":420,"is_dir":false},"packages/metering/dist/metering.test.d.ts":{"size":54,"mtime_nanos":1783254824042792573,"mode":420,"is_dir":false},"packages/metering/dist/index.js":{"size":1548,"mtime_nanos":1783254824029792597,"mode":420,"is_dir":false},"packages/metering/dist/metering.test.d.ts.map":{"size":120,"mtime_nanos":1783254824042792573,"mode":420,"is_dir":false},"packages/metering/dist":{"size":0,"mtime_nanos":0,"mode":0,"is_dir":true},"packages/metering/dist/metering.test.js":{"size":901,"mtime_nanos":1783254824041792575,"mode":420,"is_dir":false},"packages/metering/dist/index.d.ts":{"size":561,"mtime_nanos":1783254824037714265,"mode":420,"is_dir":false},"packages/metering/dist/index.d.ts.map":{"size":479,"mtime_nanos":1783254824036792584,"mode":420,"is_dir":false},"packages/metering/dist/index.js.map":{"size":1220,"mtime_nanos":1783254824029792597,"mode":420,"is_dir":false}},"order":["packages/metering/.turbo/turbo-build.log","packages/metering/dist","packages/metering/dist/index.d.ts","packages/metering/dist/index.d.ts.map","packages/metering/dist/index.js","packages/metering/dist/index.js.map","packages/metering/dist/metering.test.d.ts","packages/metering/dist/metering.test.d.ts.map","packages/metering/dist/metering.test.js","packages/metering/dist/metering.test.js.map"]}
|
||||||
1
.turbo/cache/a2830d8f7ca0f71c-meta.json
vendored
Normal file
1
.turbo/cache/a2830d8f7ca0f71c-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"a2830d8f7ca0f71c","duration":1674,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"67d44d689fa95ed97ad8bb0d3e753762649434cb9a64ff731786cdc979515618"}
|
||||||
BIN
.turbo/cache/a2830d8f7ca0f71c.tar.zst
vendored
Normal file
BIN
.turbo/cache/a2830d8f7ca0f71c.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/a30020bd73a840d7-manifest.json
vendored
Normal file
1
.turbo/cache/a30020bd73a840d7-manifest.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"files":{"packages/storage/.turbo/turbo-build.log":{"size":104,"mtime_nanos":1783254824603791555,"mode":420,"is_dir":false},"packages/storage/dist/index.js.map":{"size":339,"mtime_nanos":1783254824571791613,"mode":420,"is_dir":false},"packages/storage/dist/client.js.map":{"size":1685,"mtime_nanos":1783254824564791625,"mode":420,"is_dir":false},"packages/storage/dist/config.js":{"size":1011,"mtime_nanos":1783254824544080765,"mode":420,"is_dir":false},"packages/storage/dist/index.d.ts":{"size":290,"mtime_nanos":1783254824574588148,"mode":420,"is_dir":false},"packages/storage/dist/keys.test.js":{"size":623,"mtime_nanos":1783254824576753387,"mode":420,"is_dir":false},"packages/storage/dist/index.d.ts.map":{"size":291,"mtime_nanos":1783254824574382738,"mode":420,"is_dir":false},"packages/storage/dist/client.d.ts.map":{"size":960,"mtime_nanos":1783254824567791620,"mode":420,"is_dir":false},"packages/storage/dist":{"size":0,"mtime_nanos":0,"mode":0,"is_dir":true},"packages/storage/dist/client.js":{"size":2298,"mtime_nanos":1783254824565759240,"mode":420,"is_dir":false},"packages/storage/dist/config.d.ts.map":{"size":358,"mtime_nanos":1783254824557791638,"mode":420,"is_dir":false},"packages/storage/dist/index.js":{"size":1654,"mtime_nanos":1783254824571791613,"mode":420,"is_dir":false},"packages/storage/dist/keys.test.d.ts":{"size":50,"mtime_nanos":1783254824576791604,"mode":420,"is_dir":false},"packages/storage/dist/keys.test.d.ts.map":{"size":112,"mtime_nanos":1783254824576791604,"mode":420,"is_dir":false},"packages/storage/dist/config.d.ts":{"size":922,"mtime_nanos":1783254824558932792,"mode":420,"is_dir":false},"packages/storage/dist/client.d.ts":{"size":925,"mtime_nanos":1783254824567791620,"mode":420,"is_dir":false},"packages/storage/dist/config.js.map":{"size":967,"mtime_nanos":1783254824543943805,"mode":420,"is_dir":false},"packages/storage/dist/keys.test.js.map":{"size":518,"mtime_nanos":1783254824576584287,"mode":420,"is_dir":false}},"order":["packages/storage/.turbo/turbo-build.log","packages/storage/dist","packages/storage/dist/client.d.ts","packages/storage/dist/client.d.ts.map","packages/storage/dist/client.js","packages/storage/dist/client.js.map","packages/storage/dist/config.d.ts","packages/storage/dist/config.d.ts.map","packages/storage/dist/config.js","packages/storage/dist/config.js.map","packages/storage/dist/index.d.ts","packages/storage/dist/index.d.ts.map","packages/storage/dist/index.js","packages/storage/dist/index.js.map","packages/storage/dist/keys.test.d.ts","packages/storage/dist/keys.test.d.ts.map","packages/storage/dist/keys.test.js","packages/storage/dist/keys.test.js.map"]}
|
||||||
1
.turbo/cache/a30020bd73a840d7-meta.json
vendored
Normal file
1
.turbo/cache/a30020bd73a840d7-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"a30020bd73a840d7","duration":2209,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"67d44d689fa95ed97ad8bb0d3e753762649434cb9a64ff731786cdc979515618"}
|
||||||
BIN
.turbo/cache/a30020bd73a840d7.tar.zst
vendored
Normal file
BIN
.turbo/cache/a30020bd73a840d7.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/a480ca24eeac5ad4-manifest.json
vendored
Normal file
1
.turbo/cache/a480ca24eeac5ad4-manifest.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
.turbo/cache/a480ca24eeac5ad4-meta.json
vendored
Normal file
1
.turbo/cache/a480ca24eeac5ad4-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"a480ca24eeac5ad4","duration":2232,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"67d44d689fa95ed97ad8bb0d3e753762649434cb9a64ff731786cdc979515618"}
|
||||||
BIN
.turbo/cache/a480ca24eeac5ad4.tar.zst
vendored
Normal file
BIN
.turbo/cache/a480ca24eeac5ad4.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/b85ca2f9ca81bcb3-manifest.json
vendored
Normal file
1
.turbo/cache/b85ca2f9ca81bcb3-manifest.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"files":{"packages/integration-auth/dist":{"size":0,"mtime_nanos":0,"mode":0,"is_dir":true},"packages/integration-auth/dist/hmac.js.map":{"size":2198,"mtime_nanos":1783254824066513338,"mode":420,"is_dir":false},"packages/integration-auth/dist/mtls.d.ts":{"size":628,"mtime_nanos":1783254824092511382,"mode":420,"is_dir":false},"packages/integration-auth/dist/mtls.js.map":{"size":1048,"mtime_nanos":1783254824089792488,"mode":420,"is_dir":false},"packages/integration-auth/dist/hmac.test.d.ts":{"size":50,"mtime_nanos":1783254824086436383,"mode":420,"is_dir":false},"packages/integration-auth/dist/hmac.test.d.ts.map":{"size":112,"mtime_nanos":1783254824086436383,"mode":420,"is_dir":false},"packages/integration-auth/dist/hmac.js":{"size":2272,"mtime_nanos":1783254824066843698,"mode":420,"is_dir":false},"packages/integration-auth/dist/hmac.d.ts":{"size":1050,"mtime_nanos":1783254824080792504,"mode":420,"is_dir":false},"packages/integration-auth/dist/hmac.test.js":{"size":953,"mtime_nanos":1783254824084792497,"mode":420,"is_dir":false},"packages/integration-auth/dist/hmac.test.js.map":{"size":744,"mtime_nanos":1783254824084792497,"mode":420,"is_dir":false},"packages/integration-auth/dist/index.d.ts":{"size":368,"mtime_nanos":1783254824097792473,"mode":420,"is_dir":false},"packages/integration-auth/dist/index.d.ts.map":{"size":316,"mtime_nanos":1783254824097792473,"mode":420,"is_dir":false},"packages/integration-auth/dist/index.js":{"size":2061,"mtime_nanos":1783254824096792475,"mode":420,"is_dir":false},"packages/integration-auth/dist/index.js.map":{"size":382,"mtime_nanos":1783254824096792475,"mode":420,"is_dir":false},"packages/integration-auth/dist/mtls.js":{"size":1604,"mtime_nanos":1783254824090568502,"mode":420,"is_dir":false},"packages/integration-auth/dist/hmac.d.ts.map":{"size":821,"mtime_nanos":1783254824080792504,"mode":420,"is_dir":false},"packages/integration-auth/dist/mtls.d.ts.map":{"size":370,"mtime_nanos":1783254824091792484,"mode":420,"is_dir":false},"packages/integration-auth/.turbo/turbo-build.log":{"size":122,"mtime_nanos":1783254824115792441,"mode":420,"is_dir":false}},"order":["packages/integration-auth/.turbo/turbo-build.log","packages/integration-auth/dist","packages/integration-auth/dist/hmac.d.ts","packages/integration-auth/dist/hmac.d.ts.map","packages/integration-auth/dist/hmac.js","packages/integration-auth/dist/hmac.js.map","packages/integration-auth/dist/hmac.test.d.ts","packages/integration-auth/dist/hmac.test.d.ts.map","packages/integration-auth/dist/hmac.test.js","packages/integration-auth/dist/hmac.test.js.map","packages/integration-auth/dist/index.d.ts","packages/integration-auth/dist/index.d.ts.map","packages/integration-auth/dist/index.js","packages/integration-auth/dist/index.js.map","packages/integration-auth/dist/mtls.d.ts","packages/integration-auth/dist/mtls.d.ts.map","packages/integration-auth/dist/mtls.js","packages/integration-auth/dist/mtls.js.map"]}
|
||||||
1
.turbo/cache/b85ca2f9ca81bcb3-meta.json
vendored
Normal file
1
.turbo/cache/b85ca2f9ca81bcb3-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"b85ca2f9ca81bcb3","duration":1721,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"67d44d689fa95ed97ad8bb0d3e753762649434cb9a64ff731786cdc979515618"}
|
||||||
BIN
.turbo/cache/b85ca2f9ca81bcb3.tar.zst
vendored
Normal file
BIN
.turbo/cache/b85ca2f9ca81bcb3.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/bc1b6c014f0a15b7-manifest.json
vendored
Normal file
1
.turbo/cache/bc1b6c014f0a15b7-manifest.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"files":{"packages/catalog/dist/compatibility.js":{"size":1955,"mtime_nanos":1783255052308333652,"mode":420,"is_dir":false},"packages/catalog/dist/index.d.ts.map":{"size":383,"mtime_nanos":1783255052322408118,"mode":420,"is_dir":false},"packages/catalog/dist/modrinth.js":{"size":2292,"mtime_nanos":1783255052291723086,"mode":420,"is_dir":false},"packages/catalog/dist/compatibility.js.map":{"size":1649,"mtime_nanos":1783255052307378223,"mode":420,"is_dir":false},"packages/catalog/dist/compatibility.test.d.ts.map":{"size":130,"mtime_nanos":1783255052316378207,"mode":420,"is_dir":false},"packages/catalog/dist/modrinth.js.map":{"size":1972,"mtime_nanos":1783255052291723086,"mode":420,"is_dir":false},"packages/catalog/dist/compatibility.test.d.ts":{"size":59,"mtime_nanos":1783255052316378207,"mode":420,"is_dir":false},"packages/catalog/dist/index.js.map":{"size":343,"mtime_nanos":1783255052321378197,"mode":420,"is_dir":false},"packages/catalog/dist/compatibility.test.js":{"size":2546,"mtime_nanos":1783255052315378209,"mode":420,"is_dir":false},"packages/catalog/dist/modrinth.d.ts":{"size":1701,"mtime_nanos":1783255052299378237,"mode":420,"is_dir":false},"packages/catalog/dist/compatibility.test.js.map":{"size":1968,"mtime_nanos":1783255052315378209,"mode":420,"is_dir":false},"packages/catalog/dist/modrinth.d.ts.map":{"size":1722,"mtime_nanos":1783255052299378237,"mode":420,"is_dir":false},"packages/catalog/.turbo/turbo-build.log":{"size":108,"mtime_nanos":1783255052359378128,"mode":420,"is_dir":false},"packages/catalog/dist/index.d.ts":{"size":444,"mtime_nanos":1783255052322408118,"mode":420,"is_dir":false},"packages/catalog/dist":{"size":0,"mtime_nanos":0,"mode":0,"is_dir":true},"packages/catalog/dist/index.js":{"size":1772,"mtime_nanos":1783255052322408118,"mode":420,"is_dir":false},"packages/catalog/dist/compatibility.d.ts.map":{"size":570,"mtime_nanos":1783255052309378219,"mode":420,"is_dir":false},"packages/catalog/dist/compatibility.d.ts":{"size":645,"mtime_nanos":1783255052310780041,"mode":420,"is_dir":false}},"order":["packages/catalog/.turbo/turbo-build.log","packages/catalog/dist","packages/catalog/dist/compatibility.d.ts","packages/catalog/dist/compatibility.d.ts.map","packages/catalog/dist/compatibility.js","packages/catalog/dist/compatibility.js.map","packages/catalog/dist/compatibility.test.d.ts","packages/catalog/dist/compatibility.test.d.ts.map","packages/catalog/dist/compatibility.test.js","packages/catalog/dist/compatibility.test.js.map","packages/catalog/dist/index.d.ts","packages/catalog/dist/index.d.ts.map","packages/catalog/dist/index.js","packages/catalog/dist/index.js.map","packages/catalog/dist/modrinth.d.ts","packages/catalog/dist/modrinth.d.ts.map","packages/catalog/dist/modrinth.js","packages/catalog/dist/modrinth.js.map"]}
|
||||||
1
.turbo/cache/bc1b6c014f0a15b7-meta.json
vendored
Normal file
1
.turbo/cache/bc1b6c014f0a15b7-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"bc1b6c014f0a15b7","duration":2395,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"abc4a2c6304f10abbf2d6c628ed6a63dbf9e6ca06fecaaea2935e4ea7f4ff660"}
|
||||||
BIN
.turbo/cache/bc1b6c014f0a15b7.tar.zst
vendored
Normal file
BIN
.turbo/cache/bc1b6c014f0a15b7.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/d12676556f73d54d-manifest.json
vendored
Normal file
1
.turbo/cache/d12676556f73d54d-manifest.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"files":{"packages/database/.turbo/turbo-build.log":{"size":545,"mtime_nanos":1783255055195372981,"mode":420,"is_dir":false},"packages/database/dist":{"size":0,"mtime_nanos":0,"mode":0,"is_dir":true},"packages/database/dist/index.d.ts":{"size":991,"mtime_nanos":1783255055173955545,"mode":420,"is_dir":false},"packages/database/dist/index.d.ts.map":{"size":733,"mtime_nanos":1783255055172373023,"mode":420,"is_dir":false},"packages/database/dist/index.js":{"size":962,"mtime_nanos":1783255055158449838,"mode":420,"is_dir":false},"packages/database/dist/index.js.map":{"size":617,"mtime_nanos":1783255055158349198,"mode":420,"is_dir":false}},"order":["packages/database/.turbo/turbo-build.log","packages/database/dist","packages/database/dist/index.d.ts","packages/database/dist/index.d.ts.map","packages/database/dist/index.js","packages/database/dist/index.js.map"]}
|
||||||
1
.turbo/cache/d12676556f73d54d-meta.json
vendored
Normal file
1
.turbo/cache/d12676556f73d54d-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"d12676556f73d54d","duration":3058,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"abc4a2c6304f10abbf2d6c628ed6a63dbf9e6ca06fecaaea2935e4ea7f4ff660"}
|
||||||
BIN
.turbo/cache/d12676556f73d54d.tar.zst
vendored
Normal file
BIN
.turbo/cache/d12676556f73d54d.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/d572575f47998158-manifest.json
vendored
Normal file
1
.turbo/cache/d572575f47998158-manifest.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"files":{"packages/metering/dist/index.js":{"size":1548,"mtime_nanos":1783255051818492438,"mode":420,"is_dir":false},"packages/metering/dist/index.d.ts.map":{"size":479,"mtime_nanos":1783255051825379098,"mode":420,"is_dir":false},"packages/metering/.turbo/turbo-build.log":{"size":110,"mtime_nanos":1783255051898378966,"mode":420,"is_dir":false},"packages/metering/dist/metering.test.d.ts":{"size":54,"mtime_nanos":1783255051837379076,"mode":420,"is_dir":false},"packages/metering/dist":{"size":0,"mtime_nanos":0,"mode":0,"is_dir":true},"packages/metering/dist/metering.test.d.ts.map":{"size":120,"mtime_nanos":1783255051837379076,"mode":420,"is_dir":false},"packages/metering/dist/metering.test.js":{"size":901,"mtime_nanos":1783255051832379085,"mode":420,"is_dir":false},"packages/metering/dist/index.js.map":{"size":1220,"mtime_nanos":1783255051816379114,"mode":420,"is_dir":false},"packages/metering/dist/metering.test.js.map":{"size":782,"mtime_nanos":1783255051832379085,"mode":420,"is_dir":false},"packages/metering/dist/index.d.ts":{"size":561,"mtime_nanos":1783255051825379098,"mode":420,"is_dir":false}},"order":["packages/metering/.turbo/turbo-build.log","packages/metering/dist","packages/metering/dist/index.d.ts","packages/metering/dist/index.d.ts.map","packages/metering/dist/index.js","packages/metering/dist/index.js.map","packages/metering/dist/metering.test.d.ts","packages/metering/dist/metering.test.d.ts.map","packages/metering/dist/metering.test.js","packages/metering/dist/metering.test.js.map"]}
|
||||||
1
.turbo/cache/d572575f47998158-meta.json
vendored
Normal file
1
.turbo/cache/d572575f47998158-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"d572575f47998158","duration":1932,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"abc4a2c6304f10abbf2d6c628ed6a63dbf9e6ca06fecaaea2935e4ea7f4ff660"}
|
||||||
BIN
.turbo/cache/d572575f47998158.tar.zst
vendored
Normal file
BIN
.turbo/cache/d572575f47998158.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/e57573f49057e7f1-manifest.json
vendored
Normal file
1
.turbo/cache/e57573f49057e7f1-manifest.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
.turbo/cache/e57573f49057e7f1-meta.json
vendored
Normal file
1
.turbo/cache/e57573f49057e7f1-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"e57573f49057e7f1","duration":4583,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"67d44d689fa95ed97ad8bb0d3e753762649434cb9a64ff731786cdc979515618"}
|
||||||
BIN
.turbo/cache/e57573f49057e7f1.tar.zst
vendored
Normal file
BIN
.turbo/cache/e57573f49057e7f1.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/f065eda65a09cf0d-manifest.json
vendored
Normal file
1
.turbo/cache/f065eda65a09cf0d-manifest.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
.turbo/cache/f065eda65a09cf0d-meta.json
vendored
Normal file
1
.turbo/cache/f065eda65a09cf0d-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"f065eda65a09cf0d","duration":2291,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"67d44d689fa95ed97ad8bb0d3e753762649434cb9a64ff731786cdc979515618"}
|
||||||
BIN
.turbo/cache/f065eda65a09cf0d.tar.zst
vendored
Normal file
BIN
.turbo/cache/f065eda65a09cf0d.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/f0bf7376519f6918-manifest.json
vendored
Normal file
1
.turbo/cache/f0bf7376519f6918-manifest.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"files":{"packages/scheduler/dist/capacity.js":{"size":3044,"mtime_nanos":1783255052166378479,"mode":420,"is_dir":false},"packages/scheduler/dist/scheduling.test.js.map":{"size":1650,"mtime_nanos":1783255052196378425,"mode":420,"is_dir":false},"packages/scheduler/dist/scheduling.test.d.ts.map":{"size":124,"mtime_nanos":1783255052197378423,"mode":420,"is_dir":false},"packages/scheduler/dist/index.js":{"size":2244,"mtime_nanos":1783255052187378441,"mode":420,"is_dir":false},"packages/scheduler/.turbo/turbo-build.log":{"size":112,"mtime_nanos":1783255052223378375,"mode":420,"is_dir":false},"packages/scheduler/dist/scheduling.test.js":{"size":1778,"mtime_nanos":1783255052196378425,"mode":420,"is_dir":false},"packages/scheduler/dist/types.js.map":{"size":102,"mtime_nanos":1783255052146021760,"mode":420,"is_dir":false},"packages/scheduler/dist/types.js":{"size":110,"mtime_nanos":1783255052146621830,"mode":420,"is_dir":false},"packages/scheduler/dist/select-node.d.ts.map":{"size":347,"mtime_nanos":1783255052181811181,"mode":420,"is_dir":false},"packages/scheduler/dist/scheduling.test.d.ts":{"size":56,"mtime_nanos":1783255052197378423,"mode":420,"is_dir":false},"packages/scheduler/dist/types.d.ts":{"size":615,"mtime_nanos":1783255052153378502,"mode":420,"is_dir":false},"packages/scheduler/dist/index.d.ts":{"size":431,"mtime_nanos":1783255052188378440,"mode":420,"is_dir":false},"packages/scheduler/dist/select-node.js.map":{"size":939,"mtime_nanos":1783255052178378458,"mode":420,"is_dir":false},"packages/scheduler/dist/types.d.ts.map":{"size":664,"mtime_nanos":1783255052153378502,"mode":420,"is_dir":false},"packages/scheduler/dist":{"size":0,"mtime_nanos":0,"mode":0,"is_dir":true},"packages/scheduler/dist/capacity.d.ts":{"size":1024,"mtime_nanos":1783255052173378466,"mode":420,"is_dir":false},"packages/scheduler/dist/capacity.d.ts.map":{"size":766,"mtime_nanos":1783255052173378466,"mode":420,"is_dir":false},"packages/scheduler/dist/capacity.js.map":{"size":2635,"mtime_nanos":1783255052165378481,"mode":420,"is_dir":false},"packages/scheduler/dist/select-node.d.ts":{"size":304,"mtime_nanos":1783255052181811181,"mode":420,"is_dir":false},"packages/scheduler/dist/index.d.ts.map":{"size":378,"mtime_nanos":1783255052188378440,"mode":420,"is_dir":false},"packages/scheduler/dist/index.js.map":{"size":414,"mtime_nanos":1783255052187378441,"mode":420,"is_dir":false},"packages/scheduler/dist/select-node.js":{"size":944,"mtime_nanos":1783255052180273802,"mode":420,"is_dir":false}},"order":["packages/scheduler/.turbo/turbo-build.log","packages/scheduler/dist","packages/scheduler/dist/capacity.d.ts","packages/scheduler/dist/capacity.d.ts.map","packages/scheduler/dist/capacity.js","packages/scheduler/dist/capacity.js.map","packages/scheduler/dist/index.d.ts","packages/scheduler/dist/index.d.ts.map","packages/scheduler/dist/index.js","packages/scheduler/dist/index.js.map","packages/scheduler/dist/scheduling.test.d.ts","packages/scheduler/dist/scheduling.test.d.ts.map","packages/scheduler/dist/scheduling.test.js","packages/scheduler/dist/scheduling.test.js.map","packages/scheduler/dist/select-node.d.ts","packages/scheduler/dist/select-node.d.ts.map","packages/scheduler/dist/select-node.js","packages/scheduler/dist/select-node.js.map","packages/scheduler/dist/types.d.ts","packages/scheduler/dist/types.d.ts.map","packages/scheduler/dist/types.js","packages/scheduler/dist/types.js.map"]}
|
||||||
1
.turbo/cache/f0bf7376519f6918-meta.json
vendored
Normal file
1
.turbo/cache/f0bf7376519f6918-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"f0bf7376519f6918","duration":2258,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"abc4a2c6304f10abbf2d6c628ed6a63dbf9e6ca06fecaaea2935e4ea7f4ff660"}
|
||||||
BIN
.turbo/cache/f0bf7376519f6918.tar.zst
vendored
Normal file
BIN
.turbo/cache/f0bf7376519f6918.tar.zst
vendored
Normal file
Binary file not shown.
1
.turbo/cache/f1d80f0b8df92657-manifest.json
vendored
Normal file
1
.turbo/cache/f1d80f0b8df92657-manifest.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"files":{"packages/catalog/dist/index.d.ts":{"size":444,"mtime_nanos":1783254823962792718,"mode":420,"is_dir":false},"packages/catalog/dist/index.js":{"size":1772,"mtime_nanos":1783254823962617243,"mode":420,"is_dir":false},"packages/catalog/dist":{"size":0,"mtime_nanos":0,"mode":0,"is_dir":true},"packages/catalog/dist/modrinth.d.ts.map":{"size":1722,"mtime_nanos":1783254823942792755,"mode":420,"is_dir":false},"packages/catalog/dist/modrinth.js":{"size":2292,"mtime_nanos":1783254823937826478,"mode":420,"is_dir":false},"packages/catalog/dist/compatibility.test.js.map":{"size":1968,"mtime_nanos":1783254823956792730,"mode":420,"is_dir":false},"packages/catalog/.turbo/turbo-build.log":{"size":104,"mtime_nanos":1783254823991792666,"mode":420,"is_dir":false},"packages/catalog/dist/index.js.map":{"size":343,"mtime_nanos":1783254823961792720,"mode":420,"is_dir":false},"packages/catalog/dist/compatibility.js":{"size":1955,"mtime_nanos":1783254823948276246,"mode":420,"is_dir":false},"packages/catalog/dist/compatibility.test.d.ts":{"size":59,"mtime_nanos":1783254823957792727,"mode":420,"is_dir":false},"packages/catalog/dist/compatibility.d.ts":{"size":645,"mtime_nanos":1783254823951395755,"mode":420,"is_dir":false},"packages/catalog/dist/compatibility.test.js":{"size":2546,"mtime_nanos":1783254823957442534,"mode":420,"is_dir":false},"packages/catalog/dist/compatibility.d.ts.map":{"size":570,"mtime_nanos":1783254823950792740,"mode":420,"is_dir":false},"packages/catalog/dist/compatibility.js.map":{"size":1649,"mtime_nanos":1783254823948276246,"mode":420,"is_dir":false},"packages/catalog/dist/modrinth.d.ts":{"size":1701,"mtime_nanos":1783254823942792755,"mode":420,"is_dir":false},"packages/catalog/dist/index.d.ts.map":{"size":383,"mtime_nanos":1783254823962792718,"mode":420,"is_dir":false},"packages/catalog/dist/compatibility.test.d.ts.map":{"size":130,"mtime_nanos":1783254823957792727,"mode":420,"is_dir":false},"packages/catalog/dist/modrinth.js.map":{"size":1972,"mtime_nanos":1783254823937641058,"mode":420,"is_dir":false}},"order":["packages/catalog/.turbo/turbo-build.log","packages/catalog/dist","packages/catalog/dist/compatibility.d.ts","packages/catalog/dist/compatibility.d.ts.map","packages/catalog/dist/compatibility.js","packages/catalog/dist/compatibility.js.map","packages/catalog/dist/compatibility.test.d.ts","packages/catalog/dist/compatibility.test.d.ts.map","packages/catalog/dist/compatibility.test.js","packages/catalog/dist/compatibility.test.js.map","packages/catalog/dist/index.d.ts","packages/catalog/dist/index.d.ts.map","packages/catalog/dist/index.js","packages/catalog/dist/index.js.map","packages/catalog/dist/modrinth.d.ts","packages/catalog/dist/modrinth.d.ts.map","packages/catalog/dist/modrinth.js","packages/catalog/dist/modrinth.js.map"]}
|
||||||
1
.turbo/cache/f1d80f0b8df92657-meta.json
vendored
Normal file
1
.turbo/cache/f1d80f0b8df92657-meta.json
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"hash":"f1d80f0b8df92657","duration":1597,"sha":"27a3ec8244e70774e6f4673201397e2302c32dfe","dirty_hash":"67d44d689fa95ed97ad8bb0d3e753762649434cb9a64ff731786cdc979515618"}
|
||||||
BIN
.turbo/cache/f1d80f0b8df92657.tar.zst
vendored
Normal file
BIN
.turbo/cache/f1d80f0b8df92657.tar.zst
vendored
Normal file
Binary file not shown.
@@ -1,4 +1,4 @@
|
|||||||
import { Module } from '@nestjs/common';
|
import { forwardRef, Module } from '@nestjs/common';
|
||||||
import { Queue } from 'bullmq';
|
import { Queue } from 'bullmq';
|
||||||
import Redis from 'ioredis';
|
import Redis from 'ioredis';
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ import { SessionService } from './session.service';
|
|||||||
import { SsoService } from './sso.service';
|
import { SsoService } from './sso.service';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [AppConfigModule, BillingModule],
|
imports: [AppConfigModule, forwardRef(() => BillingModule)],
|
||||||
controllers: [AuthController, MeController],
|
controllers: [AuthController, MeController],
|
||||||
providers: [
|
providers: [
|
||||||
AuthService,
|
AuthService,
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { Module } from '@nestjs/common';
|
import { forwardRef, Module } from '@nestjs/common';
|
||||||
|
|
||||||
|
import { AuthModule } from '../auth/auth.module';
|
||||||
import { PrismaModule } from '../prisma/prisma.module';
|
import { PrismaModule } from '../prisma/prisma.module';
|
||||||
|
|
||||||
import { BillingController } from './billing.controller';
|
import { BillingController } from './billing.controller';
|
||||||
@@ -8,7 +9,7 @@ import { StripeWebhookController } from './stripe/stripe-webhook.controller';
|
|||||||
import { StripeWebhookService } from './stripe/stripe-webhook.service';
|
import { StripeWebhookService } from './stripe/stripe-webhook.service';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [PrismaModule],
|
imports: [PrismaModule, forwardRef(() => AuthModule)],
|
||||||
controllers: [BillingController, StripeWebhookController],
|
controllers: [BillingController, StripeWebhookController],
|
||||||
providers: [BillingService, StripeWebhookService],
|
providers: [BillingService, StripeWebhookService],
|
||||||
exports: [BillingService],
|
exports: [BillingService],
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ async function bootstrap(): Promise<void> {
|
|||||||
}),
|
}),
|
||||||
{
|
{
|
||||||
bufferLogs: true,
|
bufferLogs: true,
|
||||||
|
bodyParser: false,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -45,6 +46,9 @@ async function bootstrap(): Promise<void> {
|
|||||||
await app.register(websocket);
|
await app.register(websocket);
|
||||||
|
|
||||||
const fastify = app.getHttpAdapter().getInstance();
|
const fastify = app.getHttpAdapter().getInstance();
|
||||||
|
if (fastify.hasContentTypeParser('application/json')) {
|
||||||
|
fastify.removeContentTypeParser('application/json');
|
||||||
|
}
|
||||||
fastify.addContentTypeParser(
|
fastify.addContentTypeParser(
|
||||||
'application/json',
|
'application/json',
|
||||||
{ parseAs: 'string' },
|
{ parseAs: 'string' },
|
||||||
|
|||||||
12
package.json
12
package.json
@@ -6,17 +6,19 @@
|
|||||||
"node": ">=22"
|
"node": ">=22"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "turbo run dev",
|
"dev": "node scripts/run-with-env.mjs turbo run dev",
|
||||||
|
"dev:bg": "bash scripts/dev-bg.sh",
|
||||||
|
"dev:stop": "bash scripts/dev-stop.sh",
|
||||||
"dev:infra": "docker compose -f deploy/compose/compose.dev.yml --env-file .env up -d postgres redis minio minio-init mailpit",
|
"dev:infra": "docker compose -f deploy/compose/compose.dev.yml --env-file .env up -d postgres redis minio minio-init mailpit",
|
||||||
"build": "turbo run build",
|
"build": "turbo run build",
|
||||||
"lint": "turbo run lint",
|
"lint": "turbo run lint",
|
||||||
"typecheck": "turbo run typecheck",
|
"typecheck": "turbo run typecheck",
|
||||||
"test": "turbo run test",
|
"test": "turbo run test",
|
||||||
"db:generate": "pnpm --filter @hexahost/database db:generate",
|
"db:generate": "pnpm --filter @hexahost/database db:generate",
|
||||||
"db:migrate": "bash -c 'set -a && source .env && set +a && pnpm --filter @hexahost/database db:migrate'",
|
"db:migrate": "node scripts/run-with-env.mjs pnpm --filter @hexahost/database db:migrate",
|
||||||
"db:push": "bash -c 'set -a && source .env && set +a && pnpm --filter @hexahost/database db:push'",
|
"db:push": "node scripts/run-with-env.mjs pnpm --filter @hexahost/database db:push",
|
||||||
"bootstrap:admin": "bash -c 'set -a && source .env && set +a && pnpm --filter @hexahost/database bootstrap:admin'",
|
"bootstrap:admin": "pnpm --filter @hexahost/auth build && node scripts/run-with-env.mjs pnpm --filter @hexahost/database bootstrap:admin",
|
||||||
"db:seed": "bash -c 'set -a && source .env && set +a && pnpm --filter @hexahost/database db:seed'"
|
"db:seed": "node scripts/run-with-env.mjs pnpm --filter @hexahost/database db:seed"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"turbo": "^2.3.3",
|
"turbo": "^2.3.3",
|
||||||
|
|||||||
@@ -26,6 +26,9 @@ function parseArgs(argv: string[]): CliArgs {
|
|||||||
|
|
||||||
for (let i = 0; i < argv.length; i += 1) {
|
for (let i = 0; i < argv.length; i += 1) {
|
||||||
const key = argv[i];
|
const key = argv[i];
|
||||||
|
if (key === '--') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
const value = argv[i + 1];
|
const value = argv[i + 1];
|
||||||
if (key?.startsWith('--') && value) {
|
if (key?.startsWith('--') && value) {
|
||||||
args[key.slice(2)] = value;
|
args[key.slice(2)] = value;
|
||||||
@@ -63,6 +66,29 @@ async function ensurePlatformRoles(prisma: PrismaClient): Promise<void> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function ensureUniqueUsername(
|
||||||
|
prisma: PrismaClient,
|
||||||
|
baseUsername: string,
|
||||||
|
): Promise<string> {
|
||||||
|
let candidate = baseUsername;
|
||||||
|
let suffix = 0;
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
const existing = await prisma.user.findUnique({
|
||||||
|
where: { username: candidate },
|
||||||
|
select: { id: true },
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!existing) {
|
||||||
|
return candidate;
|
||||||
|
}
|
||||||
|
|
||||||
|
suffix += 1;
|
||||||
|
const suffixText = String(suffix);
|
||||||
|
candidate = `${baseUsername.slice(0, Math.max(1, 32 - suffixText.length))}${suffixText}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function main(): Promise<void> {
|
async function main(): Promise<void> {
|
||||||
const input = parseArgs(process.argv.slice(2));
|
const input = parseArgs(process.argv.slice(2));
|
||||||
const prisma = new PrismaClient();
|
const prisma = new PrismaClient();
|
||||||
@@ -111,6 +137,8 @@ async function main(): Promise<void> {
|
|||||||
username = generateUsernameFromEmail(input.email);
|
username = generateUsernameFromEmail(input.email);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
username = await ensureUniqueUsername(prisma, username);
|
||||||
|
|
||||||
const passwordHash = await hashPassword(input.password);
|
const passwordHash = await hashPassword(input.password);
|
||||||
|
|
||||||
const superAdminRole = await prisma.platformRole.findUniqueOrThrow({
|
const superAdminRole = await prisma.platformRole.findUniqueOrThrow({
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
"$schema": "https://json.schemastore.org/tsconfig",
|
"$schema": "https://json.schemastore.org/tsconfig",
|
||||||
"extends": "./base.json",
|
"extends": "./base.json",
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"composite": true,
|
|
||||||
"outDir": "./dist",
|
"outDir": "./dist",
|
||||||
"rootDir": "./src"
|
"rootDir": "./src"
|
||||||
},
|
},
|
||||||
|
|||||||
28
scripts/dev-bg.sh
Executable file
28
scripts/dev-bg.sh
Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||||
|
PID_FILE="$ROOT/.logs/dev.pid"
|
||||||
|
LOG_FILE="$ROOT/.logs/dev.log"
|
||||||
|
|
||||||
|
mkdir -p "$ROOT/.logs"
|
||||||
|
|
||||||
|
if [[ -f "$PID_FILE" ]] && kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then
|
||||||
|
echo "Dev server läuft bereits (PID $(cat "$PID_FILE"))."
|
||||||
|
echo "Log: $LOG_FILE"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Next.js Dev braucht einen sauberen .next-Ordner (Production-Build stört).
|
||||||
|
rm -rf "$ROOT/apps/web/.next"
|
||||||
|
|
||||||
|
# shellcheck source=scripts/load-env.sh
|
||||||
|
source "$ROOT/scripts/load-env.sh"
|
||||||
|
cd "$ROOT"
|
||||||
|
|
||||||
|
nohup pnpm turbo run dev >"$LOG_FILE" 2>&1 &
|
||||||
|
echo $! >"$PID_FILE"
|
||||||
|
|
||||||
|
echo "Dev server gestartet (PID $(cat "$PID_FILE"))."
|
||||||
|
echo "Log: $LOG_FILE"
|
||||||
|
echo "Web: http://localhost:3000"
|
||||||
34
scripts/dev-stop.sh
Executable file
34
scripts/dev-stop.sh
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||||||
|
PID_FILE="$ROOT/.logs/dev.pid"
|
||||||
|
|
||||||
|
if [[ -f "$PID_FILE" ]]; then
|
||||||
|
PID="$(cat "$PID_FILE")"
|
||||||
|
if kill -0 "$PID" 2>/dev/null; then
|
||||||
|
kill "$PID" 2>/dev/null || true
|
||||||
|
sleep 1
|
||||||
|
kill -0 "$PID" 2>/dev/null && kill -9 "$PID" 2>/dev/null || true
|
||||||
|
echo "Dev server gestoppt (PID $PID)."
|
||||||
|
else
|
||||||
|
echo "Prozess $PID läuft nicht mehr."
|
||||||
|
fi
|
||||||
|
rm -f "$PID_FILE"
|
||||||
|
else
|
||||||
|
echo "Kein Dev-Server-PID-File gefunden."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Turbo/Next/Nest Kindprozesse beenden (Ports 3000–3003 freigeben).
|
||||||
|
pkill -f "turbo run dev" 2>/dev/null || true
|
||||||
|
pkill -f "next dev" 2>/dev/null || true
|
||||||
|
pkill -f "nest start --watch" 2>/dev/null || true
|
||||||
|
pkill -f "tsx watch src/index.ts" 2>/dev/null || true
|
||||||
|
|
||||||
|
for port in 3000 3001 3002 3003; do
|
||||||
|
if command -v fuser >/dev/null 2>&1; then
|
||||||
|
fuser -k "${port}/tcp" 2>/dev/null || true
|
||||||
|
elif command -v lsof >/dev/null 2>&1; then
|
||||||
|
lsof -ti ":${port}" -sTCP:LISTEN 2>/dev/null | xargs -r kill -9 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
done
|
||||||
31
scripts/load-env.sh
Executable file
31
scripts/load-env.sh
Executable file
@@ -0,0 +1,31 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Loads variables from .env into the current shell via Node.
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||||
|
ENV_FILE="$ROOT/.env"
|
||||||
|
|
||||||
|
if [[ ! -f "$ENV_FILE" ]]; then
|
||||||
|
echo ".env nicht gefunden: $ENV_FILE" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
eval "$(
|
||||||
|
node --input-type=module -e "
|
||||||
|
import { readFileSync } from 'node:fs';
|
||||||
|
process.loadEnvFile('$ENV_FILE');
|
||||||
|
const content = readFileSync('$ENV_FILE', 'utf8');
|
||||||
|
for (const line of content.split('\n')) {
|
||||||
|
const trimmed = line.trim();
|
||||||
|
if (!trimmed || trimmed.startsWith('#')) continue;
|
||||||
|
const eq = trimmed.indexOf('=');
|
||||||
|
if (eq === -1) continue;
|
||||||
|
const key = trimmed.slice(0, eq).trim();
|
||||||
|
if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(key)) continue;
|
||||||
|
const value = process.env[key];
|
||||||
|
if (value !== undefined) {
|
||||||
|
process.stdout.write('export ' + key + '=' + JSON.stringify(value) + ';');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"
|
||||||
|
)"
|
||||||
25
scripts/run-with-env.mjs
Normal file
25
scripts/run-with-env.mjs
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import { spawnSync } from 'node:child_process';
|
||||||
|
import { existsSync } from 'node:fs';
|
||||||
|
import { resolve } from 'node:path';
|
||||||
|
|
||||||
|
const root = resolve(import.meta.dirname, '..');
|
||||||
|
const envFile = resolve(root, '.env');
|
||||||
|
|
||||||
|
if (existsSync(envFile)) {
|
||||||
|
process.loadEnvFile(envFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
const [command, ...args] = process.argv.slice(2);
|
||||||
|
|
||||||
|
if (!command) {
|
||||||
|
console.error('Usage: node scripts/run-with-env.mjs <command> [args...]');
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
const result = spawnSync(command, args, {
|
||||||
|
cwd: root,
|
||||||
|
stdio: 'inherit',
|
||||||
|
env: process.env,
|
||||||
|
});
|
||||||
|
|
||||||
|
process.exit(result.status ?? 1);
|
||||||
22
turbo.json
22
turbo.json
@@ -1,5 +1,26 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://turbo.build/schema.json",
|
"$schema": "https://turbo.build/schema.json",
|
||||||
|
"globalPassThroughEnv": [
|
||||||
|
"APP_*",
|
||||||
|
"API_*",
|
||||||
|
"DATABASE_URL",
|
||||||
|
"REDIS_URL",
|
||||||
|
"SESSION_SECRET",
|
||||||
|
"ENCRYPTION_KEY",
|
||||||
|
"SMTP_*",
|
||||||
|
"S3_*",
|
||||||
|
"NODE_*",
|
||||||
|
"LOG_LEVEL",
|
||||||
|
"BILLING_*",
|
||||||
|
"EDGE_*",
|
||||||
|
"GAME_*",
|
||||||
|
"MODRINTH_*",
|
||||||
|
"CURSEFORGE_*",
|
||||||
|
"WHMCS_*",
|
||||||
|
"RFC2136_*",
|
||||||
|
"DNS_*",
|
||||||
|
"TRAEFIK_*"
|
||||||
|
],
|
||||||
"tasks": {
|
"tasks": {
|
||||||
"build": {
|
"build": {
|
||||||
"dependsOn": ["^build"],
|
"dependsOn": ["^build"],
|
||||||
@@ -15,6 +36,7 @@
|
|||||||
"dependsOn": ["^build"]
|
"dependsOn": ["^build"]
|
||||||
},
|
},
|
||||||
"dev": {
|
"dev": {
|
||||||
|
"dependsOn": ["^build"],
|
||||||
"cache": false,
|
"cache": false,
|
||||||
"persistent": true
|
"persistent": true
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user