@playcraft/common 0.0.2 → 0.0.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.
Files changed (54) hide show
  1. package/dist/auth/index.d.ts +1 -0
  2. package/dist/auth/index.d.ts.map +1 -1
  3. package/dist/auth/index.js +1 -0
  4. package/dist/auth/index.js.map +1 -1
  5. package/dist/auth/signature.d.ts +82 -0
  6. package/dist/auth/signature.d.ts.map +1 -0
  7. package/dist/auth/signature.js +154 -0
  8. package/dist/auth/signature.js.map +1 -0
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +1 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/mcp/index.d.ts +3 -0
  14. package/dist/mcp/index.d.ts.map +1 -0
  15. package/dist/mcp/index.js +2 -0
  16. package/dist/mcp/index.js.map +1 -0
  17. package/dist/mcp/tools.d.ts +29 -0
  18. package/dist/mcp/tools.d.ts.map +1 -0
  19. package/dist/mcp/tools.js +179 -0
  20. package/dist/mcp/tools.js.map +1 -0
  21. package/dist/messenger/server.d.ts.map +1 -1
  22. package/dist/messenger/server.js +7 -1
  23. package/dist/messenger/server.js.map +1 -1
  24. package/dist/messenger/types.d.ts +1 -2
  25. package/dist/messenger/types.d.ts.map +1 -1
  26. package/dist/sharedb/server.d.ts +7 -1
  27. package/dist/sharedb/server.d.ts.map +1 -1
  28. package/dist/sharedb/server.js +81 -21
  29. package/dist/sharedb/server.js.map +1 -1
  30. package/package.json +9 -5
  31. package/dist/auth/jwt.test.d.ts +0 -2
  32. package/dist/auth/jwt.test.d.ts.map +0 -1
  33. package/dist/auth/jwt.test.js +0 -13
  34. package/dist/auth/jwt.test.js.map +0 -1
  35. package/dist/messenger/server.test.d.ts +0 -2
  36. package/dist/messenger/server.test.d.ts.map +0 -1
  37. package/dist/messenger/server.test.js +0 -66
  38. package/dist/messenger/server.test.js.map +0 -1
  39. package/dist/models/converters.d.ts +0 -11
  40. package/dist/models/converters.d.ts.map +0 -1
  41. package/dist/models/converters.js +0 -25
  42. package/dist/models/converters.js.map +0 -1
  43. package/dist/models/converters.test.d.ts +0 -2
  44. package/dist/models/converters.test.d.ts.map +0 -1
  45. package/dist/models/converters.test.js +0 -18
  46. package/dist/models/converters.test.js.map +0 -1
  47. package/dist/models/scene.test.d.ts +0 -2
  48. package/dist/models/scene.test.d.ts.map +0 -1
  49. package/dist/models/scene.test.js +0 -12
  50. package/dist/models/scene.test.js.map +0 -1
  51. package/dist/sharedb/server.test.d.ts +0 -2
  52. package/dist/sharedb/server.test.d.ts.map +0 -1
  53. package/dist/sharedb/server.test.js +0 -59
  54. package/dist/sharedb/server.test.js.map +0 -1
@@ -18,8 +18,7 @@ export type McpCommandMessage = {
18
18
  tool: string;
19
19
  params: Record<string, unknown>;
20
20
  };
21
- };
22
- /** MCP result (Editor → Backend via POST /api/mcp/result; not broadcast) */
21
+ }; /** MCP result (Editor → Backend via POST /api/mcp/result; not broadcast) */
23
22
  export type McpResultMessage = {
24
23
  name: 'mcp:result';
25
24
  data: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/messenger/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,EAAE,eAAe,CAAC;IACxB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,gEAAgE;AAChE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,4EAA4E;AAC5E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/messenger/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,EAAE,eAAe,CAAC;IACxB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,gEAAgE;AAChE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC;CACH,CAAC,CAAA,4EAA4E;AAC9E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC"}
@@ -51,9 +51,15 @@ export declare class ShareDBRealtimeServer {
51
51
  */
52
52
  private loadProjectAssetsToCache;
53
53
  /**
54
- * 🔧 从缓存中获取 asset,并更新访问计数与时间戳
54
+ * 🔧 从缓存中获取 asset(需已知 contentHash),并更新访问计数与时间戳
55
55
  */
56
56
  private getAssetFromCache;
57
+ /**
58
+ * 🔧 缓存 asset 数据,使用 assetId:contentHash 作为 key;删除同一 assetId 的旧 hash 版本
59
+ */
60
+ private cacheAssetData;
61
+ /** 从当前连接上下文获取 projectId(暂无实现时返回 null,则不按项目缓存) */
62
+ private getProjectIdFromContext;
57
63
  private ensureDocExists;
58
64
  private handleConnection;
59
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/sharedb/server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAkB7B,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3D;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/D;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,qBAAqB;IAChC,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,GAAG,CAAC,CAAkB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAIhB;IAGL,OAAO,CAAC,UAAU,CAAoD;IACtE,OAAO,CAAC,iBAAiB,CAAyC;IAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,iBAAiB,CAA+C;gBAE5D,OAAO,GAAE,oBAAyB;IAY9C,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM;IAQ1B;;OAEG;IACH,mBAAmB,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI;IAmBpF,KAAK;IAuBL,yBAAyB;IACzB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,mBAAmB;IAiC3B,OAAO,CAAC,iBAAiB;IAiDzB,OAAO,CAAC,aAAa;IAQrB;;;OAGG;YACW,wBAAwB;IA6DtC;;OAEG;IACH,OAAO,CAAC,iBAAiB;YASX,eAAe;IA8H7B,OAAO,CAAC,gBAAgB;CA6LzB"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/sharedb/server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAoB7B,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3D;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/D;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,qBAAqB;IAChC,OAAO,CAAC,OAAO,CAAM;IACrB,OAAO,CAAC,GAAG,CAAC,CAAkB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAIhB;IAGL,OAAO,CAAC,UAAU,CAAoD;IACtE,OAAO,CAAC,iBAAiB,CAAyC;IAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,iBAAiB,CAA+C;gBAE5D,OAAO,GAAE,oBAAyB;IAY9C,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM;IAQ1B;;OAEG;IACH,mBAAmB,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI;IAmBpF,KAAK;IAuBL,yBAAyB;IACzB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,mBAAmB;IAiC3B,OAAO,CAAC,iBAAiB;IAiDzB,OAAO,CAAC,aAAa;IAQrB;;;OAGG;YACW,wBAAwB;IAiEtC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAmCtB,iDAAiD;IACjD,OAAO,CAAC,uBAAuB;YAIjB,eAAe;IAgJ7B,OAAO,CAAC,gBAAgB;CA6LzB"}
@@ -4,7 +4,7 @@ import WebSocketJSONStream from '@teamwork/websocket-json-stream';
4
4
  import { type as otTextType } from 'ot-text';
5
5
  import { LocalDevAuth } from '../auth/local-dev.js';
6
6
  import { SceneModel } from '../models/scene.js';
7
- import { HEADERS } from '../constants.js';
7
+ import { generateSignedHeaders } from '../auth/signature.js';
8
8
  ShareDB.types.register(otTextType);
9
9
  export class ShareDBRealtimeServer {
10
10
  backend;
@@ -188,12 +188,15 @@ export class ShareDBRealtimeServer {
188
188
  console.warn(`[sharedb] No backendUrl configured, cannot load assets for project ${projectId}`);
189
189
  return;
190
190
  }
191
- const internalSecret = this.options.internalSecret || process.env.EMIT_SECRET || 'dev-emit-secret-change-me';
191
+ const emitSecret = this.options.internalSecret || process.env.EMIT_SECRET || 'dev-emit-secret-change-me';
192
192
  const url = `${this.options.backendUrl}/api/projects/${projectId}/assets?branchId=local-branch`;
193
+ const path = `/api/projects/${projectId}/assets`;
193
194
  console.log(`[sharedb] 🚀 Batch loading assets for project ${projectId} from ${url}`);
194
195
  const startTime = Date.now();
196
+ // 生成签名 headers
197
+ const signedHeaders = generateSignedHeaders('GET', path, emitSecret, 'realtime');
195
198
  const res = await fetch(url, {
196
- headers: { [HEADERS.INTERNAL_SECRET]: internalSecret },
199
+ headers: signedHeaders,
197
200
  });
198
201
  if (!res.ok) {
199
202
  console.error(`[sharedb] Failed to batch load assets: status=${res.status}`);
@@ -228,17 +231,53 @@ export class ShareDBRealtimeServer {
228
231
  return loadPromise;
229
232
  }
230
233
  /**
231
- * 🔧 从缓存中获取 asset,并更新访问计数与时间戳
234
+ * 🔧 从缓存中获取 asset(需已知 contentHash),并更新访问计数与时间戳
232
235
  */
233
- getAssetFromCache(projectId, assetId) {
236
+ getAssetFromCache(projectId, cacheKey) {
234
237
  const projectCache = this.assetCache.get(projectId);
235
- const cached = projectCache?.get(assetId);
238
+ const cached = projectCache?.get(cacheKey);
236
239
  if (!cached)
237
240
  return null;
238
241
  cached.accessCount++;
239
242
  cached.timestamp = Date.now();
240
243
  return cached.data;
241
244
  }
245
+ /**
246
+ * 🔧 缓存 asset 数据,使用 assetId:contentHash 作为 key;删除同一 assetId 的旧 hash 版本
247
+ */
248
+ cacheAssetData(projectId, assetId, responseData) {
249
+ const { contentHash, ...data } = responseData;
250
+ if (!contentHash) {
251
+ console.warn(`[sharedb] No contentHash for asset ${assetId}, skipping cache`);
252
+ return data;
253
+ }
254
+ const cacheKey = `${assetId}:${contentHash}`;
255
+ let projectCache = this.assetCache.get(projectId);
256
+ if (!projectCache) {
257
+ projectCache = new Map();
258
+ this.assetCache.set(projectId, projectCache);
259
+ }
260
+ // 删除同一 assetId 的旧 hash 版本(防止内存泄漏)
261
+ for (const [key] of projectCache) {
262
+ if (key.startsWith(`${assetId}:`) && key !== cacheKey) {
263
+ projectCache.delete(key);
264
+ console.log(`[sharedb] Removed old cache: ${key}`);
265
+ }
266
+ }
267
+ const cached = {
268
+ data,
269
+ contentHash,
270
+ timestamp: Date.now(),
271
+ accessCount: 0,
272
+ };
273
+ projectCache.set(cacheKey, cached);
274
+ console.log(`[sharedb] Cached asset ${assetId} with hash ${contentHash.slice(0, 8)}`);
275
+ return data;
276
+ }
277
+ /** 从当前连接上下文获取 projectId(暂无实现时返回 null,则不按项目缓存) */
278
+ getProjectIdFromContext() {
279
+ return null;
280
+ }
242
281
  async ensureDocExists(collection, id, reason) {
243
282
  const docId = String(id);
244
283
  const doc = this.getCommonConn().get(collection, docId);
@@ -258,14 +297,9 @@ export class ShareDBRealtimeServer {
258
297
  if (collection === 'user_data') {
259
298
  initial = {};
260
299
  }
261
- // 🔧 性能优化:对于 assets,优先从缓存获取
300
+ // assets 在下方 backend 请求后通过 cacheAssetData 处理并缓存(key = assetId:contentHash)
262
301
  else if (collection === 'assets' && this.options.backendUrl) {
263
- // asset ID 中提取 projectId(假设格式为 <projectId>-<assetId> 或直接是 UUID)
264
- // 这里我们需要一个方法来识别 projectId,暂时先尝试批量加载
265
- // TODO: 需要一个更好的方法来识别 projectId
266
- // 目前的解决方案:尝试从 URL 或者第一次加载时记录 projectId
267
- // fallback: 使用单个请求
268
- console.log(`[sharedb] Asset cache miss for ${docId}, using individual request`);
302
+ // 留空,initial 由下方 backend fetch 后设置并可选缓存
269
303
  }
270
304
  if (initial == null && this.options.onDocCreate) {
271
305
  try {
@@ -280,24 +314,32 @@ export class ShareDBRealtimeServer {
280
314
  }
281
315
  if (initial == null && this.options.backendUrl) {
282
316
  try {
283
- const internalSecret = this.options.internalSecret || process.env.EMIT_SECRET || 'dev-emit-secret-change-me';
317
+ const emitSecret = this.options.internalSecret || process.env.EMIT_SECRET || 'dev-emit-secret-change-me';
284
318
  // 🔧 修复:对于 documents collection,调用 assets API 获取文件内容
285
319
  // documents 的 ID 即 asset 的 numeric_id(或 UUID),用于获取文件内容
286
320
  let url;
321
+ let path;
287
322
  if (collection === 'documents') {
288
323
  // documents 需要获取文件内容(文本)
289
324
  url = `${this.options.backendUrl}/api/assets/internal/${docId}/file`;
325
+ path = `/api/assets/internal/${docId}/file`;
290
326
  }
291
327
  else {
292
328
  // assets 和 scenes 获取元数据(JSON)
293
- url =
294
- collection === 'assets' || collection === 'scenes'
295
- ? `${this.options.backendUrl}/api/${collection}/internal/${docId}`
296
- : `${this.options.backendUrl}/api/${collection}/${docId}`;
329
+ if (collection === 'assets' || collection === 'scenes') {
330
+ url = `${this.options.backendUrl}/api/${collection}/internal/${docId}`;
331
+ path = `/api/${collection}/internal/${docId}`;
332
+ }
333
+ else {
334
+ url = `${this.options.backendUrl}/api/${collection}/${docId}`;
335
+ path = `/api/${collection}/${docId}`;
336
+ }
297
337
  }
298
338
  console.log(`[sharedb] Fetching initial data from ${url}`);
339
+ // 生成签名 headers
340
+ const signedHeaders = generateSignedHeaders('GET', path, emitSecret, 'realtime');
299
341
  const res = await fetch(url, {
300
- headers: { [HEADERS.INTERNAL_SECRET]: internalSecret },
342
+ headers: signedHeaders,
301
343
  });
302
344
  console.log(`[sharedb] Backend response: status=${res.status}, ok=${res.ok}`);
303
345
  if (res.ok) {
@@ -307,8 +349,26 @@ export class ShareDBRealtimeServer {
307
349
  console.log(`[sharedb] Backend returned text: ${initial ? initial.substring(0, 100) + '...' : 'empty'}`);
308
350
  }
309
351
  else {
310
- initial = await res.json();
311
- console.log(`[sharedb] Backend returned:`, initial ? `data with keys [${Object.keys(initial).join(', ')}]` : 'null');
352
+ const responseData = await res.json();
353
+ console.log(`[sharedb] Backend returned:`, responseData ? `data with keys [${Object.keys(responseData).join(', ')}]` : 'null');
354
+ // 🔧 assets:剥离 contentHash 后写入 doc;若有 projectId 则按 assetId:contentHash 缓存
355
+ if (collection === 'assets' && responseData && 'contentHash' in responseData) {
356
+ const projectId = this.getProjectIdFromContext();
357
+ initial = projectId
358
+ ? this.cacheAssetData(projectId, docId, responseData)
359
+ : (() => {
360
+ const { contentHash: _h, ...rest } = responseData;
361
+ return rest;
362
+ })();
363
+ }
364
+ else if (collection === 'scenes' && responseData && 'contentHash' in responseData) {
365
+ // 🔧 scenes:Backend 返回 contentHash,仅剥离不写入 doc
366
+ const { contentHash: _h, ...rest } = responseData;
367
+ initial = rest;
368
+ }
369
+ else {
370
+ initial = responseData;
371
+ }
312
372
  }
313
373
  }
314
374
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/sharedb/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/sharedb/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@playcraft/common",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -41,6 +41,10 @@
41
41
  "types": "./dist/storage/index.d.ts",
42
42
  "default": "./dist/storage/index.js"
43
43
  },
44
+ "./mcp": {
45
+ "types": "./dist/mcp/index.d.ts",
46
+ "default": "./dist/mcp/index.js"
47
+ },
44
48
  "./utils": {
45
49
  "types": "./dist/utils/index.d.ts",
46
50
  "default": "./dist/utils/index.js"
@@ -64,15 +68,15 @@
64
68
  "drizzle-orm": "^0.45.1",
65
69
  "jose": "^6.1.3",
66
70
  "ot-text": "^1.0.2",
67
- "pg": "^8.16.3",
71
+ "pg": "^8.18.0",
68
72
  "sharedb": "^5.2.2",
69
73
  "ws": "^8.19.0"
70
74
  },
71
75
  "devDependencies": {
72
- "@types/better-sqlite3": "^7.6.12",
73
- "@types/node": "^25.0.3",
76
+ "@types/better-sqlite3": "^7.6.13",
77
+ "@types/node": "^25.2.0",
74
78
  "@types/pg": "^8.16.0",
75
- "@types/ws": "^8.5.13",
79
+ "@types/ws": "^8.18.1",
76
80
  "typescript": "^5.9.3",
77
81
  "vitest": "^3.2.4"
78
82
  }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=jwt.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jwt.test.d.ts","sourceRoot":"","sources":["../../src/auth/jwt.test.ts"],"names":[],"mappings":""}
@@ -1,13 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { JwtService } from './jwt.js';
3
- describe('JwtService', () => {
4
- it('sign + verify roundtrip', async () => {
5
- const jwt = new JwtService({ secret: 'test-secret' });
6
- const token = await jwt.sign({ sub: 'u1', role: 'admin' }, { subject: 'u1', expiresIn: '1h' });
7
- const payload = await jwt.verify(token);
8
- expect(payload).not.toBeNull();
9
- expect(payload?.sub).toBe('u1');
10
- expect(payload?.role).toBe('admin');
11
- });
12
- });
13
- //# sourceMappingURL=jwt.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jwt.test.js","sourceRoot":"","sources":["../../src/auth/jwt.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/F,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=server.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.test.d.ts","sourceRoot":"","sources":["../../src/messenger/server.test.ts"],"names":[],"mappings":""}
@@ -1,66 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { MessengerServer, MessengerMessageType } from './server.js';
3
- describe('MessengerServer', () => {
4
- it('MessengerMessageType has expected keys', () => {
5
- expect(MessengerMessageType.AUTHENTICATE).toBe('authenticate');
6
- expect(MessengerMessageType.PROJECT_WATCH).toBe('project.watch');
7
- expect(MessengerMessageType.SELECTION).toBe('selection');
8
- expect(MessengerMessageType.CHAT_MSG).toBe('chat:msg');
9
- expect(MessengerMessageType.FS).toBe('fs');
10
- });
11
- it('createHealthHandler returns 200 with JSON status for GET /health', () => {
12
- return new Promise((resolve, reject) => {
13
- const server = new MessengerServer({});
14
- const handler = server.createHealthHandler();
15
- const req = { method: 'GET', url: '/health' };
16
- const res = {
17
- statusCode: 0,
18
- setHeader: () => { },
19
- end(body) {
20
- try {
21
- expect(this.statusCode).toBe(200);
22
- const data = JSON.parse(body);
23
- expect(data).toHaveProperty('uptime');
24
- expect(data.connections).toBe(0);
25
- expect(data).toHaveProperty('memory');
26
- expect(data).toHaveProperty('timestamp');
27
- server.close();
28
- resolve();
29
- }
30
- catch (e) {
31
- server.close();
32
- reject(e);
33
- }
34
- },
35
- };
36
- handler(req, res);
37
- });
38
- });
39
- it('createHealthHandler returns 404 for POST /health', () => {
40
- return new Promise((resolve, reject) => {
41
- const server = new MessengerServer({});
42
- const handler = server.createHealthHandler();
43
- const req = { method: 'POST', url: '/health' };
44
- const res = {
45
- statusCode: 0,
46
- end() {
47
- try {
48
- expect(this.statusCode).toBe(404);
49
- server.close();
50
- resolve();
51
- }
52
- catch (e) {
53
- server.close();
54
- reject(e);
55
- }
56
- },
57
- };
58
- handler(req, res);
59
- });
60
- });
61
- it('close() does not throw', () => {
62
- const server = new MessengerServer({});
63
- expect(() => server.close()).not.toThrow();
64
- });
65
- });
66
- //# sourceMappingURL=server.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.test.js","sourceRoot":"","sources":["../../src/messenger/server.test.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- export declare class IdConverter {
2
- /**
3
- * 将 UUID 转换为稳定的数字 ID(用于 PlayCanvas 编辑器兼容性)。
4
- *
5
- * 规则:
6
- * - 如果有 externalId 且是纯数字,优先使用 externalId
7
- * - 否则对 uuid 的前 8 个 hex 做哈希取模,得到稳定数字
8
- */
9
- static uuidToNumericId(uuid: string, externalId?: string | null): number;
10
- }
11
- //# sourceMappingURL=converters.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"converters.d.ts","sourceRoot":"","sources":["../../src/models/converters.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;IACtB;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;CAiBzE"}
@@ -1,25 +0,0 @@
1
- export class IdConverter {
2
- /**
3
- * 将 UUID 转换为稳定的数字 ID(用于 PlayCanvas 编辑器兼容性)。
4
- *
5
- * 规则:
6
- * - 如果有 externalId 且是纯数字,优先使用 externalId
7
- * - 否则对 uuid 的前 8 个 hex 做哈希取模,得到稳定数字
8
- */
9
- static uuidToNumericId(uuid, externalId) {
10
- if (externalId && /^\d+$/.test(externalId)) {
11
- return parseInt(externalId, 10);
12
- }
13
- const uuidStr = String(uuid);
14
- // 如果传入的本身是短数字字符串,直接当作数字 ID 使用(兼容部分调用链)
15
- if (!uuidStr.includes('-') && /^\d+$/.test(uuidStr) && uuidStr.length < 10) {
16
- const parsed = parseInt(uuidStr, 10);
17
- if (!isNaN(parsed) && parsed > 0)
18
- return parsed;
19
- }
20
- const hash = uuidStr.replace(/-/g, '').substring(0, 8);
21
- const numericId = parseInt(hash, 16) % 9999999;
22
- return numericId > 0 ? numericId : 1000000;
23
- }
24
- }
25
- //# sourceMappingURL=converters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../src/models/converters.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAW;IACtB;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,IAAY,EAAE,UAA0B;QAC7D,IAAI,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,OAAO,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAE7B,uCAAuC;QACvC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC3E,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;gBAAE,OAAO,MAAM,CAAC;QAClD,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;QAC/C,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7C,CAAC;CACF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=converters.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"converters.test.d.ts","sourceRoot":"","sources":["../../src/models/converters.test.ts"],"names":[],"mappings":""}
@@ -1,18 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { IdConverter } from './converters.js';
3
- describe('IdConverter.uuidToNumericId', () => {
4
- it('prefers numeric externalId', () => {
5
- expect(IdConverter.uuidToNumericId('00000000-0000-0000-0000-000000000000', '123')).toBe(123);
6
- });
7
- it('returns stable numeric id for uuid', () => {
8
- const id1 = IdConverter.uuidToNumericId('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa');
9
- const id2 = IdConverter.uuidToNumericId('aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa');
10
- expect(id1).toBe(id2);
11
- expect(typeof id1).toBe('number');
12
- expect(id1).toBeGreaterThan(0);
13
- });
14
- it('accepts short numeric strings', () => {
15
- expect(IdConverter.uuidToNumericId('999')).toBe(999);
16
- });
17
- });
18
- //# sourceMappingURL=converters.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"converters.test.js","sourceRoot":"","sources":["../../src/models/converters.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,GAAG,GAAG,WAAW,CAAC,eAAe,CAAC,sCAAsC,CAAC,CAAC;QAChF,MAAM,GAAG,GAAG,WAAW,CAAC,eAAe,CAAC,sCAAsC,CAAC,CAAC;QAChF,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=scene.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scene.test.d.ts","sourceRoot":"","sources":["../../src/models/scene.test.ts"],"names":[],"mappings":""}
@@ -1,12 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { SceneModel } from './scene.js';
3
- describe('SceneModel.getDefaultData', () => {
4
- it('creates minimal runnable scene data', () => {
5
- const data = SceneModel.getDefaultData('1');
6
- expect(data).toHaveProperty('settings');
7
- expect(data).toHaveProperty('entities');
8
- expect(data.entities).toHaveProperty('root');
9
- expect(data.entities.root).toHaveProperty('components');
10
- });
11
- });
12
- //# sourceMappingURL=scene.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scene.test.js","sourceRoot":"","sources":["../../src/models/scene.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,IAAI,GAAG,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=server.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.test.d.ts","sourceRoot":"","sources":["../../src/sharedb/server.test.ts"],"names":[],"mappings":""}