@playdrop/playdrop-cli 0.17.4 → 0.17.14

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 (81) hide show
  1. package/README.md +12 -0
  2. package/config/client-meta.json +4 -4
  3. package/dist/apps/build.d.ts +2 -1
  4. package/dist/apps/build.js +6 -2
  5. package/dist/apps/index.d.ts +2 -3
  6. package/dist/apps/index.js +17 -49
  7. package/dist/apps/loadCheck.d.ts +3 -1
  8. package/dist/apps/loadCheck.js +123 -64
  9. package/dist/apps/publishingRuntime.d.ts +18 -0
  10. package/dist/apps/publishingRuntime.js +111 -0
  11. package/dist/apps/runtimeSyntax.d.ts +7 -0
  12. package/dist/apps/runtimeSyntax.js +154 -0
  13. package/dist/apps/serverBuild.d.ts +3 -3
  14. package/dist/apps/serverBuild.js +8 -43
  15. package/dist/apps/serverSdk.d.ts +23 -0
  16. package/dist/apps/serverSdk.js +157 -0
  17. package/dist/apps/upload.d.ts +9 -3
  18. package/dist/apps/upload.js +71 -25
  19. package/dist/apps/validate.d.ts +2 -1
  20. package/dist/apps/validate.js +3 -1
  21. package/dist/assetSpecs.js +2 -0
  22. package/dist/commandContext.js +34 -10
  23. package/dist/commands/build.js +3 -1
  24. package/dist/commands/create.js +35 -16
  25. package/dist/commands/dev.js +11 -0
  26. package/dist/commands/devGameServer.d.ts +8 -0
  27. package/dist/commands/devGameServer.js +12 -9
  28. package/dist/commands/devServer.d.ts +1 -0
  29. package/dist/commands/devServer.js +21 -3
  30. package/dist/commands/source.d.ts +11 -3
  31. package/dist/commands/source.js +82 -14
  32. package/dist/commands/taskCaptureSession.d.ts +1 -1
  33. package/dist/commands/taskCaptureSession.js +1 -1
  34. package/dist/commands/upload-content.js +15 -12
  35. package/dist/commands/upload.d.ts +2 -9
  36. package/dist/commands/upload.js +5 -21
  37. package/dist/commands/validate.js +1 -1
  38. package/dist/commands/worker/classification.d.ts +1 -0
  39. package/dist/commands/worker/classification.js +57 -0
  40. package/dist/commands/worker/game-server-infra.d.ts +6 -0
  41. package/dist/commands/worker/game-server-infra.js +10 -0
  42. package/dist/commands/worker/game-source-git.d.ts +9 -1
  43. package/dist/commands/worker/game-source-git.js +65 -19
  44. package/dist/commands/worker/generation.d.ts +4 -0
  45. package/dist/commands/worker/generation.js +70 -7
  46. package/dist/commands/worker.d.ts +1 -1
  47. package/dist/commands/worker.js +57 -17
  48. package/dist/environment.d.ts +1 -0
  49. package/dist/environment.js +7 -0
  50. package/dist/index.js +10 -2
  51. package/dist/playwright.d.ts +6 -4
  52. package/dist/playwright.js +24 -9
  53. package/dist/proceduralValidation.d.ts +16 -0
  54. package/dist/proceduralValidation.js +227 -0
  55. package/dist/proceduralValidationBrowser.d.mts +3 -0
  56. package/dist/proceduralValidationBrowser.mjs +67 -0
  57. package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts.map +1 -1
  58. package/node_modules/@playdrop/api-client/dist/domains/apps.js +11 -1
  59. package/node_modules/@playdrop/api-client/dist/domains/chat.d.ts +6 -1
  60. package/node_modules/@playdrop/api-client/dist/domains/chat.d.ts.map +1 -1
  61. package/node_modules/@playdrop/api-client/dist/domains/chat.js +13 -1
  62. package/node_modules/@playdrop/config/client-meta.json +4 -4
  63. package/node_modules/@playdrop/procedural/dist/index.d.ts +201 -0
  64. package/node_modules/@playdrop/procedural/dist/index.d.ts.map +1 -0
  65. package/node_modules/@playdrop/procedural/dist/index.js +763 -0
  66. package/node_modules/@playdrop/procedural/package.json +36 -0
  67. package/node_modules/@playdrop/types/dist/agent-task-classification.d.ts +68 -0
  68. package/node_modules/@playdrop/types/dist/agent-task-classification.d.ts.map +1 -0
  69. package/node_modules/@playdrop/types/dist/agent-task-classification.js +96 -0
  70. package/node_modules/@playdrop/types/dist/api.d.ts +39 -4
  71. package/node_modules/@playdrop/types/dist/api.d.ts.map +1 -1
  72. package/node_modules/@playdrop/types/dist/chat.d.ts +7 -1
  73. package/node_modules/@playdrop/types/dist/chat.d.ts.map +1 -1
  74. package/node_modules/@playdrop/types/dist/index.d.ts +1 -0
  75. package/node_modules/@playdrop/types/dist/index.d.ts.map +1 -1
  76. package/node_modules/@playdrop/types/dist/index.js +2 -0
  77. package/node_modules/@playdrop/types/dist/social.d.ts +20 -0
  78. package/node_modules/@playdrop/types/dist/social.d.ts.map +1 -1
  79. package/node_modules/@playdrop/types/dist/version.d.ts +2 -0
  80. package/node_modules/@playdrop/types/dist/version.d.ts.map +1 -1
  81. package/package.json +7 -4
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertProceduralAssetIsValid = assertProceduralAssetIsValid;
4
+ const procedural_1 = require("@playdrop/procedural");
5
+ const types_1 = require("@playdrop/types");
6
+ const esbuild_1 = require("esbuild");
7
+ const promises_1 = require("node:fs/promises");
8
+ const node_http_1 = require("node:http");
9
+ const node_path_1 = require("node:path");
10
+ const playwright_1 = require("./playwright");
11
+ const MODULE_TIMEOUT_MS = 30000;
12
+ let browserValidatorBundle;
13
+ async function resolveInputAsset(client, reference) {
14
+ const ref = (0, types_1.parseContentVersionRef)(reference);
15
+ if (!ref || ref.kind !== "asset")
16
+ throw new Error(`Expected an exact asset revision, received ${reference}`);
17
+ const { asset } = await client.fetchAssetBySlug(ref.creatorUsername, ref.name);
18
+ let version = asset.currentVersion?.revision === ref.revision ? asset.currentVersion : undefined;
19
+ for (let offset = 0; !version; offset += 100) {
20
+ const page = await client.listAssetVersions(ref.creatorUsername, ref.name, { limit: 100, offset });
21
+ version = page.versions.find((candidate) => candidate.revision === ref.revision);
22
+ if (!version && (page.versions.length < 100 || page.pagination?.hasMore === false))
23
+ break;
24
+ }
25
+ if (!version)
26
+ throw new Error(`Asset revision ${reference} was not found or is not accessible`);
27
+ const entries = version.fileManifest?.files;
28
+ if (!Array.isArray(entries))
29
+ throw new Error(`Asset revision ${reference} has no file manifest`);
30
+ const files = entries;
31
+ const primary = files.find((file) => file.role === (version.primaryRole ?? "primary"));
32
+ if (!primary?.url)
33
+ throw new Error(`Asset revision ${reference} is missing its primary file URL`);
34
+ return {
35
+ reference,
36
+ title: asset.displayName,
37
+ creator: asset.creatorUsername,
38
+ category: asset.category,
39
+ subcategory: version.subcategory,
40
+ format: version.format,
41
+ assetSpec: version.assetSpecVersionRef ?? null,
42
+ previewUrl: files.find((file) => file.role === "preview")?.url ?? null,
43
+ primary: { url: primary.url, contentType: primary.contentType ?? version.primaryContentType ?? null },
44
+ };
45
+ }
46
+ function loadBrowserValidator() {
47
+ browserValidatorBundle ?? (browserValidatorBundle = (0, esbuild_1.build)({
48
+ entryPoints: [(0, node_path_1.join)(__dirname, "proceduralValidationBrowser.mjs")],
49
+ bundle: true, format: "esm", platform: "browser", target: "es2022",
50
+ external: ["three"], write: false, logLevel: "silent",
51
+ }).then((result) => result.outputFiles[0].contents));
52
+ return browserValidatorBundle;
53
+ }
54
+ async function runModule(input) {
55
+ const [primary, validator] = await Promise.all([(0, promises_1.readFile)(input.primaryPath), loadBrowserValidator()]);
56
+ const threeRoot = (0, node_path_1.dirname)((0, node_path_1.dirname)(require.resolve("three")));
57
+ const assetOrigins = [...new Set(input.assets.map((asset) => new URL(asset.primary.url).origin))].join(" ");
58
+ const csp = [
59
+ "sandbox allow-scripts allow-downloads", "default-src 'none'",
60
+ "script-src 'self' 'unsafe-inline' blob:",
61
+ `connect-src 'self' ${assetOrigins}`, `img-src 'self' data: blob: ${assetOrigins}`,
62
+ "style-src 'self' 'unsafe-inline'", "worker-src blob:", "base-uri 'none'", "form-action 'none'",
63
+ ].join("; ");
64
+ // A real loopback document gives Chromium the correct network address space.
65
+ // Routing a synthetic document blocks native local asset requests from the opaque sandbox.
66
+ const server = (0, node_http_1.createServer)(async (request, response) => {
67
+ try {
68
+ const url = new URL(request.url ?? "/", origin);
69
+ response.setHeader("Access-Control-Allow-Origin", "*");
70
+ if (url.pathname === "/") {
71
+ response.writeHead(200, { "Content-Type": "text/html", "Content-Security-Policy": csp });
72
+ response.end(`<!doctype html><title>Procedural validation</title><script type="importmap">${JSON.stringify(importMap)}</script>`);
73
+ return;
74
+ }
75
+ if (url.href === primaryUrl || url.pathname === "/validator.mjs") {
76
+ // The creator's published module is served unchanged, never bundled or rewritten.
77
+ response.writeHead(200, { "Content-Type": "text/javascript" });
78
+ response.end(url.href === primaryUrl ? primary : validator);
79
+ return;
80
+ }
81
+ const vendorPrefix = "/vendor/three/0.183.2/";
82
+ if (url.pathname.startsWith(vendorPrefix)) {
83
+ const relativePath = decodeURIComponent(url.pathname.slice(vendorPrefix.length));
84
+ const sourceRoot = relativePath.startsWith("addons/") ? (0, node_path_1.join)(threeRoot, "examples", "jsm") : (0, node_path_1.join)(threeRoot, "build");
85
+ const sourcePath = (0, node_path_1.resolve)(sourceRoot, relativePath.replace(/^addons\//, ""));
86
+ if (sourcePath.startsWith(`${sourceRoot}${node_path_1.sep}`)) {
87
+ const bytes = await (0, promises_1.readFile)(sourcePath).catch(() => null);
88
+ if (bytes) {
89
+ response.writeHead(200, { "Content-Type": "text/javascript" });
90
+ response.end(bytes);
91
+ return;
92
+ }
93
+ }
94
+ }
95
+ response.writeHead(404, { "Content-Type": "text/plain" });
96
+ response.end("Resource is not provided by the standalone procedural viewer");
97
+ }
98
+ catch (error) {
99
+ response.writeHead(500, { "Content-Type": "text/plain" });
100
+ response.end(error instanceof Error ? error.message : String(error));
101
+ }
102
+ });
103
+ await new Promise((resolve, reject) => {
104
+ server.once("error", reject);
105
+ server.listen(0, "127.0.0.1", resolve);
106
+ });
107
+ const origin = `http://127.0.0.1:${server.address().port}`;
108
+ const primaryUrl = `${origin}/primary/${encodeURIComponent((0, node_path_1.basename)(input.primaryPath))}`;
109
+ const threeBase = `${origin}/vendor/three/0.183.2`;
110
+ // Keep the same import map and opaque sandbox as the hosted asset renderer.
111
+ const importMap = { imports: {
112
+ three: `${threeBase}/three.module.min.js`,
113
+ "three/addons/": `${threeBase}/addons/`,
114
+ "three/examples/jsm/": `${threeBase}/addons/`,
115
+ } };
116
+ try {
117
+ await (0, playwright_1.withBrowserValidationPage)(async ({ browser, page }) => {
118
+ await page.goto(origin, { waitUntil: "domcontentloaded", timeout: MODULE_TIMEOUT_MS });
119
+ let timeout;
120
+ let closingBrowser;
121
+ try {
122
+ const browserInput = { ...input, primaryPath: primaryUrl };
123
+ const result = await Promise.race([
124
+ page.evaluate(`import(${JSON.stringify(`${origin}/validator.mjs`)}).then(({ validateProceduralBrowser }) => validateProceduralBrowser(${JSON.stringify(browserInput)}))`),
125
+ new Promise((_resolve, reject) => {
126
+ timeout = setTimeout(() => {
127
+ reject(new Error("Module validation exceeded 30 seconds. Remove infinite loops or expensive work from module initialization, create(), controls, animations, and dispose()."));
128
+ // Browser control remains responsive even when the asset's renderer thread is stuck.
129
+ closingBrowser = browser.close();
130
+ }, MODULE_TIMEOUT_MS);
131
+ }),
132
+ ]);
133
+ if (!result.valid)
134
+ throw new Error(result.errors.join("; "));
135
+ }
136
+ finally {
137
+ clearTimeout(timeout);
138
+ await closingBrowser;
139
+ }
140
+ }, { viewport: { width: 256, height: 256 }, serviceWorkers: "block" });
141
+ }
142
+ finally {
143
+ await new Promise((resolve, reject) => {
144
+ server.close((error) => error ? reject(error) : resolve());
145
+ server.closeAllConnections();
146
+ });
147
+ }
148
+ }
149
+ /** The shared publication check used by task preflight, game, asset and pack uploads. */
150
+ async function assertProceduralAssetIsValid(task, input) {
151
+ if (task.subcategory !== "procedural" && !(task.category === "MODEL_3D" && task.format === "CUSTOM"))
152
+ return;
153
+ const label = `Procedural asset "${task.name}" (${task.cataloguePath})`;
154
+ try {
155
+ if (task.category !== "MODEL_3D" || task.subcategory !== "procedural" || task.format !== "CUSTOM") {
156
+ throw new Error('Set category to "MODEL_3D", subcategory to "procedural", and format to "CUSTOM"');
157
+ }
158
+ for (const role of (0, types_1.getRequiredModel3DFileRoles)("CUSTOM")) {
159
+ const path = task.filePaths[role];
160
+ if (!path)
161
+ throw new Error(`files.${role} is required`);
162
+ const file = await (0, promises_1.stat)(path).catch(() => null);
163
+ if (!file?.isFile() || file.size === 0)
164
+ throw new Error(`files.${role} (${path}) must be an existing, non-empty file`);
165
+ }
166
+ const primaryPath = task.filePaths.primary;
167
+ if ((0, node_path_1.extname)(primaryPath) !== ".mjs") {
168
+ throw new Error(`files.primary (${primaryPath}) must be compiled JavaScript in a standalone .mjs file, not TypeScript or a source archive`);
169
+ }
170
+ if (!["text/javascript", "application/javascript"].includes(input.primaryContentType.split(";")[0].trim().toLowerCase())) {
171
+ throw new Error(`files.primary (${primaryPath}) must be served as text/javascript or application/javascript, received ${input.primaryContentType}`);
172
+ }
173
+ let manifest;
174
+ try {
175
+ manifest = JSON.parse(await (0, promises_1.readFile)(task.filePaths.manifest, "utf8"));
176
+ }
177
+ catch (error) {
178
+ throw new Error(`files.manifest (${task.filePaths.manifest}) must contain valid JSON: ${error instanceof Error ? error.message : String(error)}`);
179
+ }
180
+ const validation = (0, procedural_1.validateProceduralManifest)(manifest);
181
+ if (!validation.valid)
182
+ throw new Error(`files.manifest (${task.filePaths.manifest}): ${validation.errors.join("; ")}`);
183
+ if (manifest.id !== task.name)
184
+ throw new Error(`manifest.id must equal catalogue asset name "${task.name}", received "${manifest.id}"`);
185
+ if (manifest.platformAssetRef !== null)
186
+ throw new Error("manifest.platformAssetRef must be null before publication");
187
+ if ((0, node_path_1.basename)(manifest.distFile) !== (0, node_path_1.basename)(primaryPath))
188
+ throw new Error(`manifest.distFile must name files.primary (${(0, node_path_1.basename)(primaryPath)})`);
189
+ const parameters = Object.fromEntries(Object.entries(manifest.parameters).map(([id, definition]) => [id, definition.default]));
190
+ for (const [id, value] of Object.entries(manifest.presentation?.parameters ?? {})) {
191
+ if (value !== undefined)
192
+ parameters[id] = value;
193
+ }
194
+ const parameterValidation = (0, procedural_1.validateCompleteProceduralParameters)(manifest.parameters, parameters);
195
+ if (!parameterValidation.valid)
196
+ throw new Error(`manifest.presentation.parameters: ${parameterValidation.errors.join("; ")}. Supply the required initial inputs in the presentation parameters`);
197
+ const assets = new Map();
198
+ for (const [id, definition] of Object.entries(manifest.parameters)) {
199
+ if (definition.type !== "asset")
200
+ continue;
201
+ const refs = new Set([definition.default, parameters[id]].filter((value) => typeof value === "string"));
202
+ for (const reference of refs) {
203
+ if (!input.client)
204
+ throw new Error(`parameters.${id}: authenticated PlayDrop access is required to resolve ${reference}`);
205
+ try {
206
+ const asset = assets.get(reference) ?? await resolveInputAsset(input.client, reference);
207
+ const compatibility = (0, procedural_1.validateResolvedAssetParameter)(definition, asset);
208
+ if (!compatibility.valid)
209
+ throw new Error(compatibility.errors.join("; "));
210
+ assets.set(reference, asset);
211
+ }
212
+ catch (error) {
213
+ throw new Error(`parameters.${id} (${reference}): ${error instanceof Error ? error.message : String(error)}`);
214
+ }
215
+ }
216
+ }
217
+ try {
218
+ await runModule({ primaryPath, manifest, parameters, assets: [...assets.values()] });
219
+ }
220
+ catch (error) {
221
+ throw new Error(`files.primary (${primaryPath}): ${error instanceof Error ? error.message : String(error)}`);
222
+ }
223
+ }
224
+ catch (error) {
225
+ throw new Error(`${label}: ${error instanceof Error ? error.message : String(error)}`);
226
+ }
227
+ }
@@ -0,0 +1,3 @@
1
+ import { type ProceduralValidationResult } from "@playdrop/procedural";
2
+ import type { ProceduralValidationInput } from "./proceduralValidation.js";
3
+ export declare function validateProceduralBrowser(input: ProceduralValidationInput): Promise<ProceduralValidationResult>;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ import { Object3D } from "three";
3
+ import { validateProceduralModule, } from "@playdrop/procedural";
4
+ async function loadAsset(asset) {
5
+ const contentType = asset.primary.contentType?.toLowerCase() ?? "";
6
+ let data;
7
+ if (contentType.includes("json")) {
8
+ const response = await fetch(asset.primary.url);
9
+ if (!response.ok)
10
+ throw new Error(`Unable to load ${asset.reference}: HTTP ${response.status}`);
11
+ data = await response.json();
12
+ }
13
+ else if (asset.category === "IMAGE" || contentType.startsWith("image/")) {
14
+ // GlbViewer passes a decoded HTMLImageElement, not Node's raw pixel buffer.
15
+ const image = new Image();
16
+ image.crossOrigin = "anonymous";
17
+ await new Promise((resolve, reject) => {
18
+ image.onload = () => resolve();
19
+ image.onerror = () => reject(new Error(`Unable to load ${asset.reference} image`));
20
+ image.src = asset.primary.url;
21
+ });
22
+ data = image;
23
+ }
24
+ else
25
+ return asset;
26
+ return { ...asset, primary: { ...asset.primary, data } };
27
+ }
28
+ export async function validateProceduralBrowser(input) {
29
+ try {
30
+ const imported = await import(input.primaryPath);
31
+ const module = (imported.default ?? imported);
32
+ if (!module?.info || typeof module.create !== "function")
33
+ throw new Error("Module must expose info and create()");
34
+ const assets = new Map();
35
+ for (const asset of input.assets)
36
+ assets.set(asset.reference, await loadAsset(asset));
37
+ const context = { parameters: input.parameters, resolveAsset: (reference) => assets.get(reference) ?? null };
38
+ return validateProceduralModule({
39
+ info: module.info,
40
+ create() {
41
+ const instance = module.create(context);
42
+ if (!(instance.object instanceof Object3D))
43
+ throw new Error("create() must expose an object built with the hosted Three.js 0.183.2 Object3D");
44
+ const controls = instance.capabilities?.controls;
45
+ if (Object.keys(input.parameters).length > 0 && !controls)
46
+ throw new Error("Procedural setup requires the controls capability");
47
+ controls?.configure(input.parameters);
48
+ const timeline = instance.capabilities?.timeline;
49
+ timeline?.pause();
50
+ if (input.manifest.presentation?.animation) {
51
+ const animation = input.manifest.presentation.animation;
52
+ if (!timeline)
53
+ throw new Error("Procedural preview animation requires the timeline capability");
54
+ timeline.play(animation.id);
55
+ timeline.pause();
56
+ timeline.seek(animation.time);
57
+ }
58
+ else
59
+ timeline?.seek(0);
60
+ return instance;
61
+ },
62
+ }, context, input.manifest);
63
+ }
64
+ catch (error) {
65
+ return { valid: false, errors: [error instanceof Error ? error.message : String(error)] };
66
+ }
67
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../src/domains/apps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apps.d.ts","sourceRoot":"","sources":["../../src/domains/apps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACtB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,8BAA8B,EAC9B,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,OAAO,EACP,mCAAmC,EACnC,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,oBAAoB,EACpB,WAAW,EACX,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,0BAA0B,EAC1B,6BAA6B,EAC7B,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,+BAA+B,EAC/B,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,iCAAiC,EACjC,kCAAkC,EAClC,iCAAiC,EACjC,kCAAkC,EAClC,8BAA8B,EAC9B,2BAA2B,EAC3B,4BAA4B,EAC5B,gBAAgB,EAChB,4BAA4B,EAC5B,iBAAiB,EACjB,qBAAqB,EACrB,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,iBAAiB,CAAC;AAGzB,KAAK,eAAe,CAAC,CAAC,IAAI;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,eAAe,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE;IAChC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAElC,KAAK,YAAY,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,MAAM,KAAK,KAAK,CAAC;AAE1F,KAAK,iBAAiB,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AA4B/D,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA+DvG;AAwFD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,OAAO,EAAE,eAAe,CAAC;IACzB,cAAc,EAAE,YAAY,CAAC;IAC7B,SAAS,EAAE,OAAO,KAAK,CAAC;IACxB,yBAAyB,EAAE,OAAO,CAAC;IACnC,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACnD,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3C,gBAAgB,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,2BAA2B,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAChF,wBAAwB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,KAAK,MAAM,CAAC;IAC/E,oBAAoB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAClD,+BAA+B,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC;CAChF;sCAkB2C,2BAA2B,GAAG,OAAO,CAAC,4BAA4B,CAAC;wBAYlF,gBAAgB,GAAQ,OAAO,CAAC,gBAAgB,CAAC;0BA0B9C,OAAO,YAAW,gBAAgB,GAAQ,OAAO,CAAC,gBAAgB,CAAC;wCA2B5E,MAAM,YACd,wBAAwB,GAChC,OAAO,CAAC,gBAAgB,CAAC;oCAKT,MAAM,WACd,MAAM,YACN,gBAAgB,GACxB,OAAO,CAAC,iBAAiB,CAAC;wCAuBa,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;yCAWvD,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;iDAcrF,MAAM,WACd,MAAM,GACd,OAAO,CAAC,8BAA8B,CAAC;iCAYjC,MAAM,YACJ;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAChD,OAAO,CAAC,sBAAsB,CAAC;sBAgBV,MAAM,SAAS,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;kCAcpD,MAAM,WAAW,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;wCAUtF,MAAM,WACd,MAAM,GACd,OAAO,CAAC,iBAAiB,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;sCAUhC,MAAM,WACd,MAAM,WACN,MAAM,UACP,WAAW,GAClB,OAAO,CAAC,iBAAiB,CAAC;uCAUY,MAAM,WAAW,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;wCAU9F,MAAM,WACd,MAAM,WACN,MAAM,OACV,MAAM,EAAE,GACZ,OAAO,CAAC,yBAAyB,CAAC;oDAWlB,MAAM,WACd,MAAM,WACN,MAAM,UACP,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;+BAoBiB,MAAM,iBAAiB,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;+BAelF,MAAM,QACjB,MAAM,iBACG,gBAAgB,GAC9B,OAAO,CAAC,iBAAiB,CAAC;wCAca,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;2CAUjF,MAAM,WACd,MAAM,iBACA,4BAA4B,GAC1C,OAAO,CAAC,uBAAuB,CAAC;gDAWhB,MAAM,WACd,MAAM,QACT,wBAAwB,QACxB,IAAI,YACA,MAAM,GACf,OAAO,CAAC,uBAAuB,CAAC;gDA8ChB,MAAM,WACd,MAAM,QACT,wBAAwB,GAC7B,OAAO,CAAC,uBAAuB,CAAC;4CASW,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;4CASpD,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,8BAA8B,CAAC;yCAS5F,MAAM,WACd,MAAM,eACF,0BAA0B,GACtC,OAAO,CAAC,2BAA2B,CAAC;0CAapB,MAAM,WACd,MAAM,aACJ,MAAM,eACJ,2BAA2B,GACvC,OAAO,CAAC,4BAA4B,CAAC;uCAarB,MAAM,WACd,MAAM,aACJ,MAAM,gBACH,wBAAwB,GACrC,OAAO,CAAC,yBAAyB,CAAC;sDAalB,MAAM,WACd,MAAM,aACJ,MAAM,GAChB,OAAO,CAAC,mCAAmC,CAAC;gDAY5B,MAAM,WACd,MAAM,aACJ,MAAM,eACJ,iCAAiC,GAC7C,OAAO,CAAC,kCAAkC,CAAC;gDAa3B,MAAM,WACd,MAAM,aACJ,MAAM,eACJ,iCAAiC,GAC7C,OAAO,CAAC,kCAAkC,CAAC;oCAYR,MAAM,WAAW,MAAM,aAAa,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;qCAW3E,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;oCAY9F,MAAM,QACP,MAAM,WACH;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/C,OAAO,CAAC,yBAAyB,CAAC;0CAgB5B,MAAM,WACJ;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC,+BAA+B,CAAC;gCAaT,MAAM,eAAe,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;0BAWrE,MAAM,QAAQ,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;8BAWlD,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;qCAWjC,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;mCAc5D,MAAM,WAAW,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;2CAgB9F,MAAM,WACd,MAAM,WACN,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;uCAcjB,MAAM,WACd,MAAM,WACN,MAAM,GACd,OAAO,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,uBAAuB,CAAA;KAAE,CAAC;sCAmD1C,MAAM,WACd,MAAM,WACN,MAAM,WACN;QACP,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,UAAU,CAAC,EAAE,oBAAoB,CAAC;QAClC,QAAQ,CAAC,EAAE,WAAW,CAAC;QACvB,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GACA,OAAO,CAAC,qBAAqB,CAAC;sCAeO,MAAM,WAAW,MAAM,WAAW,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;+BAchF,MAAM,QAAQ,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;EAcrF"}
@@ -678,13 +678,23 @@ function buildAppsApiClientMethods(input) {
678
678
  handleApiError({ status: response.status, body: parsed, headers: response.headers }, "download_app_source");
679
679
  }
680
680
  const blob = await response.blob();
681
- const filename = parseContentDispositionFilename(response.headers.get("content-disposition")) ?? `${name}-${normalizedVersion}-source.zip`;
681
+ const contentType = response.headers.get("content-type")?.split(";")[0]?.trim().toLowerCase();
682
+ const format = contentType === "application/x-git-bundle" ? "git-bundle" : contentType === "application/zip" ? "zip" : null;
683
+ if (!format)
684
+ throw new Error(`app_source_format_invalid: expected application/zip or application/x-git-bundle, received ${contentType ?? "no content type"}`);
685
+ const commitSha = response.headers.get("x-app-source-commit");
686
+ if (format === "git-bundle" && (!commitSha || !/^[0-9a-f]{40}$/.test(commitSha))) {
687
+ throw new Error("app_source_commit_missing: Git source download must identify the requested version commit");
688
+ }
689
+ const filename = parseContentDispositionFilename(response.headers.get("content-disposition")) ?? `${name}-${normalizedVersion}-source.${format === "git-bundle" ? "bundle" : "zip"}`;
682
690
  const headerSize = response.headers.get("content-length");
683
691
  const parsedSize = headerSize ? Number.parseInt(headerSize, 10) : Number.NaN;
684
692
  const checksumHeader = response.headers.get("x-app-source-checksum");
685
693
  return {
686
694
  blob,
687
695
  metadata: {
696
+ format,
697
+ ...commitSha ? { commitSha } : {},
688
698
  filename,
689
699
  sizeBytes: Number.isFinite(parsedSize) && parsedSize >= 0 ? parsedSize : blob.size,
690
700
  checksum: checksumHeader ?? null
@@ -1,4 +1,4 @@
1
- import type { ChatAttachmentUploadSession, ChatChannelReadResponse, ChatContact, ChatContactsResponse, ChatChannelsResponse, ChatConversation, ChatConversationResponse, ChatConversationsResponse, ChatMessageResponse, ChatMessagesResponse, ChatNotificationPreferences, ChatRealtimeEvent, PlayTradeRealtimeActivityFrame, PlayTradeRealtimeActivityUpdate, CreateChatMessageRequest, EditChatMessageRequest, PlatformFriendPresenceEntry, PlatformRealtimeTopic } from "@playdrop/types";
1
+ import type { ChatAttachmentUploadSession, ChatChannelReadResponse, ChatContact, ChatContactsResponse, ChatChannelsResponse, ChatConversation, ChatConversationResponse, ChatConversationsResponse, ChatMessageResponse, ChatMessagesResponse, ChatNotificationPreferences, ChatRealtimeEvent, CreationRealtimeUpdate, PlayTradeRealtimeActivityFrame, PlayTradeRealtimeActivityUpdate, CreateChatMessageRequest, EditChatMessageRequest, PlatformFriendPresenceEntry, PlatformRealtimeTopic } from "@playdrop/types";
2
2
  type ApiResponseLike<T> = {
3
3
  status: number;
4
4
  body: T;
@@ -69,10 +69,15 @@ export type ChatRealtimeConnectionOptions = {
69
69
  onPresenceUpdated?: (entry: PlatformFriendPresenceEntry) => void;
70
70
  onStateChange?: (state: ChatRealtimeConnectionState) => void;
71
71
  onResyncRequired?: (conversationId: string) => void;
72
+ onPlatformSubscribed?: (event: {
73
+ topic: PlatformRealtimeTopic;
74
+ eventVersion: string;
75
+ }) => void;
72
76
  onPlatformEvent?: (event: {
73
77
  topic: PlatformRealtimeTopic;
74
78
  eventVersion: string;
75
79
  resync: boolean;
80
+ creation?: CreationRealtimeUpdate;
76
81
  }) => void;
77
82
  onPlayTradeActivity?: (event: {
78
83
  type: "updated";
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/domains/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/domains/chat.ts"],"names":[],"mappings":"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"}
@@ -76,6 +76,12 @@ function parseRealtimeFrame(value) {
76
76
  return parsed;
77
77
  }
78
78
  if ((type === "platform.subscribed" || type === "platform.event" || type === "platform.resync_required") && typeof frame["topic"] === "string" && typeof frame["eventVersion"] === "string") {
79
+ if (type === "platform.event" && frame["topic"] === "creation") {
80
+ const creation = frame["creation"];
81
+ if (!creation || creation["kind"] !== "task.updated" && creation["kind"] !== "task.changed" || typeof creation["gameRef"] !== "string" || !Number.isInteger(creation["taskId"]) || !Number.isInteger(creation["attempt"]) || creation["kind"] === "task.updated" && (!creation["item"] || typeof creation["item"] !== "object") || creation["kind"] === "task.changed" && (!Array.isArray(creation["items"]) || !creation["conversation"] || !("game" in creation))) {
82
+ throw new Error("chat_realtime_invalid_creation_event");
83
+ }
84
+ }
79
85
  return parsed;
80
86
  }
81
87
  if (type === "error" && typeof frame["code"] === "string")
@@ -480,8 +486,14 @@ function buildChatApiClientMethods(input) {
480
486
  options.onPresenceUpdated?.(frame.entry);
481
487
  } else if (frame.type === "platform.subscribed") {
482
488
  platformSubscriptions.set(frame.topic, frame.eventVersion);
489
+ options.onPlatformSubscribed?.({ topic: frame.topic, eventVersion: frame.eventVersion });
483
490
  } else if (frame.type === "platform.event") {
484
- options.onPlatformEvent?.({ topic: frame.topic, eventVersion: frame.eventVersion, resync: false });
491
+ options.onPlatformEvent?.({
492
+ topic: frame.topic,
493
+ eventVersion: frame.eventVersion,
494
+ resync: false,
495
+ ...frame.topic === "creation" ? { creation: frame.creation } : {}
496
+ });
485
497
  platformSubscriptions.set(frame.topic, frame.eventVersion);
486
498
  } else if (frame.type === "platform.resync_required") {
487
499
  options.onPlatformEvent?.({ topic: frame.topic, eventVersion: frame.eventVersion, resync: true });
@@ -1,8 +1,8 @@
1
1
  {
2
- "version": "0.17.4",
3
- "build": 2,
4
- "runtimeSdkVersion": "0.17.4",
5
- "runtimeSdkBuild": 2,
2
+ "version": "0.17.14",
3
+ "build": 1,
4
+ "runtimeSdkVersion": "0.17.14",
5
+ "runtimeSdkBuild": 1,
6
6
  "clients": {
7
7
  "all": {
8
8
  "minimumVersion": "0.7.4"