@playdrop/playdrop-cli 0.16.2 → 0.16.11

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 (383) hide show
  1. package/bin/playdrop +1 -2
  2. package/config/client-meta.json +4 -4
  3. package/dist/apiClient.d.ts +2 -2
  4. package/dist/apiClient.js +16 -20
  5. package/dist/appUrls.d.ts +2 -2
  6. package/dist/appUrls.js +31 -33
  7. package/dist/apps/build.d.ts +2 -2
  8. package/dist/apps/build.js +83 -83
  9. package/dist/apps/index.d.ts +7 -7
  10. package/dist/apps/index.js +8 -8
  11. package/dist/apps/loadCheck.d.ts +28 -16
  12. package/dist/apps/loadCheck.js +411 -279
  13. package/dist/apps/registration.d.ts +3 -3
  14. package/dist/apps/registration.js +1 -1
  15. package/dist/apps/staticHtml.d.ts +3 -3
  16. package/dist/apps/staticHtml.js +90 -91
  17. package/dist/apps/surfaceProfiles.d.ts +2 -2
  18. package/dist/apps/surfaceProfiles.js +6 -6
  19. package/dist/apps/upload.d.ts +5 -5
  20. package/dist/apps/upload.js +75 -81
  21. package/dist/apps/validate.d.ts +2 -2
  22. package/dist/apps/validate.js +18 -22
  23. package/dist/assetSpecs.d.ts +2 -2
  24. package/dist/assetSpecs.js +35 -35
  25. package/dist/assets/model-artifacts.d.ts +1 -1
  26. package/dist/assets/model-artifacts.js +81 -77
  27. package/dist/assets/model-worker.d.ts +1 -1
  28. package/dist/assets/model-worker.js +6 -6
  29. package/dist/browser.js +9 -9
  30. package/dist/catalogue-utils.d.ts +1 -1
  31. package/dist/catalogue-utils.js +26 -26
  32. package/dist/catalogue.d.ts +21 -16
  33. package/dist/catalogue.js +509 -413
  34. package/dist/clientInfo.d.ts +1 -1
  35. package/dist/clientInfo.js +28 -28
  36. package/dist/commandContext.d.ts +5 -5
  37. package/dist/commandContext.js +19 -23
  38. package/dist/commands/accounts.js +6 -6
  39. package/dist/commands/ads.js +16 -16
  40. package/dist/commands/agents.d.ts +2 -2
  41. package/dist/commands/agents.js +131 -127
  42. package/dist/commands/boosts.js +41 -31
  43. package/dist/commands/browse.d.ts +2 -2
  44. package/dist/commands/browse.js +168 -128
  45. package/dist/commands/build.js +9 -9
  46. package/dist/commands/captureListing.d.ts +8 -8
  47. package/dist/commands/captureListing.js +292 -332
  48. package/dist/commands/changelog.js +1 -1
  49. package/dist/commands/chat.js +51 -53
  50. package/dist/commands/check.d.ts +1 -1
  51. package/dist/commands/check.js +44 -44
  52. package/dist/commands/clients.d.ts +3 -3
  53. package/dist/commands/clients.js +67 -64
  54. package/dist/commands/comments.js +36 -29
  55. package/dist/commands/create.js +305 -312
  56. package/dist/commands/createRemixContent.d.ts +1 -1
  57. package/dist/commands/createRemixContent.js +65 -60
  58. package/dist/commands/creations.js +205 -135
  59. package/dist/commands/credits.js +37 -27
  60. package/dist/commands/detail.js +40 -34
  61. package/dist/commands/dev.js +103 -126
  62. package/dist/commands/devBrowser.js +74 -65
  63. package/dist/commands/devRuntimeAssets.d.ts +4 -4
  64. package/dist/commands/devRuntimeAssets.js +38 -40
  65. package/dist/commands/devServer.d.ts +4 -4
  66. package/dist/commands/devServer.js +183 -174
  67. package/dist/commands/devShared.d.ts +3 -3
  68. package/dist/commands/devShared.js +31 -31
  69. package/dist/commands/doctor.d.ts +5 -5
  70. package/dist/commands/doctor.js +63 -57
  71. package/dist/commands/documentation.js +42 -32
  72. package/dist/commands/feedback.js +59 -42
  73. package/dist/commands/format.js +9 -9
  74. package/dist/commands/generation.d.ts +2 -2
  75. package/dist/commands/generation.js +344 -326
  76. package/dist/commands/init.d.ts +4 -4
  77. package/dist/commands/init.js +64 -61
  78. package/dist/commands/login.d.ts +2 -2
  79. package/dist/commands/login.js +42 -62
  80. package/dist/commands/logout.js +4 -4
  81. package/dist/commands/marketing.d.ts +8 -8
  82. package/dist/commands/marketing.js +246 -297
  83. package/dist/commands/notes.js +19 -19
  84. package/dist/commands/notifications.js +34 -22
  85. package/dist/commands/npmProcess.js +3 -3
  86. package/dist/commands/ownedRuntimeImageValidation.d.ts +1 -1
  87. package/dist/commands/ownedRuntimeImageValidation.js +19 -17
  88. package/dist/commands/play.js +12 -21
  89. package/dist/commands/publicPages.js +8 -4
  90. package/dist/commands/review.js +123 -110
  91. package/dist/commands/search.js +107 -88
  92. package/dist/commands/tags.js +10 -12
  93. package/dist/commands/taskCaptureSession.d.ts +3 -3
  94. package/dist/commands/taskCaptureSession.js +3 -3
  95. package/dist/commands/tweaks.js +25 -23
  96. package/dist/commands/upgrade.js +40 -31
  97. package/dist/commands/upload-content.d.ts +5 -5
  98. package/dist/commands/upload-content.js +130 -122
  99. package/dist/commands/upload-graph.d.ts +1 -1
  100. package/dist/commands/upload-graph.js +7 -11
  101. package/dist/commands/upload.d.ts +7 -7
  102. package/dist/commands/upload.js +196 -217
  103. package/dist/commands/validate.js +33 -32
  104. package/dist/commands/versionsBrowse.js +61 -51
  105. package/dist/commands/whoami.js +11 -14
  106. package/dist/commands/worker/archive-staging.d.ts +9 -0
  107. package/dist/commands/worker/archive-staging.js +257 -0
  108. package/dist/commands/worker/instrument-evidence.d.ts +1 -1
  109. package/dist/commands/worker/instrument-evidence.js +41 -43
  110. package/dist/commands/worker/provider-telemetry.d.ts +2 -1
  111. package/dist/commands/worker/provider-telemetry.js +181 -64
  112. package/dist/commands/worker/runtime.d.ts +18 -3
  113. package/dist/commands/worker/runtime.js +291 -239
  114. package/dist/commands/worker.d.ts +83 -22
  115. package/dist/commands/worker.js +1980 -1411
  116. package/dist/commands/workspaces.d.ts +2 -2
  117. package/dist/commands/workspaces.js +57 -57
  118. package/dist/config.js +23 -20
  119. package/dist/devAuth.d.ts +3 -3
  120. package/dist/devAuth.js +20 -17
  121. package/dist/environment.d.ts +1 -1
  122. package/dist/environment.js +34 -34
  123. package/dist/errors.d.ts +1 -1
  124. package/dist/errors.js +7 -7
  125. package/dist/externalAssetPackValidation.d.ts +1 -1
  126. package/dist/externalAssetPackValidation.js +9 -9
  127. package/dist/http.d.ts +1 -1
  128. package/dist/http.js +9 -9
  129. package/dist/index.js +657 -664
  130. package/dist/listingCaptureLease.js +23 -23
  131. package/dist/listingPreflight.d.ts +2 -2
  132. package/dist/listingPreflight.js +33 -33
  133. package/dist/messages.js +6 -14
  134. package/dist/output.js +9 -9
  135. package/dist/playwright.d.ts +1 -1
  136. package/dist/playwright.js +35 -40
  137. package/dist/proxyFetch.js +30 -27
  138. package/dist/recorderRelease.js +8 -8
  139. package/dist/refs.d.ts +5 -5
  140. package/dist/refs.js +40 -37
  141. package/dist/sessionCookie.js +15 -21
  142. package/dist/shellProbe.js +5 -5
  143. package/dist/taskSelection.d.ts +3 -3
  144. package/dist/taskSelection.js +67 -62
  145. package/dist/taskUtils.d.ts +1 -1
  146. package/dist/taskUtils.js +4 -4
  147. package/dist/tweakStaleness.d.ts +3 -3
  148. package/dist/tweakStaleness.js +8 -8
  149. package/dist/uploadLog.d.ts +3 -3
  150. package/dist/uploadLog.js +51 -51
  151. package/dist/versionCompare.js +3 -3
  152. package/dist/workerAppProject.d.ts +1 -1
  153. package/dist/workerAppProject.js +10 -17
  154. package/dist/workspaceAuth.d.ts +1 -1
  155. package/dist/workspaceAuth.js +28 -22
  156. package/node_modules/@playdrop/ai-client/dist/index.d.ts +35 -35
  157. package/node_modules/@playdrop/ai-client/dist/index.d.ts.map +1 -1
  158. package/node_modules/@playdrop/api-client/dist/client.d.ts +34 -33
  159. package/node_modules/@playdrop/api-client/dist/client.d.ts.map +1 -1
  160. package/node_modules/@playdrop/api-client/dist/core/errors.d.ts +1 -1
  161. package/node_modules/@playdrop/api-client/dist/core/errors.d.ts.map +1 -1
  162. package/node_modules/@playdrop/api-client/dist/core/request.d.ts +2 -2
  163. package/node_modules/@playdrop/api-client/dist/core/request.d.ts.map +1 -1
  164. package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts +2 -2
  165. package/node_modules/@playdrop/api-client/dist/domains/admin.d.ts.map +1 -1
  166. package/node_modules/@playdrop/api-client/dist/domains/admin.js +4 -1
  167. package/node_modules/@playdrop/api-client/dist/domains/agent-tasks.d.ts +4 -3
  168. package/node_modules/@playdrop/api-client/dist/domains/agent-tasks.d.ts.map +1 -1
  169. package/node_modules/@playdrop/api-client/dist/domains/agent-tasks.js +12 -0
  170. package/node_modules/@playdrop/api-client/dist/domains/ai.d.ts +2 -2
  171. package/node_modules/@playdrop/api-client/dist/domains/ai.d.ts.map +1 -1
  172. package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts +4 -4
  173. package/node_modules/@playdrop/api-client/dist/domains/apps.d.ts.map +1 -1
  174. package/node_modules/@playdrop/api-client/dist/domains/asset-packs.d.ts +4 -4
  175. package/node_modules/@playdrop/api-client/dist/domains/asset-packs.d.ts.map +1 -1
  176. package/node_modules/@playdrop/api-client/dist/domains/assets.d.ts +4 -4
  177. package/node_modules/@playdrop/api-client/dist/domains/assets.d.ts.map +1 -1
  178. package/node_modules/@playdrop/api-client/dist/domains/auth.d.ts +2 -2
  179. package/node_modules/@playdrop/api-client/dist/domains/auth.d.ts.map +1 -1
  180. package/node_modules/@playdrop/api-client/dist/domains/chat.d.ts +2 -2
  181. package/node_modules/@playdrop/api-client/dist/domains/chat.d.ts.map +1 -1
  182. package/node_modules/@playdrop/api-client/dist/domains/comments.d.ts +3 -3
  183. package/node_modules/@playdrop/api-client/dist/domains/comments.d.ts.map +1 -1
  184. package/node_modules/@playdrop/api-client/dist/domains/free-credits.d.ts +2 -2
  185. package/node_modules/@playdrop/api-client/dist/domains/free-credits.d.ts.map +1 -1
  186. package/node_modules/@playdrop/api-client/dist/domains/me.d.ts +2 -2
  187. package/node_modules/@playdrop/api-client/dist/domains/me.d.ts.map +1 -1
  188. package/node_modules/@playdrop/api-client/dist/domains/payments.d.ts +2 -2
  189. package/node_modules/@playdrop/api-client/dist/domains/payments.d.ts.map +1 -1
  190. package/node_modules/@playdrop/api-client/dist/domains/player-meta.d.ts +2 -2
  191. package/node_modules/@playdrop/api-client/dist/domains/player-meta.d.ts.map +1 -1
  192. package/node_modules/@playdrop/api-client/dist/domains/playtrade.d.ts +3 -3
  193. package/node_modules/@playdrop/api-client/dist/domains/playtrade.d.ts.map +1 -1
  194. package/node_modules/@playdrop/api-client/dist/domains/playtrade.js +2 -2
  195. package/node_modules/@playdrop/api-client/dist/domains/search.d.ts +2 -2
  196. package/node_modules/@playdrop/api-client/dist/domains/search.d.ts.map +1 -1
  197. package/node_modules/@playdrop/api-client/dist/domains/tags.d.ts +2 -2
  198. package/node_modules/@playdrop/api-client/dist/domains/tags.d.ts.map +1 -1
  199. package/node_modules/@playdrop/api-client/dist/index.d.ts +19 -18
  200. package/node_modules/@playdrop/api-client/dist/index.d.ts.map +1 -1
  201. package/node_modules/@playdrop/api-client/dist/index.js +7 -2
  202. package/node_modules/@playdrop/boxel-core/dist/src/entity-cleaner.d.ts +1 -1
  203. package/node_modules/@playdrop/boxel-core/dist/src/entity-cleaner.js +47 -47
  204. package/node_modules/@playdrop/boxel-core/dist/src/entity-cleaner.js.map +1 -1
  205. package/node_modules/@playdrop/boxel-core/dist/src/entity-utils.d.ts +3 -3
  206. package/node_modules/@playdrop/boxel-core/dist/src/entity-utils.js +32 -47
  207. package/node_modules/@playdrop/boxel-core/dist/src/entity-utils.js.map +1 -1
  208. package/node_modules/@playdrop/boxel-core/dist/src/format-utils.js +16 -18
  209. package/node_modules/@playdrop/boxel-core/dist/src/format-utils.js.map +1 -1
  210. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/geometry.d.ts +2 -2
  211. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/index.d.ts +4 -4
  212. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/common.d.ts +1 -1
  213. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/index.d.ts +3 -3
  214. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/textured-builder.d.ts +2 -2
  215. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/textured-builder.js +44 -45
  216. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/textured-builder.js.map +1 -1
  217. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/types.d.ts +1 -1
  218. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/voxel-builder.d.ts +2 -2
  219. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/voxel-builder.js +40 -44
  220. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r15/voxel-builder.js.map +1 -1
  221. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/builder.d.ts +2 -2
  222. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/builder.js +30 -34
  223. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/builder.js.map +1 -1
  224. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/index.d.ts +4 -4
  225. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/index.js.map +1 -1
  226. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/scanner.d.ts +3 -3
  227. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/scanner.js +23 -20
  228. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/scanner.js.map +1 -1
  229. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/textures/artifacts.d.ts +3 -3
  230. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/textures/artifacts.js +3 -3
  231. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/textures/face-map.d.ts +1 -1
  232. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/textures/face-map.js +21 -21
  233. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/r6/textures/face-map.js.map +1 -1
  234. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/templates/index.d.ts +1 -1
  235. package/node_modules/@playdrop/boxel-core/dist/src/humanoid/templates/index.js +2 -2
  236. package/node_modules/@playdrop/boxel-core/dist/src/index.d.ts +19 -19
  237. package/node_modules/@playdrop/boxel-core/dist/src/materials.d.ts +1 -1
  238. package/node_modules/@playdrop/boxel-core/dist/src/materials.js +12 -16
  239. package/node_modules/@playdrop/boxel-core/dist/src/materials.js.map +1 -1
  240. package/node_modules/@playdrop/boxel-core/dist/src/palette_tools.d.ts +1 -1
  241. package/node_modules/@playdrop/boxel-core/dist/src/palette_tools.js +38 -41
  242. package/node_modules/@playdrop/boxel-core/dist/src/palette_tools.js.map +1 -1
  243. package/node_modules/@playdrop/boxel-core/dist/src/serialization.d.ts +1 -1
  244. package/node_modules/@playdrop/boxel-core/dist/src/serialization.js +54 -56
  245. package/node_modules/@playdrop/boxel-core/dist/src/serialization.js.map +1 -1
  246. package/node_modules/@playdrop/boxel-core/dist/src/textures.d.ts +3 -3
  247. package/node_modules/@playdrop/boxel-core/dist/src/textures.js +39 -45
  248. package/node_modules/@playdrop/boxel-core/dist/src/textures.js.map +1 -1
  249. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/infer-face.d.ts +2 -2
  250. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/infer-face.js +39 -43
  251. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/infer-face.js.map +1 -1
  252. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/layer-mode.d.ts +3 -3
  253. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/layer-mode.js +35 -35
  254. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/layer-mode.js.map +1 -1
  255. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/merge-overlay.d.ts +1 -1
  256. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/merge-overlay.js +18 -18
  257. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/merge-overlay.js.map +1 -1
  258. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/slice.d.ts +3 -3
  259. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/slice.js +50 -48
  260. package/node_modules/@playdrop/boxel-core/dist/src/transforms/textured-boxes/slice.js.map +1 -1
  261. package/node_modules/@playdrop/boxel-core/dist/src/transforms/upscale.d.ts +1 -1
  262. package/node_modules/@playdrop/boxel-core/dist/src/transforms/upscale.js +22 -26
  263. package/node_modules/@playdrop/boxel-core/dist/src/transforms/upscale.js.map +1 -1
  264. package/node_modules/@playdrop/boxel-core/dist/src/transforms/voxels/slice.d.ts +2 -2
  265. package/node_modules/@playdrop/boxel-core/dist/src/transforms/voxels/slice.js +8 -8
  266. package/node_modules/@playdrop/boxel-core/dist/src/transforms/voxels/slice.js.map +1 -1
  267. package/node_modules/@playdrop/boxel-core/dist/src/transforms/voxels/textured-to-voxel.d.ts +2 -2
  268. package/node_modules/@playdrop/boxel-core/dist/src/transforms/voxels/textured-to-voxel.js +23 -28
  269. package/node_modules/@playdrop/boxel-core/dist/src/transforms/voxels/textured-to-voxel.js.map +1 -1
  270. package/node_modules/@playdrop/boxel-core/dist/src/types.d.ts +8 -8
  271. package/node_modules/@playdrop/boxel-core/dist/src/validation.d.ts +1 -1
  272. package/node_modules/@playdrop/boxel-core/dist/src/validation.js +93 -95
  273. package/node_modules/@playdrop/boxel-core/dist/src/validation.js.map +1 -1
  274. package/node_modules/@playdrop/boxel-core/dist/src/voxels/greedy-mesher.d.ts +1 -1
  275. package/node_modules/@playdrop/boxel-core/dist/src/voxels/greedy-mesher.js +2 -2
  276. package/node_modules/@playdrop/boxel-core/dist/src/voxels/greedy-mesher.js.map +1 -1
  277. package/node_modules/@playdrop/boxel-core/dist/src/voxels.d.ts +1 -1
  278. package/node_modules/@playdrop/boxel-core/dist/src/voxels.js +2 -7
  279. package/node_modules/@playdrop/boxel-core/dist/src/voxels.js.map +1 -1
  280. package/node_modules/@playdrop/boxel-three/dist/src/animations.d.ts +3 -3
  281. package/node_modules/@playdrop/boxel-three/dist/src/builders.d.ts +4 -4
  282. package/node_modules/@playdrop/boxel-three/dist/src/context.d.ts +3 -3
  283. package/node_modules/@playdrop/boxel-three/dist/src/exporters/glb.d.ts +6 -6
  284. package/node_modules/@playdrop/boxel-three/dist/src/exporters/glb.js +9 -1
  285. package/node_modules/@playdrop/boxel-three/dist/src/exporters/image.d.ts +3 -3
  286. package/node_modules/@playdrop/boxel-three/dist/src/index.d.ts +17 -17
  287. package/node_modules/@playdrop/boxel-three/dist/src/instantiate.d.ts +9 -9
  288. package/node_modules/@playdrop/boxel-three/dist/src/nodes.d.ts +3 -3
  289. package/node_modules/@playdrop/boxel-three/dist/src/nodes.js +1 -1
  290. package/node_modules/@playdrop/boxel-three/dist/src/overlays.d.ts +2 -2
  291. package/node_modules/@playdrop/boxel-three/dist/src/primitives.d.ts +1 -1
  292. package/node_modules/@playdrop/boxel-three/dist/src/scene.d.ts +1 -1
  293. package/node_modules/@playdrop/boxel-three/dist/src/skinned-mesh.d.ts +2 -2
  294. package/node_modules/@playdrop/boxel-three/dist/src/texture-atlas.d.ts +1 -1
  295. package/node_modules/@playdrop/boxel-three/dist/src/textures.d.ts +3 -3
  296. package/node_modules/@playdrop/boxel-three/dist/src/types.d.ts +4 -4
  297. package/node_modules/@playdrop/boxel-three/dist/src/voxels/faces.d.ts +2 -2
  298. package/node_modules/@playdrop/boxel-three/dist/src/voxels/mesher.d.ts +1 -1
  299. package/node_modules/@playdrop/boxel-three/dist/test/fixtures/render-worker.d.ts +1 -1
  300. package/node_modules/@playdrop/config/client-meta.json +4 -4
  301. package/node_modules/@playdrop/config/dist/src/client-meta.d.ts +1 -1
  302. package/node_modules/@playdrop/config/dist/src/client-meta.d.ts.map +1 -1
  303. package/node_modules/@playdrop/config/dist/src/client-meta.js +10 -10
  304. package/node_modules/@playdrop/config/dist/src/constants.js +10 -10
  305. package/node_modules/@playdrop/config/dist/src/creator-plans.d.ts +1 -1
  306. package/node_modules/@playdrop/config/dist/src/creator-plans.d.ts.map +1 -1
  307. package/node_modules/@playdrop/config/dist/src/creator-plans.js +27 -28
  308. package/node_modules/@playdrop/config/dist/src/deployment.d.ts +4 -4
  309. package/node_modules/@playdrop/config/dist/src/deployment.d.ts.map +1 -1
  310. package/node_modules/@playdrop/config/dist/src/deployment.js +42 -41
  311. package/node_modules/@playdrop/config/dist/src/game-arena.js +12 -12
  312. package/node_modules/@playdrop/config/dist/src/index.d.ts +9 -9
  313. package/node_modules/@playdrop/config/dist/src/index.d.ts.map +1 -1
  314. package/node_modules/@playdrop/config/dist/src/index.js +24 -25
  315. package/node_modules/@playdrop/config/dist/src/public-deployment.d.ts +4 -4
  316. package/node_modules/@playdrop/config/dist/src/public-deployment.d.ts.map +1 -1
  317. package/node_modules/@playdrop/config/dist/src/public-deployment.js +41 -39
  318. package/node_modules/@playdrop/config/dist/src/runtime-client-meta.js +1 -3
  319. package/node_modules/@playdrop/config/dist/src/runtime-service-origins.d.ts.map +1 -1
  320. package/node_modules/@playdrop/config/dist/src/runtime-service-origins.js +23 -25
  321. package/node_modules/@playdrop/config/dist/src/server/fastify.d.ts +5 -5
  322. package/node_modules/@playdrop/config/dist/src/server/fastify.d.ts.map +1 -1
  323. package/node_modules/@playdrop/config/dist/src/server/fastify.js +44 -46
  324. package/node_modules/@playdrop/config/dist/src/server/logging.d.ts +1 -1
  325. package/node_modules/@playdrop/config/dist/src/server/logging.d.ts.map +1 -1
  326. package/node_modules/@playdrop/config/dist/src/server/logging.js +6 -8
  327. package/node_modules/@playdrop/config/dist/src/types.d.ts +2 -2
  328. package/node_modules/@playdrop/config/dist/test/creator-plans.test.js +12 -12
  329. package/node_modules/@playdrop/config/dist/test/deployment.test.js +59 -59
  330. package/node_modules/@playdrop/config/dist/test/fastify.test.js +4 -4
  331. package/node_modules/@playdrop/config/dist/test/game-arena.test.js +8 -8
  332. package/node_modules/@playdrop/config/dist/test/logging.test.js +6 -6
  333. package/node_modules/@playdrop/config/dist/test/validateClientEnvironment.test.js +57 -57
  334. package/node_modules/@playdrop/config/dist/tsconfig.tsbuildinfo +1 -1
  335. package/node_modules/@playdrop/types/dist/agent-task-playtest.d.ts.map +1 -1
  336. package/node_modules/@playdrop/types/dist/agent-task-terminal.d.ts +2 -2
  337. package/node_modules/@playdrop/types/dist/agent-task-terminal.d.ts.map +1 -1
  338. package/node_modules/@playdrop/types/dist/api.d.ts +314 -250
  339. package/node_modules/@playdrop/types/dist/api.d.ts.map +1 -1
  340. package/node_modules/@playdrop/types/dist/api.js +40 -59
  341. package/node_modules/@playdrop/types/dist/app-capability-filters.d.ts +2 -2
  342. package/node_modules/@playdrop/types/dist/app-playtest-tape.d.ts +6 -6
  343. package/node_modules/@playdrop/types/dist/app-playtest-tape.d.ts.map +1 -1
  344. package/node_modules/@playdrop/types/dist/app-review.d.ts +2 -2
  345. package/node_modules/@playdrop/types/dist/app-review.d.ts.map +1 -1
  346. package/node_modules/@playdrop/types/dist/app-review.js +1 -6
  347. package/node_modules/@playdrop/types/dist/app.d.ts.map +1 -1
  348. package/node_modules/@playdrop/types/dist/asset-pack.d.ts +5 -5
  349. package/node_modules/@playdrop/types/dist/asset-spec.d.ts +4 -4
  350. package/node_modules/@playdrop/types/dist/asset.d.ts +11 -11
  351. package/node_modules/@playdrop/types/dist/attachment-policy.d.ts.map +1 -1
  352. package/node_modules/@playdrop/types/dist/chat.d.ts +3 -3
  353. package/node_modules/@playdrop/types/dist/creator-public-image.d.ts.map +1 -1
  354. package/node_modules/@playdrop/types/dist/graph.d.ts +4 -4
  355. package/node_modules/@playdrop/types/dist/index.d.ts +25 -25
  356. package/node_modules/@playdrop/types/dist/instrument-evidence.d.ts +2 -2
  357. package/node_modules/@playdrop/types/dist/instrument-evidence.d.ts.map +1 -1
  358. package/node_modules/@playdrop/types/dist/instrument-evidence.js +2 -11
  359. package/node_modules/@playdrop/types/dist/locale.d.ts +2 -2
  360. package/node_modules/@playdrop/types/dist/locale.d.ts.map +1 -1
  361. package/node_modules/@playdrop/types/dist/locale.js +2 -17
  362. package/node_modules/@playdrop/types/dist/owned-assets.d.ts +2 -2
  363. package/node_modules/@playdrop/types/dist/owned-assets.d.ts.map +1 -1
  364. package/node_modules/@playdrop/types/dist/player-meta.d.ts +3 -3
  365. package/node_modules/@playdrop/types/dist/player-meta.d.ts.map +1 -1
  366. package/node_modules/@playdrop/types/dist/playtest-notes.d.ts +11 -11
  367. package/node_modules/@playdrop/types/dist/playtest-notes.d.ts.map +1 -1
  368. package/node_modules/@playdrop/types/dist/playtrade.d.ts +8 -5
  369. package/node_modules/@playdrop/types/dist/playtrade.d.ts.map +1 -1
  370. package/node_modules/@playdrop/types/dist/realtime.d.ts +1 -1
  371. package/node_modules/@playdrop/types/dist/tweaks.d.ts +4 -4
  372. package/node_modules/@playdrop/types/dist/tweaks.d.ts.map +1 -1
  373. package/node_modules/@playdrop/types/dist/tweaks.js +12 -2
  374. package/node_modules/@playdrop/types/dist/version.d.ts +14 -14
  375. package/node_modules/@playdrop/types/dist/version.d.ts.map +1 -1
  376. package/node_modules/@playdrop/types/dist/version.js +4 -1
  377. package/node_modules/@playdrop/vox-three/dist/src/index.d.ts +1 -1
  378. package/node_modules/@playdrop/vox-three/dist/src/vox.d.ts +2 -2
  379. package/node_modules/@playdrop/vox-three/dist/src/vox.js +20 -18
  380. package/node_modules/@playdrop/vox-three/dist/src/vox.js.map +1 -1
  381. package/node_modules/@playdrop/vox-three/dist/test/vox.test.js +11 -14
  382. package/node_modules/@playdrop/vox-three/dist/test/vox.test.js.map +1 -1
  383. package/package.json +1 -1
@@ -13,10 +13,10 @@ const node_os_1 = __importDefault(require("node:os"));
13
13
  const node_path_1 = __importDefault(require("node:path"));
14
14
  exports.LISTING_CAPTURE_MAX_DURATION_MS = 30 * 60 * 1000;
15
15
  const DEFAULT_LEASE_POLL_INTERVAL_MS = 250;
16
- const LEASE_OWNER_FILE = 'owner.json';
16
+ const LEASE_OWNER_FILE = "owner.json";
17
17
  function resolveListingCaptureLeasePath(env = process.env) {
18
18
  const configured = env.PLAYDROP_LISTING_CAPTURE_LEASE_PATH?.trim();
19
- return configured || node_path_1.default.join(node_os_1.default.tmpdir(), 'playdrop-listing-capture.lock');
19
+ return configured || node_path_1.default.join(node_os_1.default.tmpdir(), "playdrop-listing-capture.lock");
20
20
  }
21
21
  function isProcessAlive(pid) {
22
22
  if (!Number.isInteger(pid) || pid <= 0) {
@@ -27,20 +27,20 @@ function isProcessAlive(pid) {
27
27
  return true;
28
28
  }
29
29
  catch (error) {
30
- return error.code === 'EPERM';
30
+ return error.code === "EPERM";
31
31
  }
32
32
  }
33
33
  async function readLeaseOwner(lockPath) {
34
34
  try {
35
- const parsed = JSON.parse(await (0, promises_1.readFile)(node_path_1.default.join(lockPath, LEASE_OWNER_FILE), 'utf8'));
36
- if (typeof parsed.token !== 'string'
37
- || !parsed.token
38
- || !Number.isInteger(parsed.pid)
39
- || Number(parsed.pid) <= 0
40
- || typeof parsed.acquiredAt !== 'string'
41
- || !parsed.acquiredAt
42
- || typeof parsed.workspaceDir !== 'string'
43
- || !node_path_1.default.isAbsolute(parsed.workspaceDir)) {
35
+ const parsed = JSON.parse(await (0, promises_1.readFile)(node_path_1.default.join(lockPath, LEASE_OWNER_FILE), "utf8"));
36
+ if (typeof parsed.token !== "string" ||
37
+ !parsed.token ||
38
+ !Number.isInteger(parsed.pid) ||
39
+ Number(parsed.pid) <= 0 ||
40
+ typeof parsed.acquiredAt !== "string" ||
41
+ !parsed.acquiredAt ||
42
+ typeof parsed.workspaceDir !== "string" ||
43
+ !node_path_1.default.isAbsolute(parsed.workspaceDir)) {
44
44
  return null;
45
45
  }
46
46
  return parsed;
@@ -56,7 +56,7 @@ async function removeDeadLease(lockPath, token) {
56
56
  }
57
57
  catch (error) {
58
58
  const code = error.code;
59
- if (code === 'ENOENT' || code === 'EEXIST') {
59
+ if (code === "ENOENT" || code === "EEXIST") {
60
60
  return false;
61
61
  }
62
62
  throw error;
@@ -66,25 +66,25 @@ async function removeDeadLease(lockPath, token) {
66
66
  }
67
67
  async function acquireListingCaptureLease(input = {}) {
68
68
  if (input.timeoutMs !== undefined && input.deadlineAt !== undefined) {
69
- throw new Error('listing_capture_lease_deadline_conflict');
69
+ throw new Error("listing_capture_lease_deadline_conflict");
70
70
  }
71
71
  const timeoutMs = input.timeoutMs ?? exports.LISTING_CAPTURE_MAX_DURATION_MS;
72
72
  const pollIntervalMs = input.pollIntervalMs ?? DEFAULT_LEASE_POLL_INTERVAL_MS;
73
73
  if (!Number.isInteger(timeoutMs) || timeoutMs <= 0) {
74
- throw new Error('listing_capture_timeout_invalid');
74
+ throw new Error("listing_capture_timeout_invalid");
75
75
  }
76
76
  if (!Number.isInteger(pollIntervalMs) || pollIntervalMs <= 0) {
77
- throw new Error('listing_capture_lease_poll_interval_invalid');
77
+ throw new Error("listing_capture_lease_poll_interval_invalid");
78
78
  }
79
79
  const lockPath = input.lockPath ?? resolveListingCaptureLeasePath();
80
80
  if (!node_path_1.default.isAbsolute(lockPath)) {
81
- throw new Error('listing_capture_lease_path_invalid');
81
+ throw new Error("listing_capture_lease_path_invalid");
82
82
  }
83
83
  const workspaceDir = node_path_1.default.resolve(input.workspaceDir ?? process.cwd());
84
84
  const token = (0, node_crypto_1.randomUUID)();
85
85
  const deadlineAt = input.deadlineAt ?? Date.now() + timeoutMs;
86
86
  if (!Number.isFinite(deadlineAt) || deadlineAt <= Date.now()) {
87
- throw new Error('listing_capture_timeout');
87
+ throw new Error("listing_capture_timeout");
88
88
  }
89
89
  while (true) {
90
90
  try {
@@ -96,21 +96,21 @@ async function acquireListingCaptureLease(input = {}) {
96
96
  workspaceDir,
97
97
  };
98
98
  const temporaryOwnerPath = node_path_1.default.join(lockPath, `${LEASE_OWNER_FILE}.${token}.tmp`);
99
- await (0, promises_1.writeFile)(temporaryOwnerPath, `${JSON.stringify(owner)}\n`, { encoding: 'utf8', mode: 0o600 });
99
+ await (0, promises_1.writeFile)(temporaryOwnerPath, `${JSON.stringify(owner)}\n`, { encoding: "utf8", mode: 0o600 });
100
100
  await (0, promises_1.rename)(temporaryOwnerPath, node_path_1.default.join(lockPath, LEASE_OWNER_FILE));
101
101
  return {
102
102
  deadlineAt,
103
103
  release: async () => {
104
104
  const current = await readLeaseOwner(lockPath);
105
105
  if (!current || current.token !== token) {
106
- throw new Error('listing_capture_lease_ownership_lost');
106
+ throw new Error("listing_capture_lease_ownership_lost");
107
107
  }
108
108
  await (0, promises_1.rm)(lockPath, { recursive: true, force: true });
109
109
  },
110
110
  };
111
111
  }
112
112
  catch (error) {
113
- if (error.code !== 'EEXIST') {
113
+ if (error.code !== "EEXIST") {
114
114
  throw error;
115
115
  }
116
116
  }
@@ -127,13 +127,13 @@ async function acquireListingCaptureLease(input = {}) {
127
127
  if (remainingMs <= 0) {
128
128
  throw new Error(`listing_capture_lease_timeout:${current.pid}`);
129
129
  }
130
- await new Promise(resolve => setTimeout(resolve, Math.min(pollIntervalMs, remainingMs)));
130
+ await new Promise((resolve) => setTimeout(resolve, Math.min(pollIntervalMs, remainingMs)));
131
131
  }
132
132
  }
133
133
  function remainingListingCaptureTime(deadlineAt) {
134
134
  const remainingMs = Math.floor(deadlineAt - Date.now());
135
135
  if (remainingMs <= 0) {
136
- throw new Error('listing_capture_timeout');
136
+ throw new Error("listing_capture_timeout");
137
137
  }
138
138
  return remainingMs;
139
139
  }
@@ -1,6 +1,6 @@
1
1
  export type WorkerUploadPreflightContext = {
2
- kind: 'NEW_GAME' | 'REMIX_GAME' | 'GAME_UPDATE';
3
- target: 'FIRST_PARTY' | 'PERSONAL';
2
+ kind: "NEW_GAME" | "REMIX_GAME" | "GAME_UPDATE";
3
+ target: "FIRST_PARTY" | "PERSONAL";
4
4
  creatorUsername: string;
5
5
  creatorRequest: string;
6
6
  outputVersion?: string;
@@ -6,7 +6,7 @@ const node_path_1 = require("node:path");
6
6
  function findWorkerTaskContextPath(projectDir) {
7
7
  let current = (0, node_path_1.resolve)(projectDir);
8
8
  while (true) {
9
- const candidate = (0, node_path_1.join)(current, '.playdrop', 'task.json');
9
+ const candidate = (0, node_path_1.join)(current, ".playdrop", "task.json");
10
10
  if ((0, node_fs_1.existsSync)(candidate)) {
11
11
  return candidate;
12
12
  }
@@ -24,7 +24,7 @@ function readWorkerUploadPreflightContext(projectDir) {
24
24
  }
25
25
  let parsed;
26
26
  try {
27
- parsed = JSON.parse((0, node_fs_1.readFileSync)(contextPath, 'utf8'));
27
+ parsed = JSON.parse((0, node_fs_1.readFileSync)(contextPath, "utf8"));
28
28
  }
29
29
  catch (error) {
30
30
  const reason = error instanceof Error ? error.message : String(error);
@@ -34,40 +34,40 @@ function readWorkerUploadPreflightContext(projectDir) {
34
34
  const task = parsed.task;
35
35
  const request = parsed.request;
36
36
  const playdrop = task?.metadata?.playdrop;
37
- if (!task
38
- || typeof task !== 'object'
39
- || Array.isArray(task)
40
- || !request
41
- || typeof request !== 'object'
42
- || Array.isArray(request)
43
- || !playdrop
44
- || typeof playdrop !== 'object'
45
- || Array.isArray(playdrop)) {
37
+ if (!task ||
38
+ typeof task !== "object" ||
39
+ Array.isArray(task) ||
40
+ !request ||
41
+ typeof request !== "object" ||
42
+ Array.isArray(request) ||
43
+ !playdrop ||
44
+ typeof playdrop !== "object" ||
45
+ Array.isArray(playdrop)) {
46
46
  throw new Error(`agent_task_context_invalid: ${contextPath} has invalid protocol-v2 task metadata.`);
47
47
  }
48
48
  const kind = playdrop.kind;
49
- if (kind !== 'NEW_GAME' && kind !== 'REMIX_GAME' && kind !== 'GAME_UPDATE') {
49
+ if (kind !== "NEW_GAME" && kind !== "REMIX_GAME" && kind !== "GAME_UPDATE") {
50
50
  return null;
51
51
  }
52
52
  const target = task.executionTarget;
53
- if (target !== 'FIRST_PARTY' && target !== 'PERSONAL') {
53
+ if (target !== "FIRST_PARTY" && target !== "PERSONAL") {
54
54
  throw new Error(`agent_task_context_invalid: ${contextPath} has invalid execution target.`);
55
55
  }
56
56
  return {
57
57
  kind,
58
58
  target,
59
- creatorUsername: typeof playdrop.creatorUsername === 'string' ? playdrop.creatorUsername.trim() : '',
60
- creatorRequest: typeof request.prompt === 'string' ? request.prompt.trim() : '',
61
- ...(typeof playdrop.output?.version === 'string' && playdrop.output.version.trim()
59
+ creatorUsername: typeof playdrop.creatorUsername === "string" ? playdrop.creatorUsername.trim() : "",
60
+ creatorRequest: typeof request.prompt === "string" ? request.prompt.trim() : "",
61
+ ...(typeof playdrop.output?.version === "string" && playdrop.output.version.trim()
62
62
  ? { outputVersion: playdrop.output.version.trim() }
63
63
  : {}),
64
- ...(playdrop.tweaks
65
- && typeof playdrop.tweaks === 'object'
66
- && !Array.isArray(playdrop.tweaks)
67
- && typeof playdrop.tweaks.id === 'string'
68
- && playdrop.tweaks.values
69
- && typeof playdrop.tweaks.values === 'object'
70
- && !Array.isArray(playdrop.tweaks.values)
64
+ ...(playdrop.tweaks &&
65
+ typeof playdrop.tweaks === "object" &&
66
+ !Array.isArray(playdrop.tweaks) &&
67
+ typeof playdrop.tweaks.id === "string" &&
68
+ playdrop.tweaks.values &&
69
+ typeof playdrop.tweaks.values === "object" &&
70
+ !Array.isArray(playdrop.tweaks.values)
71
71
  ? { tweaks: { id: playdrop.tweaks.id, values: playdrop.tweaks.values } }
72
72
  : {}),
73
73
  };
@@ -75,23 +75,23 @@ function readWorkerUploadPreflightContext(projectDir) {
75
75
  if (parsed?.protocolVersion !== undefined) {
76
76
  throw new Error(`agent_task_context_invalid: ${contextPath} has unsupported protocol version.`);
77
77
  }
78
- if (parsed?.kind !== 'NEW_GAME' && parsed?.kind !== 'REMIX_GAME' && parsed?.kind !== 'GAME_UPDATE') {
78
+ if (parsed?.kind !== "NEW_GAME" && parsed?.kind !== "REMIX_GAME" && parsed?.kind !== "GAME_UPDATE") {
79
79
  return null;
80
80
  }
81
- if (parsed.target !== 'FIRST_PARTY' && parsed.target !== 'PERSONAL') {
81
+ if (parsed.target !== "FIRST_PARTY" && parsed.target !== "PERSONAL") {
82
82
  throw new Error(`agent_task_context_invalid: ${contextPath} has invalid target.`);
83
83
  }
84
84
  return {
85
85
  kind: parsed.kind,
86
86
  target: parsed.target,
87
- creatorUsername: typeof parsed.creatorUsername === 'string' ? parsed.creatorUsername.trim() : '',
88
- creatorRequest: typeof parsed.creatorRequest === 'string' ? parsed.creatorRequest.trim() : '',
89
- ...(parsed.tweaks
90
- && typeof parsed.tweaks === 'object'
91
- && typeof parsed.tweaks.id === 'string'
92
- && parsed.tweaks.values
93
- && typeof parsed.tweaks.values === 'object'
94
- && !Array.isArray(parsed.tweaks.values)
87
+ creatorUsername: typeof parsed.creatorUsername === "string" ? parsed.creatorUsername.trim() : "",
88
+ creatorRequest: typeof parsed.creatorRequest === "string" ? parsed.creatorRequest.trim() : "",
89
+ ...(parsed.tweaks &&
90
+ typeof parsed.tweaks === "object" &&
91
+ typeof parsed.tweaks.id === "string" &&
92
+ parsed.tweaks.values &&
93
+ typeof parsed.tweaks.values === "object" &&
94
+ !Array.isArray(parsed.tweaks.values)
95
95
  ? { tweaks: parsed.tweaks }
96
96
  : {}),
97
97
  };
package/dist/messages.js CHANGED
@@ -27,13 +27,10 @@ function printErrorWithHelp(problem, suggestions, options = {}) {
27
27
  }
28
28
  }
29
29
  function printLoginRequired(context, command) {
30
- printErrorWithHelp(`${context} requires you to be logged in.`, [
31
- 'Run "playdrop auth login" to authenticate.',
32
- 'Use "playdrop auth whoami" to verify your current status.',
33
- ], { command });
30
+ printErrorWithHelp(`${context} requires you to be logged in.`, ['Run "playdrop auth login" to authenticate.', 'Use "playdrop auth whoami" to verify your current status.'], { command });
34
31
  }
35
32
  function printUnknownEnvironment(env, available, command) {
36
- const listLine = available ? `Available environments: ${available}.` : '';
33
+ const listLine = available ? `Available environments: ${available}.` : "";
37
34
  const suggestions = [
38
35
  listLine,
39
36
  'Run "playdrop auth login --env <env>" to store a supported environment before retrying.',
@@ -41,25 +38,20 @@ function printUnknownEnvironment(env, available, command) {
41
38
  printErrorWithHelp(`Environment "${env}" is not supported.`, suggestions, { command });
42
39
  }
43
40
  function printConfigEnvironmentMissing(command) {
44
- printErrorWithHelp('No environment is configured yet.', [
41
+ printErrorWithHelp("No environment is configured yet.", [
45
42
  'Run "playdrop auth login" to choose an environment and save your credentials.',
46
43
  'Use "playdrop auth whoami" after logging in to confirm your status.',
47
44
  ], { command });
48
45
  }
49
46
  function printNetworkIssue(context, command) {
50
- printErrorWithHelp(context, [
51
- 'Check your network connection and ensure the Playdrop API is reachable.',
52
- 'Retry once connectivity is restored.'
53
- ], { command });
47
+ printErrorWithHelp(context, ["Check your network connection and ensure the Playdrop API is reachable.", "Retry once connectivity is restored."], { command });
54
48
  }
55
49
  function printCatalogueMissing(directory, command) {
56
50
  printErrorWithHelp(`Processing "${directory}" requires a catalogue.json at the root, but none was found.`, [
57
51
  'Run "playdrop project init ." inside that folder to create the starter files without changing existing content.',
58
- 'Use "playdrop project create app <name>" to register your apps and add them to the catalogue.'
52
+ 'Use "playdrop project create app <name>" to register your apps and add them to the catalogue.',
59
53
  ], { command });
60
54
  }
61
55
  function printInvalidCatalogue(command) {
62
- printErrorWithHelp('No valid entries were found in the catalogue files.', [
63
- 'Fix the catalogue.json files highlighted above, then rerun the command.'
64
- ], { command });
56
+ printErrorWithHelp("No valid entries were found in the catalogue files.", ["Fix the catalogue.json files highlighted above, then rerun the command."], { command });
65
57
  }
package/dist/output.js CHANGED
@@ -20,23 +20,23 @@ function printSection(title) {
20
20
  console.log(title);
21
21
  }
22
22
  function formatOptionalValue(value) {
23
- if (typeof value === 'string') {
24
- return value.trim().length > 0 ? value : 'none';
23
+ if (typeof value === "string") {
24
+ return value.trim().length > 0 ? value : "none";
25
25
  }
26
26
  if (value === null || value === undefined) {
27
- return 'none';
27
+ return "none";
28
28
  }
29
29
  return String(value);
30
30
  }
31
31
  function formatTimestamp(isoDate) {
32
32
  try {
33
33
  const date = new Date(isoDate);
34
- return date.toLocaleString('en-US', {
35
- year: 'numeric',
36
- month: 'short',
37
- day: 'numeric',
38
- hour: '2-digit',
39
- minute: '2-digit',
34
+ return date.toLocaleString("en-US", {
35
+ year: "numeric",
36
+ month: "short",
37
+ day: "numeric",
38
+ hour: "2-digit",
39
+ minute: "2-digit",
40
40
  });
41
41
  }
42
42
  catch {
@@ -1,4 +1,4 @@
1
- import type { Browser, BrowserContext, BrowserContextOptions, Page } from 'playwright-core';
1
+ import type { Browser, BrowserContext, BrowserContextOptions, Page } from "playwright-core";
2
2
  export declare const HEADLESS_CHROMIUM_ARGS: readonly ["--no-sandbox", "--disable-web-security", "--use-gl=angle", "--use-angle=swiftshader", "--enable-unsafe-swiftshader", "--ignore-gpu-blocklist"];
3
3
  export declare const INTERACTIVE_CHROMIUM_ARGS: readonly ["--no-sandbox", "--disable-web-security", "--ignore-gpu-blocklist"];
4
4
  export declare const INSTALLED_CHROME_ARGS: readonly ["--no-sandbox", "--disable-web-security", "--ignore-gpu-blocklist"];
@@ -41,31 +41,25 @@ exports.withChromiumPage = withChromiumPage;
41
41
  exports.withInstalledChromePage = withInstalledChromePage;
42
42
  exports.launchPersistentChromiumContext = launchPersistentChromiumContext;
43
43
  const node_url_1 = require("node:url");
44
- const TOOL_NAME = 'playdrop';
45
- const INSTALLED_CHROME_CHANNEL = 'chrome';
46
- const COMMON_CHROMIUM_ARGS = [
47
- '--no-sandbox',
48
- '--disable-web-security',
49
- ];
44
+ const TOOL_NAME = "playdrop";
45
+ const INSTALLED_CHROME_CHANNEL = "chrome";
46
+ const COMMON_CHROMIUM_ARGS = ["--no-sandbox", "--disable-web-security"];
50
47
  // Force software WebGL for headless capture so local preview output stays stable.
51
48
  exports.HEADLESS_CHROMIUM_ARGS = [
52
49
  ...COMMON_CHROMIUM_ARGS,
53
- '--use-gl=angle',
54
- '--use-angle=swiftshader',
55
- '--enable-unsafe-swiftshader',
56
- '--ignore-gpu-blocklist',
50
+ "--use-gl=angle",
51
+ "--use-angle=swiftshader",
52
+ "--enable-unsafe-swiftshader",
53
+ "--ignore-gpu-blocklist",
57
54
  ];
58
55
  // Visible dev-browser sessions should use the normal GPU path instead of SwiftShader.
59
- exports.INTERACTIVE_CHROMIUM_ARGS = [
60
- ...COMMON_CHROMIUM_ARGS,
61
- '--ignore-gpu-blocklist',
62
- ];
56
+ exports.INTERACTIVE_CHROMIUM_ARGS = [...COMMON_CHROMIUM_ARGS, "--ignore-gpu-blocklist"];
63
57
  // Deterministic project checks must exercise the installed Chrome GPU path.
64
58
  exports.INSTALLED_CHROME_ARGS = exports.INTERACTIVE_CHROMIUM_ARGS;
65
59
  // Backward-compatible alias for older imports.
66
60
  exports.CHROMIUM_ARGS = exports.HEADLESS_CHROMIUM_ARGS;
67
61
  let customLoader = null;
68
- const nativeImport = new Function('specifier', 'return import(specifier);');
62
+ const nativeImport = new Function("specifier", "return import(specifier);");
69
63
  function setPlaywrightLoader(loader) {
70
64
  customLoader = loader;
71
65
  }
@@ -76,59 +70,60 @@ async function loadPlaywright() {
76
70
  const loaderPath = process.env.PLAYDROP_PLAYWRIGHT_LOADER_PATH?.trim();
77
71
  if (loaderPath) {
78
72
  const loaderModule = await nativeImport((0, node_url_1.pathToFileURL)(loaderPath).href);
79
- const candidate = loaderModule.loadPlaywright
80
- ?? loaderModule.createPlaywrightModule
81
- ?? loaderModule.default
82
- ?? loaderModule;
83
- if (typeof candidate === 'function') {
73
+ const candidate = loaderModule.loadPlaywright ?? loaderModule.createPlaywrightModule ?? loaderModule.default ?? loaderModule;
74
+ if (typeof candidate === "function") {
84
75
  return await candidate();
85
76
  }
86
- if (candidate && typeof candidate === 'object' && typeof candidate.chromium?.launch === 'function') {
77
+ if (candidate && typeof candidate === "object" && typeof candidate.chromium?.launch === "function") {
87
78
  return candidate;
88
79
  }
89
80
  throw new Error(`Invalid Playwright loader module at ${loaderPath}.`);
90
81
  }
91
- return Promise.resolve().then(() => __importStar(require('playwright-core')));
82
+ return Promise.resolve().then(() => __importStar(require("playwright-core")));
92
83
  }
93
84
  function createPlaywrightLaunchError(tool, error) {
94
- const message = error && typeof error === 'object' && 'message' in error ? String(error.message) : String(error);
85
+ const message = error && typeof error === "object" && "message" in error
86
+ ? String(error.message)
87
+ : String(error);
95
88
  if (/browserType\.launch/i.test(message) || /Chromium/i.test(message)) {
96
89
  return new Error([
97
90
  `[${tool}] Failed to launch Playwright Chromium.`,
98
- '',
99
- 'Required setup:',
100
- ' 1. npx playwright install chromium',
91
+ "",
92
+ "Required setup:",
93
+ " 1. npx playwright install chromium",
101
94
  ' 2. On macOS: xattr -dr com.apple.quarantine "$HOME/Library/Caches/ms-playwright"',
102
- ' 3. If the issue persists, rerun the command with elevated privileges or outside sandboxed contexts.',
103
- '',
95
+ " 3. If the issue persists, rerun the command with elevated privileges or outside sandboxed contexts.",
96
+ "",
104
97
  `Original error: ${message}`,
105
- ].join('\n'));
98
+ ].join("\n"));
106
99
  }
107
100
  return error instanceof Error ? error : new Error(message);
108
101
  }
109
102
  function createInstalledChromeLaunchError(tool, error) {
110
- const message = error && typeof error === 'object' && 'message' in error ? String(error.message) : String(error);
103
+ const message = error && typeof error === "object" && "message" in error
104
+ ? String(error.message)
105
+ : String(error);
111
106
  return new Error([
112
107
  `[${tool}] Failed to launch installed Google Chrome.`,
113
- '',
114
- 'Required setup:',
115
- ' 1. Install Google Chrome for this macOS user.',
116
- ' 2. Run from a logged-in GUI session with WindowServer access.',
117
- ' 3. If invoked over SSH, keep keychain unlock and the command in the same SSH session.',
118
- '',
108
+ "",
109
+ "Required setup:",
110
+ " 1. Install Google Chrome for this macOS user.",
111
+ " 2. Run from a logged-in GUI session with WindowServer access.",
112
+ " 3. If invoked over SSH, keep keychain unlock and the command in the same SSH session.",
113
+ "",
119
114
  `Original error: ${message}`,
120
- ].join('\n'));
115
+ ].join("\n"));
121
116
  }
122
117
  async function grantAutomationLocalNetworkAccess(context, origin) {
123
118
  if (!origin?.trim()) {
124
119
  return;
125
120
  }
126
121
  const grantPermissions = context.grantPermissions;
127
- if (typeof grantPermissions !== 'function') {
122
+ if (typeof grantPermissions !== "function") {
128
123
  return;
129
124
  }
130
125
  try {
131
- await grantPermissions.call(context, ['local-network-access'], { origin });
126
+ await grantPermissions.call(context, ["local-network-access"], { origin });
132
127
  }
133
128
  catch (error) {
134
129
  const message = error instanceof Error ? error.message : String(error);
@@ -214,7 +209,7 @@ async function withInstalledChromePage(callback, options = {}) {
214
209
  }
215
210
  async function launchPersistentChromiumContext(userDataDir, options = {}) {
216
211
  const { chromium } = await loadPlaywright();
217
- if (typeof chromium.launchPersistentContext !== 'function') {
212
+ if (typeof chromium.launchPersistentContext !== "function") {
218
213
  throw new Error(`[${TOOL_NAME}] Your Playwright Chromium build does not support persistent contexts.`);
219
214
  }
220
215
  try {
@@ -19,9 +19,9 @@ function resolveProxyAgent() {
19
19
  return cachedProxyAgent;
20
20
  }
21
21
  const candidates = [
22
- () => attemptRequire('undici')?.ProxyAgent ?? null,
23
- () => attemptRequire('node:undici')?.ProxyAgent ?? null,
24
- () => attemptRequire('internal/deps/undici/undici')?.ProxyAgent ?? null,
22
+ () => attemptRequire("undici")?.ProxyAgent ?? null,
23
+ () => attemptRequire("node:undici")?.ProxyAgent ?? null,
24
+ () => attemptRequire("internal/deps/undici/undici")?.ProxyAgent ?? null,
25
25
  ];
26
26
  for (const load of candidates) {
27
27
  const ctor = load();
@@ -36,7 +36,7 @@ function resolveProxyAgent() {
36
36
  function firstDefined(keys) {
37
37
  for (const key of keys) {
38
38
  const value = process.env[key];
39
- if (typeof value === 'string' && value.trim().length > 0) {
39
+ if (typeof value === "string" && value.trim().length > 0) {
40
40
  return value.trim();
41
41
  }
42
42
  }
@@ -44,25 +44,25 @@ function firstDefined(keys) {
44
44
  }
45
45
  function normalizeHost(value) {
46
46
  let normalized = value.trim().toLowerCase();
47
- if (normalized.startsWith('[') && normalized.endsWith(']')) {
47
+ if (normalized.startsWith("[") && normalized.endsWith("]")) {
48
48
  normalized = normalized.slice(1, -1);
49
49
  }
50
50
  return normalized;
51
51
  }
52
52
  function splitHostPort(rule) {
53
- if (rule.startsWith('[')) {
54
- const closing = rule.indexOf(']');
53
+ if (rule.startsWith("[")) {
54
+ const closing = rule.indexOf("]");
55
55
  if (closing !== -1) {
56
56
  const host = rule.slice(1, closing);
57
57
  const remainder = rule.slice(closing + 1);
58
- if (remainder.startsWith(':')) {
58
+ if (remainder.startsWith(":")) {
59
59
  return { host, port: remainder.slice(1) };
60
60
  }
61
61
  return { host };
62
62
  }
63
63
  }
64
- const firstColon = rule.indexOf(':');
65
- const lastColon = rule.lastIndexOf(':');
64
+ const firstColon = rule.indexOf(":");
65
+ const lastColon = rule.lastIndexOf(":");
66
66
  if (firstColon !== -1 && firstColon === lastColon) {
67
67
  return { host: rule.slice(0, firstColon), port: rule.slice(firstColon + 1) };
68
68
  }
@@ -72,7 +72,7 @@ function matchesNoProxyRule(host, port, rule) {
72
72
  if (!rule) {
73
73
  return false;
74
74
  }
75
- if (rule === '*') {
75
+ if (rule === "*") {
76
76
  return true;
77
77
  }
78
78
  const { host: ruleHostRaw, port: rulePortRaw } = splitHostPort(rule);
@@ -91,41 +91,44 @@ function matchesNoProxyRule(host, port, rule) {
91
91
  if (normalizedRuleHost === host) {
92
92
  return true;
93
93
  }
94
- if (normalizedRuleHost.startsWith('.')) {
94
+ if (normalizedRuleHost.startsWith(".")) {
95
95
  const suffix = normalizedRuleHost.slice(1);
96
96
  return host === suffix || host.endsWith(`.${suffix}`);
97
97
  }
98
- if (normalizedRuleHost.startsWith('*')) {
99
- const suffix = normalizedRuleHost.replace(/^\*+/, '');
98
+ if (normalizedRuleHost.startsWith("*")) {
99
+ const suffix = normalizedRuleHost.replace(/^\*+/, "");
100
100
  if (!suffix) {
101
101
  return true;
102
102
  }
103
- const normalizedSuffix = suffix.startsWith('.') ? suffix.slice(1) : suffix;
103
+ const normalizedSuffix = suffix.startsWith(".") ? suffix.slice(1) : suffix;
104
104
  return host === normalizedSuffix || host.endsWith(`.${normalizedSuffix}`);
105
105
  }
106
106
  return host === normalizedRuleHost || host.endsWith(`.${normalizedRuleHost}`);
107
107
  }
108
108
  function isNoProxyMatch(target) {
109
- const raw = firstDefined(['NO_PROXY', 'no_proxy']);
109
+ const raw = firstDefined(["NO_PROXY", "no_proxy"]);
110
110
  if (!raw) {
111
111
  return false;
112
112
  }
113
113
  const host = normalizeHost(target.hostname);
114
- const port = target.port || (target.protocol === 'https:' ? '443' : target.protocol === 'http:' ? '80' : '');
115
- const rules = raw.split(',').map((entry) => entry.trim().toLowerCase()).filter(Boolean);
114
+ const port = target.port || (target.protocol === "https:" ? "443" : target.protocol === "http:" ? "80" : "");
115
+ const rules = raw
116
+ .split(",")
117
+ .map((entry) => entry.trim().toLowerCase())
118
+ .filter(Boolean);
116
119
  return rules.some((rule) => matchesNoProxyRule(host, port, rule));
117
120
  }
118
121
  function resolveProxyUrl(target) {
119
122
  const protocol = target.protocol;
120
123
  let proxy;
121
- if (protocol === 'http:') {
122
- proxy = firstDefined(['HTTP_PROXY', 'http_proxy', 'ALL_PROXY', 'all_proxy']);
124
+ if (protocol === "http:") {
125
+ proxy = firstDefined(["HTTP_PROXY", "http_proxy", "ALL_PROXY", "all_proxy"]);
123
126
  }
124
- else if (protocol === 'https:') {
125
- proxy = firstDefined(['HTTPS_PROXY', 'https_proxy', 'HTTP_PROXY', 'http_proxy', 'ALL_PROXY', 'all_proxy']);
127
+ else if (protocol === "https:") {
128
+ proxy = firstDefined(["HTTPS_PROXY", "https_proxy", "HTTP_PROXY", "http_proxy", "ALL_PROXY", "all_proxy"]);
126
129
  }
127
130
  else {
128
- proxy = firstDefined(['ALL_PROXY', 'all_proxy']);
131
+ proxy = firstDefined(["ALL_PROXY", "all_proxy"]);
129
132
  }
130
133
  if (!proxy) {
131
134
  return null;
@@ -136,7 +139,7 @@ function resolveProxyUrl(target) {
136
139
  return proxy;
137
140
  }
138
141
  function determineProxyForRequest(input) {
139
- if (typeof input === 'string') {
142
+ if (typeof input === "string") {
140
143
  if (!/^https?:/i.test(input)) {
141
144
  return null;
142
145
  }
@@ -151,7 +154,7 @@ function determineProxyForRequest(input) {
151
154
  if (input instanceof URL) {
152
155
  return resolveProxyUrl(input);
153
156
  }
154
- if (typeof Request !== 'undefined' && input instanceof Request) {
157
+ if (typeof Request !== "undefined" && input instanceof Request) {
155
158
  try {
156
159
  const absolute = new URL(input.url);
157
160
  return resolveProxyUrl(absolute);
@@ -163,7 +166,7 @@ function determineProxyForRequest(input) {
163
166
  return null;
164
167
  }
165
168
  function createProxyAwareFetch(fetchImpl, ProxyAgent) {
166
- if (typeof fetchImpl !== 'function') {
169
+ if (typeof fetchImpl !== "function") {
167
170
  return fetchImpl;
168
171
  }
169
172
  const agentCache = new Map();
@@ -193,7 +196,7 @@ function installProxyFetch() {
193
196
  return;
194
197
  }
195
198
  installed = true;
196
- if (typeof globalThis.fetch !== 'function') {
199
+ if (typeof globalThis.fetch !== "function") {
197
200
  return;
198
201
  }
199
202
  const ProxyAgent = resolveProxyAgent();