playcademy 0.33.1-beta.1 → 0.33.1-beta.2
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 +39 -24
- package/dist/bucket.js +1 -1
- package/dist/cli.js +2 -2
- package/dist/constants.js +1 -1
- package/dist/db.d.ts +11 -0
- package/dist/db.js +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.js +2 -2
- package/dist/runtime/dashboard-runtime/manifest.json +4 -4
- package/dist/runtime/game-runtime/index.js +3 -3
- package/dist/runtime/game-runtime/manifest.json +4 -4
- package/dist/utils.js +2 -2
- package/dist/version.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -52,7 +52,7 @@ Remove stored credentials.
|
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
54
|
playcademy logout
|
|
55
|
-
playcademy logout
|
|
55
|
+
playcademy logout work
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
#### `me`
|
|
@@ -91,24 +91,24 @@ Check your current developer status.
|
|
|
91
91
|
playcademy dev status
|
|
92
92
|
```
|
|
93
93
|
|
|
94
|
-
###
|
|
94
|
+
### Projects
|
|
95
95
|
|
|
96
|
-
#### `
|
|
96
|
+
#### `projects list`
|
|
97
97
|
|
|
98
|
-
List
|
|
98
|
+
List your deployed projects.
|
|
99
99
|
|
|
100
100
|
```bash
|
|
101
|
-
playcademy
|
|
101
|
+
playcademy projects list
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
-
#### `
|
|
104
|
+
#### `projects delete`
|
|
105
105
|
|
|
106
|
-
Delete a
|
|
106
|
+
Delete a project.
|
|
107
107
|
|
|
108
108
|
```bash
|
|
109
|
-
playcademy
|
|
110
|
-
playcademy
|
|
111
|
-
playcademy
|
|
109
|
+
playcademy projects delete <slug>
|
|
110
|
+
playcademy projects delete # Interactive selection
|
|
111
|
+
playcademy projects delete my-game -f # Skip confirmation
|
|
112
112
|
```
|
|
113
113
|
|
|
114
114
|
### Deployment
|
|
@@ -144,7 +144,7 @@ playcademy deploy --debug # Show debug info
|
|
|
144
144
|
- `-d, --description <desc>` - Description
|
|
145
145
|
- `-e, --emoji <emoji>` - Emoji icon
|
|
146
146
|
- `-b, --build <path>` - Path to frontend zip file
|
|
147
|
-
- `--env <env>` - Environment (`
|
|
147
|
+
- `--env <env>` - Environment (`local`, `staging`, or `production`)
|
|
148
148
|
- `--backend` - Deploy API routes
|
|
149
149
|
- `--no-backend` - Skip API routes
|
|
150
150
|
- `--dry-run` - Validate only
|
|
@@ -178,38 +178,53 @@ Or `playcademy.config.json`:
|
|
|
178
178
|
|
|
179
179
|
**Backend API Routes:**
|
|
180
180
|
|
|
181
|
-
Add custom API routes by creating
|
|
181
|
+
Add custom API routes by creating a `server/api/` directory:
|
|
182
182
|
|
|
183
183
|
```
|
|
184
184
|
my-game/
|
|
185
185
|
├── playcademy.config.js
|
|
186
186
|
├── dist/
|
|
187
187
|
│ └── game.zip
|
|
188
|
-
└──
|
|
189
|
-
└──
|
|
188
|
+
└── server/
|
|
189
|
+
└── api/
|
|
190
|
+
└── hello.ts # GET /api/hello
|
|
190
191
|
```
|
|
191
192
|
|
|
193
|
+
Set `integrations.customRoutes.directory` in your config to use a different routes directory.
|
|
194
|
+
|
|
192
195
|
Backend routes are automatically deployed with hosted games.
|
|
193
196
|
|
|
194
197
|
### Credential Storage
|
|
195
198
|
|
|
196
|
-
Credentials are stored in `~/.playcademy/auth.json
|
|
199
|
+
Credentials are stored in `~/.playcademy/auth.json`, separately for each environment:
|
|
197
200
|
|
|
198
201
|
```json
|
|
199
202
|
{
|
|
200
|
-
"
|
|
201
|
-
"
|
|
202
|
-
"
|
|
203
|
-
"email": "user@example.com",
|
|
204
|
-
"expiresAt": "2024-12-31T23:59:59Z"
|
|
203
|
+
"local": {
|
|
204
|
+
"default": null,
|
|
205
|
+
"profiles": {}
|
|
205
206
|
},
|
|
206
|
-
"
|
|
207
|
-
"
|
|
208
|
-
"token": "
|
|
207
|
+
"staging": {
|
|
208
|
+
"default": {
|
|
209
|
+
"token": "YOUR_TOKEN",
|
|
210
|
+
"tokenType": "session",
|
|
209
211
|
"userId": "user_123",
|
|
210
212
|
"email": "user@example.com",
|
|
211
213
|
"expiresAt": "2024-12-31T23:59:59Z"
|
|
214
|
+
},
|
|
215
|
+
"profiles": {
|
|
216
|
+
"work": {
|
|
217
|
+
"token": "WORK_TOKEN",
|
|
218
|
+
"tokenType": "session",
|
|
219
|
+
"userId": "user_123",
|
|
220
|
+
"email": "user@example.com",
|
|
221
|
+
"expiresAt": "2024-12-31T23:59:59Z"
|
|
222
|
+
}
|
|
212
223
|
}
|
|
224
|
+
},
|
|
225
|
+
"production": {
|
|
226
|
+
"default": null,
|
|
227
|
+
"profiles": {}
|
|
213
228
|
}
|
|
214
229
|
}
|
|
215
230
|
```
|
|
@@ -301,7 +316,7 @@ another object.
|
|
|
301
316
|
|
|
302
317
|
- `CI` - Set to `1` or `true` to disable interactive prompts
|
|
303
318
|
- `PLAYCADEMY_API_TOKEN` - API token for non-interactive authentication
|
|
304
|
-
- `PLAYCADEMY_ENV` - Environment: `staging
|
|
319
|
+
- `PLAYCADEMY_ENV` - Environment: `local`, `staging`, or `production` (default: `staging`)
|
|
305
320
|
- `PLAYCADEMY_BASE_URL` - Override API endpoint (default: based on `PLAYCADEMY_ENV`)
|
|
306
321
|
- `PLAYCADEMY_PROFILE` - Authentication profile to use (default: `default`)
|
|
307
322
|
- `PLAYCADEMY_CONFIG_PATH` - Path to a config file
|
package/dist/bucket.js
CHANGED
|
@@ -42,7 +42,7 @@ var GAME_API_ROUTES_DIRECTORY = `${GAME_SERVER_ROOT_DIRECTORY}/api`;
|
|
|
42
42
|
// ../better-auth/package.json
|
|
43
43
|
var package_default = {
|
|
44
44
|
name: "@playcademy/better-auth",
|
|
45
|
-
version: "0.0.26-beta.
|
|
45
|
+
version: "0.0.26-beta.2",
|
|
46
46
|
type: "module",
|
|
47
47
|
exports: {
|
|
48
48
|
"./server": {
|
package/dist/cli.js
CHANGED
|
@@ -1208,7 +1208,7 @@ var SAMPLE_BUCKET_FILENAME = "bucket.ts";
|
|
|
1208
1208
|
// ../better-auth/package.json
|
|
1209
1209
|
var package_default = {
|
|
1210
1210
|
name: "@playcademy/better-auth",
|
|
1211
|
-
version: "0.0.26-beta.
|
|
1211
|
+
version: "0.0.26-beta.2",
|
|
1212
1212
|
type: "module",
|
|
1213
1213
|
exports: {
|
|
1214
1214
|
"./server": {
|
|
@@ -3045,7 +3045,7 @@ import { existsSync as existsSync11, mkdirSync as mkdirSync5, readFileSync as re
|
|
|
3045
3045
|
import { join as join12 } from "node:path";
|
|
3046
3046
|
|
|
3047
3047
|
// src/version.ts
|
|
3048
|
-
var cliVersion = false ? "0.0.0-dev" : "0.33.1-beta.
|
|
3048
|
+
var cliVersion = false ? "0.0.0-dev" : "0.33.1-beta.2";
|
|
3049
3049
|
|
|
3050
3050
|
// src/lib/init/database.ts
|
|
3051
3051
|
var drizzleConfigTemplate = loadTemplateString("database/drizzle-config.ts");
|
package/dist/constants.js
CHANGED
package/dist/db.d.ts
CHANGED
|
@@ -400,6 +400,17 @@ declare function reportBaselineVerification(plan: DatabasePlan | null): void;
|
|
|
400
400
|
* @param schemaHash - The claimed snapshot hash the platform recorded.
|
|
401
401
|
*/
|
|
402
402
|
declare function reportPushBaselineRecorded(schemaHash: string): void;
|
|
403
|
+
/**
|
|
404
|
+
* The journal tag the claim is anchored at: everything up to and including
|
|
405
|
+
* it is recorded as already applied. Non-interactive runs must pass --tag.
|
|
406
|
+
*
|
|
407
|
+
* The picker shows evidence instead of asking for a guess: each entry's
|
|
408
|
+
* generation date, the platform's last deploy, and an annotation on
|
|
409
|
+
* entries generated after it (the likely-never-deployed teammate
|
|
410
|
+
* migrations). The default sits on the newest entry generated before the
|
|
411
|
+
* last deploy — never on the newest entry outright, which is the wrong
|
|
412
|
+
* answer whenever undeployed migrations exist.
|
|
413
|
+
*/
|
|
403
414
|
declare function pickBaselineTag(migrations: DeployMigration[], evidence: BaselineMigrationEvidence[] | null, lastDeploy: DeploymentStateResponse['lastDeploy'], environment: string, explicitTag: string | undefined): Promise<string>;
|
|
404
415
|
/**
|
|
405
416
|
* Build the migrate-mode claim: the chosen tag plus the complete journal
|
package/dist/db.js
CHANGED
|
@@ -2333,7 +2333,7 @@ var GAME_API_ROUTES_DIRECTORY = `${GAME_SERVER_ROOT_DIRECTORY}/api`;
|
|
|
2333
2333
|
// ../better-auth/package.json
|
|
2334
2334
|
var package_default = {
|
|
2335
2335
|
name: "@playcademy/better-auth",
|
|
2336
|
-
version: "0.0.26-beta.
|
|
2336
|
+
version: "0.0.26-beta.2",
|
|
2337
2337
|
type: "module",
|
|
2338
2338
|
exports: {
|
|
2339
2339
|
"./server": {
|
package/dist/index.d.ts
CHANGED
|
@@ -1480,6 +1480,12 @@ type IntegrationChangeDetectors = {
|
|
|
1480
1480
|
[K in keyof IntegrationsConfig]: IntegrationChangeDetector;
|
|
1481
1481
|
};
|
|
1482
1482
|
|
|
1483
|
+
/**
|
|
1484
|
+
* Stable machine-readable codes for deploy-gate refusals, surfaced in the
|
|
1485
|
+
* --json error envelope. A closed union so a typo'd slug is a type error,
|
|
1486
|
+
* never a silently shipped new code — extend here when a gate is added.
|
|
1487
|
+
*/
|
|
1488
|
+
type BlockedCode = 'blocked:baseline-required' | 'blocked:checksum-mismatch' | 'blocked:ledger-orphans' | 'blocked:out-of-order' | 'blocked:prune-secrets' | 'blocked:strategy-mismatch' | 'blocked:timeback-admin-required' | 'blocked:timeback-drift' | 'blocked:timeback-drift-check-failed' | 'blocked:version-rollback';
|
|
1483
1489
|
/**
|
|
1484
1490
|
* Local convenience cache for a deployed project (PLA-217 D9).
|
|
1485
1491
|
*
|
|
@@ -1489,12 +1495,6 @@ type IntegrationChangeDetectors = {
|
|
|
1489
1495
|
* server-managed state — the automatic seed-on-deploy adoption (D7), which
|
|
1490
1496
|
* then falls back to the manual `playcademy db baseline` path.
|
|
1491
1497
|
*/
|
|
1492
|
-
/**
|
|
1493
|
-
* Stable machine-readable codes for deploy-gate refusals, surfaced in the
|
|
1494
|
-
* --json error envelope. A closed union so a typo'd slug is a type error,
|
|
1495
|
-
* never a silently shipped new code — extend here when a gate is added.
|
|
1496
|
-
*/
|
|
1497
|
-
type BlockedCode = 'blocked:baseline-required' | 'blocked:checksum-mismatch' | 'blocked:ledger-orphans' | 'blocked:out-of-order' | 'blocked:prune-secrets' | 'blocked:strategy-mismatch' | 'blocked:timeback-admin-required' | 'blocked:timeback-drift' | 'blocked:timeback-drift-check-failed' | 'blocked:version-rollback';
|
|
1498
1498
|
interface DeployedGameInfo {
|
|
1499
1499
|
/** Interactive prompt default for the frontend zip path */
|
|
1500
1500
|
buildPath?: string;
|
package/dist/index.js
CHANGED
|
@@ -2345,7 +2345,7 @@ var SAMPLE_BUCKET_FILENAME = "bucket.ts";
|
|
|
2345
2345
|
// ../better-auth/package.json
|
|
2346
2346
|
var package_default = {
|
|
2347
2347
|
name: "@playcademy/better-auth",
|
|
2348
|
-
version: "0.0.26-beta.
|
|
2348
|
+
version: "0.0.26-beta.2",
|
|
2349
2349
|
type: "module",
|
|
2350
2350
|
exports: {
|
|
2351
2351
|
"./server": {
|
|
@@ -6487,7 +6487,7 @@ import { existsSync as existsSync11, mkdirSync as mkdirSync2, readFileSync as re
|
|
|
6487
6487
|
import { join as join12 } from "node:path";
|
|
6488
6488
|
|
|
6489
6489
|
// src/version.ts
|
|
6490
|
-
var cliVersion = false ? "0.0.0-dev" : "0.33.1-beta.
|
|
6490
|
+
var cliVersion = false ? "0.0.0-dev" : "0.33.1-beta.2";
|
|
6491
6491
|
|
|
6492
6492
|
// src/lib/init/database.ts
|
|
6493
6493
|
var drizzleConfigTemplate = loadTemplateString("database/drizzle-config.ts");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"cliVersion": "0.33.1-beta.
|
|
3
|
-
"sdkVersion": "0.21.1-beta.
|
|
4
|
-
"runtimeBuildId": "
|
|
5
|
-
"inputFingerprint": "
|
|
2
|
+
"cliVersion": "0.33.1-beta.2",
|
|
3
|
+
"sdkVersion": "0.21.1-beta.2",
|
|
4
|
+
"runtimeBuildId": "f950ec4256aa",
|
|
5
|
+
"inputFingerprint": "f950ec4256aaa17da2234326f2325b3e9fdd3414f776f3d67b6fd7d08db2def3",
|
|
6
6
|
"entry": "index.js"
|
|
7
7
|
}
|
|
@@ -14335,9 +14335,9 @@ var init_list = __esm({
|
|
|
14335
14335
|
// ../edge-play/src/game/lib/metadata.ts
|
|
14336
14336
|
function getRuntimeMetadata() {
|
|
14337
14337
|
return {
|
|
14338
|
-
cliVersion: true ? "0.33.1-beta.
|
|
14339
|
-
sdkVersion: true ? "0.21.1-beta.
|
|
14340
|
-
buildId: true ? "
|
|
14338
|
+
cliVersion: true ? "0.33.1-beta.2" : "0.0.0-dev",
|
|
14339
|
+
sdkVersion: true ? "0.21.1-beta.2" : "0.0.0-dev",
|
|
14340
|
+
buildId: true ? "f950ec4256aa" : "dev-source"
|
|
14341
14341
|
};
|
|
14342
14342
|
}
|
|
14343
14343
|
var init_metadata = __esm({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"cliVersion": "0.33.1-beta.
|
|
3
|
-
"sdkVersion": "0.21.1-beta.
|
|
4
|
-
"runtimeBuildId": "
|
|
5
|
-
"inputFingerprint": "
|
|
2
|
+
"cliVersion": "0.33.1-beta.2",
|
|
3
|
+
"sdkVersion": "0.21.1-beta.2",
|
|
4
|
+
"runtimeBuildId": "f950ec4256aa",
|
|
5
|
+
"inputFingerprint": "f950ec4256aaa17da2234326f2325b3e9fdd3414f776f3d67b6fd7d08db2def3",
|
|
6
6
|
"entry": "index.js"
|
|
7
7
|
}
|
package/dist/utils.js
CHANGED
|
@@ -397,7 +397,7 @@ var DASHBOARD_API_ROUTES_DIRECTORY = "api";
|
|
|
397
397
|
// ../better-auth/package.json
|
|
398
398
|
var package_default = {
|
|
399
399
|
name: "@playcademy/better-auth",
|
|
400
|
-
version: "0.0.26-beta.
|
|
400
|
+
version: "0.0.26-beta.2",
|
|
401
401
|
type: "module",
|
|
402
402
|
exports: {
|
|
403
403
|
"./server": {
|
|
@@ -2878,7 +2878,7 @@ import { existsSync as existsSync10, mkdirSync as mkdirSync2, writeFileSync as w
|
|
|
2878
2878
|
import { dirname as dirname4, join as join14 } from "node:path";
|
|
2879
2879
|
|
|
2880
2880
|
// src/version.ts
|
|
2881
|
-
var cliVersion = false ? "0.0.0-dev" : "0.33.1-beta.
|
|
2881
|
+
var cliVersion = false ? "0.0.0-dev" : "0.33.1-beta.2";
|
|
2882
2882
|
|
|
2883
2883
|
// src/lib/build/binary-resource.ts
|
|
2884
2884
|
function writeFileTree(baseDir, files) {
|
package/dist/version.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __pcCreateRequire } from 'node:module'; const require = __pcCreateRequire(import.meta.url);
|
|
2
2
|
|
|
3
3
|
// src/version.ts
|
|
4
|
-
var cliVersion = false ? "0.0.0-dev" : "0.33.1-beta.
|
|
4
|
+
var cliVersion = false ? "0.0.0-dev" : "0.33.1-beta.2";
|
|
5
5
|
export {
|
|
6
6
|
cliVersion
|
|
7
7
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "playcademy",
|
|
3
|
-
"version": "0.33.1-beta.
|
|
3
|
+
"version": "0.33.1-beta.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
57
|
"@inquirer/prompts": "^7.8.6",
|
|
58
|
-
"@playcademy/sdk": "0.21.1-beta.
|
|
58
|
+
"@playcademy/sdk": "0.21.1-beta.2",
|
|
59
59
|
"chokidar": "^4.0.3",
|
|
60
60
|
"colorette": "^2.0.20",
|
|
61
61
|
"commander": "^14.0.1",
|