playcademy 0.23.1-beta.2 → 0.23.1-beta.4

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/dist/cli.js CHANGED
@@ -1065,7 +1065,7 @@ var SAMPLE_BUCKET_FILENAME = "bucket.ts";
1065
1065
  // ../better-auth/package.json
1066
1066
  var package_default = {
1067
1067
  name: "@playcademy/better-auth",
1068
- version: "0.0.16-beta.3",
1068
+ version: "0.0.16-beta.5",
1069
1069
  type: "module",
1070
1070
  exports: {
1071
1071
  "./server": {
@@ -2933,7 +2933,7 @@ import { existsSync as existsSync11, mkdirSync as mkdirSync5, readFileSync as re
2933
2933
  import { join as join13 } from "node:path";
2934
2934
 
2935
2935
  // src/version.ts
2936
- var cliVersion = false ? "0.0.0-dev" : "0.23.1-beta.2";
2936
+ var cliVersion = false ? "0.0.0-dev" : "0.23.1-beta.4";
2937
2937
 
2938
2938
  // src/lib/init/database.ts
2939
2939
  var drizzleConfigTemplate = loadTemplateString("database/drizzle-config.ts");
package/dist/constants.js CHANGED
@@ -20,7 +20,7 @@ var SAMPLE_BUCKET_FILENAME = "bucket.ts";
20
20
  // ../better-auth/package.json
21
21
  var package_default = {
22
22
  name: "@playcademy/better-auth",
23
- version: "0.0.16-beta.3",
23
+ version: "0.0.16-beta.5",
24
24
  type: "module",
25
25
  exports: {
26
26
  "./server": {
package/dist/db.js CHANGED
@@ -36,7 +36,7 @@ var DEFAULT_API_ROUTES_DIRECTORY = join2(SERVER_ROOT_DIRECTORY, "api");
36
36
  // ../better-auth/package.json
37
37
  var package_default = {
38
38
  name: "@playcademy/better-auth",
39
- version: "0.0.16-beta.3",
39
+ version: "0.0.16-beta.5",
40
40
  type: "module",
41
41
  exports: {
42
42
  "./server": {
package/dist/index.js CHANGED
@@ -326,7 +326,7 @@ var SAMPLE_BUCKET_FILENAME = "bucket.ts";
326
326
  // ../better-auth/package.json
327
327
  var package_default = {
328
328
  name: "@playcademy/better-auth",
329
- version: "0.0.16-beta.3",
329
+ version: "0.0.16-beta.5",
330
330
  type: "module",
331
331
  exports: {
332
332
  "./server": {
@@ -4196,7 +4196,7 @@ import { existsSync as existsSync9, mkdirSync as mkdirSync2, readFileSync as rea
4196
4196
  import { join as join13 } from "node:path";
4197
4197
 
4198
4198
  // src/version.ts
4199
- var cliVersion = false ? "0.0.0-dev" : "0.23.1-beta.2";
4199
+ var cliVersion = false ? "0.0.0-dev" : "0.23.1-beta.4";
4200
4200
 
4201
4201
  // src/lib/init/database.ts
4202
4202
  var drizzleConfigTemplate = loadTemplateString("database/drizzle-config.ts");
@@ -327,9 +327,9 @@ var init_routes = __esm({
327
327
  // ../edge-play/src/entry/metadata.ts
328
328
  function getRuntimeMetadata() {
329
329
  return {
330
- cliVersion: true ? "0.23.1-beta.2" : "0.0.0-dev",
331
- sdkVersion: true ? "0.11.1-beta.3" : "0.0.0-dev",
332
- buildId: true ? "ad39a961b54a" : "dev-source"
330
+ cliVersion: true ? "0.23.1-beta.4" : "0.0.0-dev",
331
+ sdkVersion: true ? "0.11.1-beta.5" : "0.0.0-dev",
332
+ buildId: true ? "7d5eaeb2b278" : "dev-source"
333
333
  };
334
334
  }
335
335
  var init_metadata = __esm({
@@ -4320,12 +4320,23 @@ function statusCodeToErrorCode(status) {
4320
4320
  }
4321
4321
  }
4322
4322
 
4323
+ // ../sdk/src/version.ts
4324
+ var SDK_VERSION = typeof BUILD_SDK_VERSION === "undefined" ? "0.0.0-dev" : BUILD_SDK_VERSION;
4325
+
4323
4326
  // ../sdk/src/server/request.ts
4324
- async function makeApiRequest(baseUrl, apiToken, endpoint, method = "GET", body) {
4327
+ async function makeApiRequest(opts) {
4328
+ const { baseUrl, apiToken, endpoint, method = "GET", body, gameOrigin, launchId } = opts;
4325
4329
  const url = `${baseUrl}${endpoint}`;
4326
4330
  const headers = new Headers();
4327
4331
  headers.set("Content-Type", "application/json");
4328
4332
  headers.set("x-api-key", apiToken);
4333
+ headers.set("x-playcademy-sdk-version", SDK_VERSION);
4334
+ if (gameOrigin) {
4335
+ headers.set("x-playcademy-game-origin", gameOrigin);
4336
+ }
4337
+ if (launchId) {
4338
+ headers.set("x-playcademy-launch-id", launchId);
4339
+ }
4329
4340
  const options = {
4330
4341
  method,
4331
4342
  headers
@@ -4355,11 +4366,13 @@ var PlaycademyClient = class _PlaycademyClient {
4355
4366
  // Private Properties
4356
4367
  // ─────────────────────────────────────────────────────────────────
4357
4368
  state;
4369
+ requestCtx = {};
4358
4370
  // ─────────────────────────────────────────────────────────────────
4359
4371
  // Constructor
4360
4372
  // ─────────────────────────────────────────────────────────────────
4361
- constructor(state) {
4373
+ constructor(state, requestCtx) {
4362
4374
  this.state = state;
4375
+ this.requestCtx = requestCtx ?? {};
4363
4376
  }
4364
4377
  // ─────────────────────────────────────────────────────────────────
4365
4378
  // Static Methods
@@ -4404,6 +4417,17 @@ var PlaycademyClient = class _PlaycademyClient {
4404
4417
  return client;
4405
4418
  }
4406
4419
  // ─────────────────────────────────────────────────────────────────
4420
+ // Per-Request Scoping
4421
+ // ─────────────────────────────────────────────────────────────────
4422
+ /**
4423
+ * Creates a request-scoped client that shares this client's config
4424
+ * but carries per-request context (launchId, gameOrigin) for outbound
4425
+ * API calls. Safe for concurrent use — each wrapper has its own context.
4426
+ */
4427
+ forRequest(ctx) {
4428
+ return new _PlaycademyClient(this.state, ctx);
4429
+ }
4430
+ // ─────────────────────────────────────────────────────────────────
4407
4431
  // Private Utilities
4408
4432
  // ─────────────────────────────────────────────────────────────────
4409
4433
  /**
@@ -4431,7 +4455,15 @@ var PlaycademyClient = class _PlaycademyClient {
4431
4455
  * @protected
4432
4456
  */
4433
4457
  async request(path, method = "GET", body) {
4434
- return makeApiRequest(this.state.baseUrl, this.state.apiKey, path, method, body);
4458
+ return makeApiRequest({
4459
+ baseUrl: this.state.baseUrl,
4460
+ apiToken: this.state.apiKey,
4461
+ endpoint: path,
4462
+ method,
4463
+ body,
4464
+ gameOrigin: this.requestCtx.gameOrigin,
4465
+ launchId: this.requestCtx.launchId
4466
+ });
4435
4467
  }
4436
4468
  // ─────────────────────────────────────────────────────────────────
4437
4469
  // Public Getters
@@ -4474,11 +4506,19 @@ async function verifyGameToken(gameToken, options) {
4474
4506
  );
4475
4507
  }
4476
4508
  try {
4509
+ const headers = {
4510
+ "Content-Type": "application/json",
4511
+ "x-playcademy-sdk-version": SDK_VERSION
4512
+ };
4513
+ if (options?.gameOrigin) {
4514
+ headers["x-playcademy-game-origin"] = options.gameOrigin;
4515
+ }
4516
+ if (options?.launchId) {
4517
+ headers["x-playcademy-launch-id"] = options.launchId;
4518
+ }
4477
4519
  const response = await fetch(`${baseUrl}/api/games/verify`, {
4478
4520
  method: "POST",
4479
- headers: {
4480
- "Content-Type": "application/json"
4481
- },
4521
+ headers,
4482
4522
  body: JSON.stringify({ token: gameToken })
4483
4523
  });
4484
4524
  if (!response.ok) {
@@ -4567,7 +4607,7 @@ function registerCors(app) {
4567
4607
  credentials: true,
4568
4608
  // Required for cookies/sessions (e.g., Better Auth)
4569
4609
  allowMethods: ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"],
4570
- allowHeaders: ["Content-Type", "Authorization"]
4610
+ allowHeaders: ["Content-Type", "Authorization", "x-playcademy-launch-id"]
4571
4611
  // exposeHeaders: ['set-auth-token'],
4572
4612
  })
4573
4613
  );
@@ -4591,7 +4631,12 @@ function registerSdkInit(app, config) {
4591
4631
  config
4592
4632
  });
4593
4633
  }
4594
- c.set("sdk", await sdkPromise);
4634
+ const sharedClient = await sdkPromise;
4635
+ const sdk = sharedClient.forRequest({
4636
+ launchId: c.req.header("x-playcademy-launch-id"),
4637
+ gameOrigin: new URL(c.req.url).origin
4638
+ });
4639
+ c.set("sdk", sdk);
4595
4640
  await next();
4596
4641
  });
4597
4642
  }
@@ -4601,7 +4646,11 @@ function registerPlaycademyUser(app) {
4601
4646
  if (authHeader?.startsWith("Bearer ")) {
4602
4647
  const token = authHeader.slice(7);
4603
4648
  try {
4604
- const result = await verifyGameToken(token);
4649
+ const result = await verifyGameToken(token, {
4650
+ baseUrl: c.env.PLAYCADEMY_BASE_URL,
4651
+ gameOrigin: new URL(c.req.url).origin,
4652
+ launchId: c.req.header("x-playcademy-launch-id")
4653
+ });
4605
4654
  c.set("playcademyUser", result.user);
4606
4655
  } catch {
4607
4656
  }
@@ -1,7 +1,7 @@
1
1
  {
2
- "cliVersion": "0.23.1-beta.2",
3
- "sdkVersion": "0.11.1-beta.3",
4
- "runtimeBuildId": "ad39a961b54a",
5
- "inputFingerprint": "ad39a961b54af09a7c01b917e105d2e0957f1491f282d39be4153f7ebf0ee9da",
2
+ "cliVersion": "0.23.1-beta.4",
3
+ "sdkVersion": "0.11.1-beta.5",
4
+ "runtimeBuildId": "7d5eaeb2b278",
5
+ "inputFingerprint": "7d5eaeb2b278725682f1c68697c84cff88ed9044219b3ef6a66483d207d0029e",
6
6
  "entry": "index.js"
7
7
  }
package/dist/utils.js CHANGED
@@ -359,7 +359,7 @@ var DEFAULT_API_ROUTES_DIRECTORY = join2(SERVER_ROOT_DIRECTORY, "api");
359
359
  // ../better-auth/package.json
360
360
  var package_default = {
361
361
  name: "@playcademy/better-auth",
362
- version: "0.0.16-beta.3",
362
+ version: "0.0.16-beta.5",
363
363
  type: "module",
364
364
  exports: {
365
365
  "./server": {
@@ -2485,7 +2485,7 @@ import { existsSync as existsSync9, mkdirSync as mkdirSync2, writeFileSync as wr
2485
2485
  import { dirname as dirname4, join as join14 } from "node:path";
2486
2486
 
2487
2487
  // src/version.ts
2488
- var cliVersion = false ? "0.0.0-dev" : "0.23.1-beta.2";
2488
+ var cliVersion = false ? "0.0.0-dev" : "0.23.1-beta.4";
2489
2489
 
2490
2490
  // src/lib/build/binary-resource.ts
2491
2491
  function writeFileTree(baseDir, files) {
package/dist/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // src/version.ts
2
- var cliVersion = false ? "0.0.0-dev" : "0.23.1-beta.2";
2
+ var cliVersion = false ? "0.0.0-dev" : "0.23.1-beta.4";
3
3
  export {
4
4
  cliVersion
5
5
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "playcademy",
3
- "version": "0.23.1-beta.2",
3
+ "version": "0.23.1-beta.4",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {