@overcrow/mcp 0.0.0 → 0.1.0

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 (461) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +91 -1
  3. package/dist/audit/index.js +103 -0
  4. package/dist/audit/lexer.js +417 -0
  5. package/dist/audit/project.js +200 -0
  6. package/dist/audit/rules.js +661 -0
  7. package/dist/bootstrap/download.js +229 -0
  8. package/dist/bootstrap/install.js +280 -0
  9. package/dist/bootstrap/pin.js +85 -0
  10. package/dist/bootstrap/pin.json +119 -0
  11. package/dist/bootstrap/zip.js +258 -0
  12. package/dist/cli.js +200 -0
  13. package/dist/confine.js +244 -0
  14. package/dist/content/docs/en/cli.md +353 -0
  15. package/dist/content/docs/en/dev-channel.md +130 -0
  16. package/dist/content/docs/en/elements.md +469 -0
  17. package/dist/content/docs/en/forms.md +328 -0
  18. package/dist/content/docs/en/guide.md +253 -0
  19. package/dist/content/docs/en/index.md +85 -0
  20. package/dist/content/docs/en/limits.md +241 -0
  21. package/dist/content/docs/en/logic.md +446 -0
  22. package/dist/content/docs/en/manifest.md +381 -0
  23. package/dist/content/docs/en/mcp.md +165 -0
  24. package/dist/content/docs/en/package.md +131 -0
  25. package/dist/content/docs/en/publishing.md +162 -0
  26. package/dist/content/docs/en/reference.md +55 -0
  27. package/dist/content/docs/en/result-shapes.md +332 -0
  28. package/dist/content/docs/en/sdk.md +295 -0
  29. package/dist/content/docs/en/security.md +115 -0
  30. package/dist/content/docs/en/service-reference.md +344 -0
  31. package/dist/content/docs/en/services.md +517 -0
  32. package/dist/content/docs/en/style-properties.md +270 -0
  33. package/dist/content/docs/en/style.md +266 -0
  34. package/dist/content/docs/en/testing.md +400 -0
  35. package/dist/content/docs/en/view.md +338 -0
  36. package/dist/content/docs/en/widgets.md +76 -0
  37. package/dist/content/docs/fr/cli.md +367 -0
  38. package/dist/content/docs/fr/dev-channel.md +140 -0
  39. package/dist/content/docs/fr/elements.md +475 -0
  40. package/dist/content/docs/fr/forms.md +341 -0
  41. package/dist/content/docs/fr/guide.md +264 -0
  42. package/dist/content/docs/fr/index.md +90 -0
  43. package/dist/content/docs/fr/limits.md +244 -0
  44. package/dist/content/docs/fr/logic.md +461 -0
  45. package/dist/content/docs/fr/manifest.md +392 -0
  46. package/dist/content/docs/fr/mcp.md +173 -0
  47. package/dist/content/docs/fr/package.md +139 -0
  48. package/dist/content/docs/fr/publishing.md +172 -0
  49. package/dist/content/docs/fr/reference.md +59 -0
  50. package/dist/content/docs/fr/result-shapes.md +333 -0
  51. package/dist/content/docs/fr/sdk.md +301 -0
  52. package/dist/content/docs/fr/security.md +129 -0
  53. package/dist/content/docs/fr/service-reference.md +346 -0
  54. package/dist/content/docs/fr/services.md +540 -0
  55. package/dist/content/docs/fr/style-properties.md +272 -0
  56. package/dist/content/docs/fr/style.md +281 -0
  57. package/dist/content/docs/fr/testing.md +417 -0
  58. package/dist/content/docs/fr/view.md +352 -0
  59. package/dist/content/docs/fr/widgets.md +81 -0
  60. package/dist/content/examples/clock/LICENSE +21 -0
  61. package/dist/content/examples/clock/README.md +75 -0
  62. package/dist/content/examples/clock/listing.json +19 -0
  63. package/dist/content/examples/clock/locales/en.json +4 -0
  64. package/dist/content/examples/clock/locales/fr.json +4 -0
  65. package/dist/content/examples/clock/logic.ts +85 -0
  66. package/dist/content/examples/clock/manifest.json +44 -0
  67. package/dist/content/examples/clock/package.json +16 -0
  68. package/dist/content/examples/clock/style.ocss +26 -0
  69. package/dist/content/examples/clock/tests/hidden.scenario.json +68 -0
  70. package/dist/content/examples/clock/tests/load-logic.mjs +22 -0
  71. package/dist/content/examples/clock/tests/logic.test.mjs +89 -0
  72. package/dist/content/examples/clock/tests/options.scenario.json +108 -0
  73. package/dist/content/examples/clock/tests/preview.scenario.json +25 -0
  74. package/dist/content/examples/clock/tests/render.scenario.json +94 -0
  75. package/dist/content/examples/clock/tests/summer-time.scenario.json +74 -0
  76. package/dist/content/examples/clock/tests/ticks.scenario.json +120 -0
  77. package/dist/content/examples/clock/tsconfig.json +16 -0
  78. package/dist/content/examples/clock/view.ocml +8 -0
  79. package/dist/content/examples/countdown/LICENSE +20 -0
  80. package/dist/content/examples/countdown/listing.json +10 -0
  81. package/dist/content/examples/countdown/locales/en.json +15 -0
  82. package/dist/content/examples/countdown/locales/fr.json +15 -0
  83. package/dist/content/examples/countdown/logic.ts +179 -0
  84. package/dist/content/examples/countdown/manifest.json +34 -0
  85. package/dist/content/examples/countdown/package.json +15 -0
  86. package/dist/content/examples/countdown/style.ocss +94 -0
  87. package/dist/content/examples/countdown/tsconfig.json +16 -0
  88. package/dist/content/examples/countdown/view.ocml +42 -0
  89. package/dist/content/examples/fps/LICENSE +21 -0
  90. package/dist/content/examples/fps/README.md +64 -0
  91. package/dist/content/examples/fps/listing.json +19 -0
  92. package/dist/content/examples/fps/locales/en.json +11 -0
  93. package/dist/content/examples/fps/locales/fr.json +11 -0
  94. package/dist/content/examples/fps/logic.ts +64 -0
  95. package/dist/content/examples/fps/manifest.json +30 -0
  96. package/dist/content/examples/fps/package.json +16 -0
  97. package/dist/content/examples/fps/style.ocss +31 -0
  98. package/dist/content/examples/fps/tests/label.scenario.json +63 -0
  99. package/dist/content/examples/fps/tests/load-logic.mjs +22 -0
  100. package/dist/content/examples/fps/tests/logic.test.mjs +60 -0
  101. package/dist/content/examples/fps/tests/preview.scenario.json +29 -0
  102. package/dist/content/examples/fps/tests/refused.scenario.json +20 -0
  103. package/dist/content/examples/fps/tests/render.scenario.json +96 -0
  104. package/dist/content/examples/fps/tests/stale.scenario.json +91 -0
  105. package/dist/content/examples/fps/tests/unavailable.scenario.json +111 -0
  106. package/dist/content/examples/fps/tsconfig.json +16 -0
  107. package/dist/content/examples/fps/view.ocml +11 -0
  108. package/dist/content/examples/media/LICENSE +21 -0
  109. package/dist/content/examples/media/README.md +147 -0
  110. package/dist/content/examples/media/listing.json +19 -0
  111. package/dist/content/examples/media/locales/en.json +11 -0
  112. package/dist/content/examples/media/locales/fr.json +11 -0
  113. package/dist/content/examples/media/logic.ts +191 -0
  114. package/dist/content/examples/media/manifest.json +35 -0
  115. package/dist/content/examples/media/package.json +16 -0
  116. package/dist/content/examples/media/style.ocss +148 -0
  117. package/dist/content/examples/media/tests/covers.scenario.json +144 -0
  118. package/dist/content/examples/media/tests/gesture.scenario.json +173 -0
  119. package/dist/content/examples/media/tests/load-logic.mjs +22 -0
  120. package/dist/content/examples/media/tests/logic.test.mjs +176 -0
  121. package/dist/content/examples/media/tests/marquee.scenario.json +127 -0
  122. package/dist/content/examples/media/tests/preview.scenario.json +52 -0
  123. package/dist/content/examples/media/tests/read-only.scenario.json +53 -0
  124. package/dist/content/examples/media/tests/refused.scenario.json +22 -0
  125. package/dist/content/examples/media/tests/refused.test.mjs +31 -0
  126. package/dist/content/examples/media/tests/render.scenario.json +136 -0
  127. package/dist/content/examples/media/tests/states.scenario.json +257 -0
  128. package/dist/content/examples/media/tests/unavailable.scenario.json +120 -0
  129. package/dist/content/examples/media/tsconfig.json +16 -0
  130. package/dist/content/examples/media/view.ocml +41 -0
  131. package/dist/content/examples/notes/LICENSE +21 -0
  132. package/dist/content/examples/notes/README.md +219 -0
  133. package/dist/content/examples/notes/listing.json +19 -0
  134. package/dist/content/examples/notes/locales/en.json +25 -0
  135. package/dist/content/examples/notes/locales/fr.json +25 -0
  136. package/dist/content/examples/notes/logic.ts +799 -0
  137. package/dist/content/examples/notes/manifest.json +40 -0
  138. package/dist/content/examples/notes/package.json +16 -0
  139. package/dist/content/examples/notes/style.ocss +469 -0
  140. package/dist/content/examples/notes/tests/checks.scenario.json +237 -0
  141. package/dist/content/examples/notes/tests/create.scenario.json +260 -0
  142. package/dist/content/examples/notes/tests/delete.scenario.json +342 -0
  143. package/dist/content/examples/notes/tests/drafts.scenario.json +714 -0
  144. package/dist/content/examples/notes/tests/editor.scenario.json +232 -0
  145. package/dist/content/examples/notes/tests/frame.scenario.json +93 -0
  146. package/dist/content/examples/notes/tests/interactive.scenario.json +344 -0
  147. package/dist/content/examples/notes/tests/limits.scenario.json +1351 -0
  148. package/dist/content/examples/notes/tests/load-logic.mjs +22 -0
  149. package/dist/content/examples/notes/tests/logic.test.mjs +514 -0
  150. package/dist/content/examples/notes/tests/preview.scenario.json +99 -0
  151. package/dist/content/examples/notes/tests/read-only.scenario.json +105 -0
  152. package/dist/content/examples/notes/tests/refused.scenario.json +33 -0
  153. package/dist/content/examples/notes/tests/save.scenario.json +378 -0
  154. package/dist/content/examples/notes/tests/states.scenario.json +640 -0
  155. package/dist/content/examples/notes/tests/typing.scenario.json +562 -0
  156. package/dist/content/examples/notes/tests/unavailable.scenario.json +246 -0
  157. package/dist/content/examples/notes/tsconfig.json +16 -0
  158. package/dist/content/examples/notes/view.ocml +154 -0
  159. package/dist/content/examples/performance/LICENSE +21 -0
  160. package/dist/content/examples/performance/README.md +134 -0
  161. package/dist/content/examples/performance/listing.json +19 -0
  162. package/dist/content/examples/performance/locales/en.json +20 -0
  163. package/dist/content/examples/performance/locales/fr.json +20 -0
  164. package/dist/content/examples/performance/logic.ts +210 -0
  165. package/dist/content/examples/performance/manifest.json +83 -0
  166. package/dist/content/examples/performance/package.json +16 -0
  167. package/dist/content/examples/performance/style.ocss +75 -0
  168. package/dist/content/examples/performance/tests/fahrenheit.scenario.json +110 -0
  169. package/dist/content/examples/performance/tests/horizontal.scenario.json +96 -0
  170. package/dist/content/examples/performance/tests/load-logic.mjs +22 -0
  171. package/dist/content/examples/performance/tests/logic.test.mjs +226 -0
  172. package/dist/content/examples/performance/tests/menu.scenario.json +170 -0
  173. package/dist/content/examples/performance/tests/no-fps-source.scenario.json +47 -0
  174. package/dist/content/examples/performance/tests/preview.scenario.json +45 -0
  175. package/dist/content/examples/performance/tests/refused.scenario.json +20 -0
  176. package/dist/content/examples/performance/tests/refused.test.mjs +19 -0
  177. package/dist/content/examples/performance/tests/region.scenario.json +89 -0
  178. package/dist/content/examples/performance/tests/render.scenario.json +112 -0
  179. package/dist/content/examples/performance/tests/sources.scenario.json +151 -0
  180. package/dist/content/examples/performance/tests/stale.scenario.json +111 -0
  181. package/dist/content/examples/performance/tests/telemetry-only.scenario.json +44 -0
  182. package/dist/content/examples/performance/tests/thresholds.scenario.json +147 -0
  183. package/dist/content/examples/performance/tests/waiting.scenario.json +105 -0
  184. package/dist/content/examples/performance/tsconfig.json +16 -0
  185. package/dist/content/examples/performance/view.ocml +18 -0
  186. package/dist/content/examples/playervox-journal/LICENSE +21 -0
  187. package/dist/content/examples/playervox-journal/README.md +150 -0
  188. package/dist/content/examples/playervox-journal/listing.json +19 -0
  189. package/dist/content/examples/playervox-journal/locales/en.json +25 -0
  190. package/dist/content/examples/playervox-journal/locales/fr.json +25 -0
  191. package/dist/content/examples/playervox-journal/logic.ts +556 -0
  192. package/dist/content/examples/playervox-journal/manifest.json +19 -0
  193. package/dist/content/examples/playervox-journal/package.json +16 -0
  194. package/dist/content/examples/playervox-journal/style.ocss +142 -0
  195. package/dist/content/examples/playervox-journal/tests/changes.scenario.json +482 -0
  196. package/dist/content/examples/playervox-journal/tests/delete.scenario.json +432 -0
  197. package/dist/content/examples/playervox-journal/tests/frame.scenario.json +169 -0
  198. package/dist/content/examples/playervox-journal/tests/load-logic.mjs +22 -0
  199. package/dist/content/examples/playervox-journal/tests/logic.test.mjs +349 -0
  200. package/dist/content/examples/playervox-journal/tests/paging.scenario.json +428 -0
  201. package/dist/content/examples/playervox-journal/tests/preview.scenario.json +184 -0
  202. package/dist/content/examples/playervox-journal/tests/read-only.scenario.json +157 -0
  203. package/dist/content/examples/playervox-journal/tests/refused.scenario.json +39 -0
  204. package/dist/content/examples/playervox-journal/tests/scale.scenario.json +286 -0
  205. package/dist/content/examples/playervox-journal/tests/signed-out.scenario.json +134 -0
  206. package/dist/content/examples/playervox-journal/tests/states.scenario.json +741 -0
  207. package/dist/content/examples/playervox-journal/tests/unavailable.scenario.json +183 -0
  208. package/dist/content/examples/playervox-journal/tsconfig.json +16 -0
  209. package/dist/content/examples/playervox-journal/view.ocml +52 -0
  210. package/dist/content/examples/playervox-rating/LICENSE +21 -0
  211. package/dist/content/examples/playervox-rating/README.md +166 -0
  212. package/dist/content/examples/playervox-rating/listing.json +19 -0
  213. package/dist/content/examples/playervox-rating/locales/en.json +35 -0
  214. package/dist/content/examples/playervox-rating/locales/fr.json +35 -0
  215. package/dist/content/examples/playervox-rating/logic.ts +581 -0
  216. package/dist/content/examples/playervox-rating/manifest.json +19 -0
  217. package/dist/content/examples/playervox-rating/package.json +16 -0
  218. package/dist/content/examples/playervox-rating/style.ocss +333 -0
  219. package/dist/content/examples/playervox-rating/tests/account.scenario.json +125 -0
  220. package/dist/content/examples/playervox-rating/tests/bounds.scenario.json +73 -0
  221. package/dist/content/examples/playervox-rating/tests/draft.scenario.json +199 -0
  222. package/dist/content/examples/playervox-rating/tests/form.scenario.json +142 -0
  223. package/dist/content/examples/playervox-rating/tests/load-logic.mjs +22 -0
  224. package/dist/content/examples/playervox-rating/tests/logic.test.mjs +346 -0
  225. package/dist/content/examples/playervox-rating/tests/offline.scenario.json +142 -0
  226. package/dist/content/examples/playervox-rating/tests/preview.scenario.json +44 -0
  227. package/dist/content/examples/playervox-rating/tests/publish-keyboard.scenario.json +221 -0
  228. package/dist/content/examples/playervox-rating/tests/publish-pointer.scenario.json +314 -0
  229. package/dist/content/examples/playervox-rating/tests/read-only.scenario.json +70 -0
  230. package/dist/content/examples/playervox-rating/tests/refused.scenario.json +45 -0
  231. package/dist/content/examples/playervox-rating/tests/states.scenario.json +362 -0
  232. package/dist/content/examples/playervox-rating/tsconfig.json +16 -0
  233. package/dist/content/examples/playervox-rating/view.ocml +62 -0
  234. package/dist/content/examples/playervox-reviews/LICENSE +21 -0
  235. package/dist/content/examples/playervox-reviews/README.md +194 -0
  236. package/dist/content/examples/playervox-reviews/listing.json +19 -0
  237. package/dist/content/examples/playervox-reviews/locales/en.json +32 -0
  238. package/dist/content/examples/playervox-reviews/locales/fr.json +32 -0
  239. package/dist/content/examples/playervox-reviews/logic.ts +822 -0
  240. package/dist/content/examples/playervox-reviews/manifest.json +30 -0
  241. package/dist/content/examples/playervox-reviews/package.json +16 -0
  242. package/dist/content/examples/playervox-reviews/style.ocss +260 -0
  243. package/dist/content/examples/playervox-reviews/tests/account.scenario.json +249 -0
  244. package/dist/content/examples/playervox-reviews/tests/bounds.scenario.json +336 -0
  245. package/dist/content/examples/playervox-reviews/tests/changes.scenario.json +515 -0
  246. package/dist/content/examples/playervox-reviews/tests/filter.scenario.json +400 -0
  247. package/dist/content/examples/playervox-reviews/tests/frame.scenario.json +185 -0
  248. package/dist/content/examples/playervox-reviews/tests/keyboard.scenario.json +188 -0
  249. package/dist/content/examples/playervox-reviews/tests/load-logic.mjs +22 -0
  250. package/dist/content/examples/playervox-reviews/tests/logic.test.mjs +559 -0
  251. package/dist/content/examples/playervox-reviews/tests/offline-start.scenario.json +152 -0
  252. package/dist/content/examples/playervox-reviews/tests/offline.scenario.json +311 -0
  253. package/dist/content/examples/playervox-reviews/tests/paging.scenario.json +497 -0
  254. package/dist/content/examples/playervox-reviews/tests/preview.scenario.json +286 -0
  255. package/dist/content/examples/playervox-reviews/tests/reading.scenario.json +591 -0
  256. package/dist/content/examples/playervox-reviews/tests/refused.scenario.json +54 -0
  257. package/dist/content/examples/playervox-reviews/tests/scale.scenario.json +303 -0
  258. package/dist/content/examples/playervox-reviews/tests/states.scenario.json +700 -0
  259. package/dist/content/examples/playervox-reviews/tests/unavailable.scenario.json +192 -0
  260. package/dist/content/examples/playervox-reviews/tsconfig.json +16 -0
  261. package/dist/content/examples/playervox-reviews/view.ocml +110 -0
  262. package/dist/content/examples/playervox-score/LICENSE +21 -0
  263. package/dist/content/examples/playervox-score/README.md +131 -0
  264. package/dist/content/examples/playervox-score/listing.json +19 -0
  265. package/dist/content/examples/playervox-score/locales/en.json +23 -0
  266. package/dist/content/examples/playervox-score/locales/fr.json +23 -0
  267. package/dist/content/examples/playervox-score/logic.ts +430 -0
  268. package/dist/content/examples/playervox-score/manifest.json +47 -0
  269. package/dist/content/examples/playervox-score/package.json +16 -0
  270. package/dist/content/examples/playervox-score/style.ocss +247 -0
  271. package/dist/content/examples/playervox-score/tests/grades.scenario.json +279 -0
  272. package/dist/content/examples/playervox-score/tests/load-logic.mjs +22 -0
  273. package/dist/content/examples/playervox-score/tests/logic.test.mjs +229 -0
  274. package/dist/content/examples/playervox-score/tests/options.scenario.json +302 -0
  275. package/dist/content/examples/playervox-score/tests/preview.scenario.json +68 -0
  276. package/dist/content/examples/playervox-score/tests/pulse.scenario.json +157 -0
  277. package/dist/content/examples/playervox-score/tests/refused.scenario.json +21 -0
  278. package/dist/content/examples/playervox-score/tests/signed-out.scenario.json +46 -0
  279. package/dist/content/examples/playervox-score/tests/states.scenario.json +450 -0
  280. package/dist/content/examples/playervox-score/tests/unavailable.scenario.json +84 -0
  281. package/dist/content/examples/playervox-score/tsconfig.json +16 -0
  282. package/dist/content/examples/playervox-score/view.ocml +51 -0
  283. package/dist/content/examples/session/LICENSE +21 -0
  284. package/dist/content/examples/session/README.md +57 -0
  285. package/dist/content/examples/session/listing.json +19 -0
  286. package/dist/content/examples/session/locales/en.json +3 -0
  287. package/dist/content/examples/session/locales/fr.json +3 -0
  288. package/dist/content/examples/session/logic.ts +26 -0
  289. package/dist/content/examples/session/manifest.json +19 -0
  290. package/dist/content/examples/session/package.json +16 -0
  291. package/dist/content/examples/session/style.ocss +16 -0
  292. package/dist/content/examples/session/tests/hidden.scenario.json +45 -0
  293. package/dist/content/examples/session/tests/load-logic.mjs +22 -0
  294. package/dist/content/examples/session/tests/logic.test.mjs +37 -0
  295. package/dist/content/examples/session/tests/preview.scenario.json +28 -0
  296. package/dist/content/examples/session/tests/refused.scenario.json +20 -0
  297. package/dist/content/examples/session/tests/refused.test.mjs +16 -0
  298. package/dist/content/examples/session/tests/render.scenario.json +95 -0
  299. package/dist/content/examples/session/tests/ticks.scenario.json +139 -0
  300. package/dist/content/examples/session/tests/unknown.scenario.json +37 -0
  301. package/dist/content/examples/session/tsconfig.json +16 -0
  302. package/dist/content/examples/session/view.ocml +11 -0
  303. package/dist/content/examples/stopwatch/LICENSE +21 -0
  304. package/dist/content/examples/stopwatch/README.md +99 -0
  305. package/dist/content/examples/stopwatch/listing.json +19 -0
  306. package/dist/content/examples/stopwatch/locales/en.json +8 -0
  307. package/dist/content/examples/stopwatch/locales/fr.json +8 -0
  308. package/dist/content/examples/stopwatch/logic.ts +93 -0
  309. package/dist/content/examples/stopwatch/manifest.json +19 -0
  310. package/dist/content/examples/stopwatch/package.json +16 -0
  311. package/dist/content/examples/stopwatch/style.ocss +54 -0
  312. package/dist/content/examples/stopwatch/tests/errors.scenario.json +121 -0
  313. package/dist/content/examples/stopwatch/tests/gesture.scenario.json +154 -0
  314. package/dist/content/examples/stopwatch/tests/hidden.scenario.json +57 -0
  315. package/dist/content/examples/stopwatch/tests/hundredths.scenario.json +173 -0
  316. package/dist/content/examples/stopwatch/tests/load-logic.mjs +22 -0
  317. package/dist/content/examples/stopwatch/tests/logic.test.mjs +99 -0
  318. package/dist/content/examples/stopwatch/tests/preview.scenario.json +36 -0
  319. package/dist/content/examples/stopwatch/tests/read-only.scenario.json +42 -0
  320. package/dist/content/examples/stopwatch/tests/read-only.test.mjs +18 -0
  321. package/dist/content/examples/stopwatch/tests/refused.scenario.json +22 -0
  322. package/dist/content/examples/stopwatch/tests/refused.test.mjs +18 -0
  323. package/dist/content/examples/stopwatch/tests/render.scenario.json +105 -0
  324. package/dist/content/examples/stopwatch/tests/states.scenario.json +246 -0
  325. package/dist/content/examples/stopwatch/tests/unknown.scenario.json +40 -0
  326. package/dist/content/examples/stopwatch/tsconfig.json +16 -0
  327. package/dist/content/examples/stopwatch/view.ocml +29 -0
  328. package/dist/content/examples/twitch-chat/LICENSE +21 -0
  329. package/dist/content/examples/twitch-chat/README.md +283 -0
  330. package/dist/content/examples/twitch-chat/listing.json +19 -0
  331. package/dist/content/examples/twitch-chat/locales/en.json +52 -0
  332. package/dist/content/examples/twitch-chat/locales/fr.json +52 -0
  333. package/dist/content/examples/twitch-chat/logic.ts +887 -0
  334. package/dist/content/examples/twitch-chat/manifest.json +33 -0
  335. package/dist/content/examples/twitch-chat/package.json +16 -0
  336. package/dist/content/examples/twitch-chat/style.ocss +544 -0
  337. package/dist/content/examples/twitch-chat/tests/account.scenario.json +325 -0
  338. package/dist/content/examples/twitch-chat/tests/burst.scenario.json +1866 -0
  339. package/dist/content/examples/twitch-chat/tests/channel-refused.scenario.json +372 -0
  340. package/dist/content/examples/twitch-chat/tests/channel.scenario.json +480 -0
  341. package/dist/content/examples/twitch-chat/tests/draft.scenario.json +279 -0
  342. package/dist/content/examples/twitch-chat/tests/fade.scenario.json +269 -0
  343. package/dist/content/examples/twitch-chat/tests/failures.scenario.json +420 -0
  344. package/dist/content/examples/twitch-chat/tests/favorites.scenario.json +376 -0
  345. package/dist/content/examples/twitch-chat/tests/frame.scenario.json +152 -0
  346. package/dist/content/examples/twitch-chat/tests/lifetime.scenario.json +186 -0
  347. package/dist/content/examples/twitch-chat/tests/load-logic.mjs +22 -0
  348. package/dist/content/examples/twitch-chat/tests/logic.test.mjs +1053 -0
  349. package/dist/content/examples/twitch-chat/tests/passive.scenario.json +536 -0
  350. package/dist/content/examples/twitch-chat/tests/preview.scenario.json +147 -0
  351. package/dist/content/examples/twitch-chat/tests/read-only.scenario.json +202 -0
  352. package/dist/content/examples/twitch-chat/tests/read-only.test.mjs +63 -0
  353. package/dist/content/examples/twitch-chat/tests/refused.scenario.json +65 -0
  354. package/dist/content/examples/twitch-chat/tests/refused.test.mjs +43 -0
  355. package/dist/content/examples/twitch-chat/tests/render.scenario.json +347 -0
  356. package/dist/content/examples/twitch-chat/tests/reply.scenario.json +384 -0
  357. package/dist/content/examples/twitch-chat/tests/send-refused.scenario.json +383 -0
  358. package/dist/content/examples/twitch-chat/tests/send.scenario.json +300 -0
  359. package/dist/content/examples/twitch-chat/tests/states.scenario.json +455 -0
  360. package/dist/content/examples/twitch-chat/tests/unavailable.scenario.json +256 -0
  361. package/dist/content/examples/twitch-chat/tests/unread.scenario.json +997 -0
  362. package/dist/content/examples/twitch-chat/tsconfig.json +16 -0
  363. package/dist/content/examples/twitch-chat/view.ocml +141 -0
  364. package/dist/content/examples/warframe-market/LICENSE +21 -0
  365. package/dist/content/examples/warframe-market/README.md +176 -0
  366. package/dist/content/examples/warframe-market/listing.json +19 -0
  367. package/dist/content/examples/warframe-market/locales/en.json +44 -0
  368. package/dist/content/examples/warframe-market/locales/fr.json +44 -0
  369. package/dist/content/examples/warframe-market/logic.ts +1265 -0
  370. package/dist/content/examples/warframe-market/manifest.json +92 -0
  371. package/dist/content/examples/warframe-market/package.json +16 -0
  372. package/dist/content/examples/warframe-market/style.ocss +422 -0
  373. package/dist/content/examples/warframe-market/tests/bounds.scenario.json +60 -0
  374. package/dist/content/examples/warframe-market/tests/cached.scenario.json +70 -0
  375. package/dist/content/examples/warframe-market/tests/detail.scenario.json +251 -0
  376. package/dist/content/examples/warframe-market/tests/errors.scenario.json +105 -0
  377. package/dist/content/examples/warframe-market/tests/fixtures.json +295 -0
  378. package/dist/content/examples/warframe-market/tests/load-logic.mjs +22 -0
  379. package/dist/content/examples/warframe-market/tests/logic.test.mjs +505 -0
  380. package/dist/content/examples/warframe-market/tests/no-clipboard.scenario.json +104 -0
  381. package/dist/content/examples/warframe-market/tests/passive.scenario.json +87 -0
  382. package/dist/content/examples/warframe-market/tests/preview.scenario.json +146 -0
  383. package/dist/content/examples/warframe-market/tests/refresh.scenario.json +56 -0
  384. package/dist/content/examples/warframe-market/tests/refused.scenario.json +74 -0
  385. package/dist/content/examples/warframe-market/tests/render.scenario.json +210 -0
  386. package/dist/content/examples/warframe-market/tests/search.scenario.json +189 -0
  387. package/dist/content/examples/warframe-market/tests/unavailable.scenario.json +54 -0
  388. package/dist/content/examples/warframe-market/tsconfig.json +16 -0
  389. package/dist/content/examples/warframe-market/view.ocml +116 -0
  390. package/dist/content/examples/weather/LICENSE +20 -0
  391. package/dist/content/examples/weather/listing.json +10 -0
  392. package/dist/content/examples/weather/locales/en.json +9 -0
  393. package/dist/content/examples/weather/locales/fr.json +9 -0
  394. package/dist/content/examples/weather/logic.ts +62 -0
  395. package/dist/content/examples/weather/manifest.json +51 -0
  396. package/dist/content/examples/weather/package.json +15 -0
  397. package/dist/content/examples/weather/style.ocss +29 -0
  398. package/dist/content/examples/weather/tsconfig.json +16 -0
  399. package/dist/content/examples/weather/view.ocml +12 -0
  400. package/dist/content/index.json +3601 -0
  401. package/dist/content/reference/errors.json +1712 -0
  402. package/dist/content/reference/limits.json +1154 -0
  403. package/dist/content/reference/manifest.md +223 -0
  404. package/dist/content/reference/permissions.json +413 -0
  405. package/dist/content/templates/blank/locales/en.json +3 -0
  406. package/dist/content/templates/blank/locales/fr.json +3 -0
  407. package/dist/content/templates/blank/logic.ts +7 -0
  408. package/dist/content/templates/blank/manifest.json +16 -0
  409. package/dist/content/templates/blank/style.ocss +10 -0
  410. package/dist/content/templates/blank/tests/example.scenario.json +10 -0
  411. package/dist/content/templates/blank/view.ocml +6 -0
  412. package/dist/content/templates/chart/locales/en.json +3 -0
  413. package/dist/content/templates/chart/locales/fr.json +3 -0
  414. package/dist/content/templates/chart/logic.ts +27 -0
  415. package/dist/content/templates/chart/manifest.json +16 -0
  416. package/dist/content/templates/chart/style.ocss +27 -0
  417. package/dist/content/templates/chart/tests/example.scenario.json +10 -0
  418. package/dist/content/templates/chart/view.ocml +10 -0
  419. package/dist/content/templates/counter/locales/en.json +4 -0
  420. package/dist/content/templates/counter/locales/fr.json +4 -0
  421. package/dist/content/templates/counter/logic.ts +20 -0
  422. package/dist/content/templates/counter/manifest.json +16 -0
  423. package/dist/content/templates/counter/style.ocss +26 -0
  424. package/dist/content/templates/counter/tests/example.scenario.json +11 -0
  425. package/dist/content/templates/counter/view.ocml +13 -0
  426. package/dist/content/templates/list/locales/en.json +8 -0
  427. package/dist/content/templates/list/locales/fr.json +8 -0
  428. package/dist/content/templates/list/logic.ts +35 -0
  429. package/dist/content/templates/list/manifest.json +16 -0
  430. package/dist/content/templates/list/style.ocss +42 -0
  431. package/dist/content/templates/list/tests/example.scenario.json +10 -0
  432. package/dist/content/templates/list/view.ocml +17 -0
  433. package/dist/content/templates/shared/LICENSE +20 -0
  434. package/dist/content/templates/shared/package.json +14 -0
  435. package/dist/content/templates/shared/tsconfig.json +16 -0
  436. package/dist/content.js +68 -0
  437. package/dist/env.js +156 -0
  438. package/dist/fingerprint.js +32 -0
  439. package/dist/ids.js +27 -0
  440. package/dist/index.js +82 -0
  441. package/dist/knowledge.js +222 -0
  442. package/dist/npm.js +149 -0
  443. package/dist/prompts.js +47 -0
  444. package/dist/resources.js +82 -0
  445. package/dist/run.js +120 -0
  446. package/dist/server.js +43 -0
  447. package/dist/session.js +205 -0
  448. package/dist/sources.js +218 -0
  449. package/dist/text.js +80 -0
  450. package/dist/texts.js +44 -0
  451. package/dist/tools/audit.js +105 -0
  452. package/dist/tools/build.js +453 -0
  453. package/dist/tools/common.js +122 -0
  454. package/dist/tools/docs.js +196 -0
  455. package/dist/tools/preview.js +87 -0
  456. package/dist/tools/project.js +178 -0
  457. package/dist/tools/setup.js +146 -0
  458. package/dist/tools/submission.js +369 -0
  459. package/dist/version.js +3 -0
  460. package/npm-shrinkwrap.json +402 -0
  461. package/package.json +50 -4
@@ -0,0 +1,591 @@
1
+ {
2
+ "scenarioVersion": 1,
3
+ "name": "reading",
4
+ "description": "Reading a review in Interactive mode. A long review folds to three lines behind Read more, and Show less folds it again. In French, PlayerVox answers the translations: a translated review is marked, Show original shows its untranslated text and Show translation comes back. A review hidden by the community shows no text until Show review. The choices stay through a new revision of the same page and start again on another page; Passive mode has no button.",
5
+ "host": {
6
+ "mode": "interactive"
7
+ },
8
+ "fixtures": {
9
+ "calls": {
10
+ "playervox.reviews.page": [
11
+ {
12
+ "value": {
13
+ "gameName": "Portal 2",
14
+ "items": [
15
+ {
16
+ "id": "r31",
17
+ "author": "Mira_Quill",
18
+ "grade": "S+",
19
+ "score": 94,
20
+ "text": "The co-op campaign is the best puzzle design I have played in years. Every chamber teaches one idea, then twists it twice before letting you go, and the writing never gets in the way of the thinking. My only complaint is the loading between chambers.",
21
+ "original": null,
22
+ "hidden": false,
23
+ "publishedAt": 1789900200000,
24
+ "offsetMinutes": 120
25
+ },
26
+ {
27
+ "id": "r30",
28
+ "author": "Kestrel42",
29
+ "grade": "A",
30
+ "score": 74,
31
+ "text": "Solid puzzles, short story.",
32
+ "original": null,
33
+ "hidden": false,
34
+ "publishedAt": 1789813800000,
35
+ "offsetMinutes": 120
36
+ },
37
+ {
38
+ "id": "r29",
39
+ "author": "Tavish",
40
+ "grade": "D",
41
+ "score": 38,
42
+ "text": "Runs badly on my laptop.\nCrashed twice in chapter 3.",
43
+ "original": null,
44
+ "hidden": false,
45
+ "publishedAt": 1789381800000,
46
+ "offsetMinutes": 120
47
+ }
48
+ ],
49
+ "page": 1,
50
+ "totalPages": 3,
51
+ "count": 7
52
+ }
53
+ },
54
+ {
55
+ "value": {
56
+ "gameName": "Portal 2",
57
+ "items": [
58
+ {
59
+ "id": "r31",
60
+ "author": "Mira_Quill",
61
+ "grade": "S+",
62
+ "score": 94,
63
+ "text": "La campagne en coopération est la meilleure conception de puzzles à laquelle j’ai joué depuis des années. Chaque salle enseigne une idée, puis la retourne deux fois avant de vous laisser partir, et l’écriture ne gêne jamais la réflexion. Mon seul reproche : les chargements entre les salles.",
64
+ "original": "The co-op campaign is the best puzzle design I have played in years. Every chamber teaches one idea, then twists it twice before letting you go, and the writing never gets in the way of the thinking. My only complaint is the loading between chambers.",
65
+ "hidden": false,
66
+ "publishedAt": 1789900200000,
67
+ "offsetMinutes": 120
68
+ },
69
+ {
70
+ "id": "r30",
71
+ "author": "Kestrel42",
72
+ "grade": "A",
73
+ "score": 74,
74
+ "text": "Des puzzles solides, une histoire courte.",
75
+ "original": "Solid puzzles, short story.",
76
+ "hidden": false,
77
+ "publishedAt": 1789813800000,
78
+ "offsetMinutes": 120
79
+ },
80
+ {
81
+ "id": "r29",
82
+ "author": "Tavish",
83
+ "grade": "D",
84
+ "score": 38,
85
+ "text": "Runs badly on my laptop.\nCrashed twice in chapter 3.",
86
+ "original": null,
87
+ "hidden": false,
88
+ "publishedAt": 1789381800000,
89
+ "offsetMinutes": 120
90
+ }
91
+ ],
92
+ "page": 1,
93
+ "totalPages": 3,
94
+ "count": 7
95
+ }
96
+ },
97
+ {
98
+ "value": {
99
+ "gameName": "Portal 2",
100
+ "items": [
101
+ {
102
+ "id": "r31",
103
+ "author": "Mira_Quill",
104
+ "grade": "S+",
105
+ "score": 94,
106
+ "text": "La campagne en coopération est la meilleure conception de puzzles à laquelle j’ai joué depuis des années. Chaque salle enseigne une idée, puis la retourne deux fois avant de vous laisser partir, et l’écriture ne gêne jamais la réflexion. Mon seul reproche : les chargements entre les salles.",
107
+ "original": "The co-op campaign is the best puzzle design I have played in years. Every chamber teaches one idea, then twists it twice before letting you go, and the writing never gets in the way of the thinking. My only complaint is the loading between chambers.",
108
+ "hidden": false,
109
+ "publishedAt": 1789900200000,
110
+ "offsetMinutes": 120
111
+ },
112
+ {
113
+ "id": "r30",
114
+ "author": "Kestrel42",
115
+ "grade": "A",
116
+ "score": 74,
117
+ "text": "Des puzzles solides, une histoire courte.",
118
+ "original": "Solid puzzles, short story.",
119
+ "hidden": false,
120
+ "publishedAt": 1789813800000,
121
+ "offsetMinutes": 120
122
+ },
123
+ {
124
+ "id": "r29",
125
+ "author": "Tavish",
126
+ "grade": "D",
127
+ "score": 38,
128
+ "text": "Runs badly on my laptop.\nCrashed twice in chapter 3.",
129
+ "original": null,
130
+ "hidden": false,
131
+ "publishedAt": 1789381800000,
132
+ "offsetMinutes": 120
133
+ }
134
+ ],
135
+ "page": 1,
136
+ "totalPages": 3,
137
+ "count": 7
138
+ }
139
+ },
140
+ {
141
+ "value": {
142
+ "gameName": "Portal 2",
143
+ "items": [
144
+ {
145
+ "id": "r28",
146
+ "author": "Onyx Vale",
147
+ "grade": "S",
148
+ "score": 81,
149
+ "text": "Toujours drôle après toutes ces années.",
150
+ "original": "Still funny after all these years.",
151
+ "hidden": false,
152
+ "publishedAt": 1789122600000,
153
+ "offsetMinutes": 120
154
+ },
155
+ {
156
+ "id": "r27",
157
+ "author": "Lune-Bleue",
158
+ "grade": "B",
159
+ "score": 62,
160
+ "text": "Bien, mais j’aurais voulu plus de salles.",
161
+ "original": null,
162
+ "hidden": false,
163
+ "publishedAt": 1788690600000,
164
+ "offsetMinutes": 120
165
+ },
166
+ {
167
+ "id": "r26",
168
+ "author": "brackish_owl",
169
+ "grade": "F",
170
+ "score": 12,
171
+ "text": "Not for me.",
172
+ "original": null,
173
+ "hidden": true,
174
+ "publishedAt": 1788172200000,
175
+ "offsetMinutes": 120
176
+ }
177
+ ],
178
+ "page": 2,
179
+ "totalPages": 3,
180
+ "count": 7
181
+ }
182
+ },
183
+ {
184
+ "value": {
185
+ "gameName": "Portal 2",
186
+ "items": [
187
+ {
188
+ "id": "r31",
189
+ "author": "Mira_Quill",
190
+ "grade": "S+",
191
+ "score": 94,
192
+ "text": "La campagne en coopération est la meilleure conception de puzzles à laquelle j’ai joué depuis des années. Chaque salle enseigne une idée, puis la retourne deux fois avant de vous laisser partir, et l’écriture ne gêne jamais la réflexion. Mon seul reproche : les chargements entre les salles.",
193
+ "original": "The co-op campaign is the best puzzle design I have played in years. Every chamber teaches one idea, then twists it twice before letting you go, and the writing never gets in the way of the thinking. My only complaint is the loading between chambers.",
194
+ "hidden": false,
195
+ "publishedAt": 1789900200000,
196
+ "offsetMinutes": 120
197
+ },
198
+ {
199
+ "id": "r30",
200
+ "author": "Kestrel42",
201
+ "grade": "A",
202
+ "score": 74,
203
+ "text": "Des puzzles solides, une histoire courte.",
204
+ "original": "Solid puzzles, short story.",
205
+ "hidden": false,
206
+ "publishedAt": 1789813800000,
207
+ "offsetMinutes": 120
208
+ },
209
+ {
210
+ "id": "r29",
211
+ "author": "Tavish",
212
+ "grade": "D",
213
+ "score": 38,
214
+ "text": "Runs badly on my laptop.\nCrashed twice in chapter 3.",
215
+ "original": null,
216
+ "hidden": false,
217
+ "publishedAt": 1789381800000,
218
+ "offsetMinutes": 120
219
+ }
220
+ ],
221
+ "page": 1,
222
+ "totalPages": 3,
223
+ "count": 7
224
+ }
225
+ },
226
+ {
227
+ "value": {
228
+ "gameName": "Portal 2",
229
+ "items": [
230
+ {
231
+ "id": "r28",
232
+ "author": "Onyx Vale",
233
+ "grade": "S",
234
+ "score": 81,
235
+ "text": "Toujours drôle après toutes ces années.",
236
+ "original": "Still funny after all these years.",
237
+ "hidden": false,
238
+ "publishedAt": 1789122600000,
239
+ "offsetMinutes": 120
240
+ },
241
+ {
242
+ "id": "r27",
243
+ "author": "Lune-Bleue",
244
+ "grade": "B",
245
+ "score": 62,
246
+ "text": "Bien, mais j’aurais voulu plus de salles.",
247
+ "original": null,
248
+ "hidden": false,
249
+ "publishedAt": 1788690600000,
250
+ "offsetMinutes": 120
251
+ },
252
+ {
253
+ "id": "r26",
254
+ "author": "brackish_owl",
255
+ "grade": "F",
256
+ "score": 12,
257
+ "text": "Not for me.",
258
+ "original": null,
259
+ "hidden": true,
260
+ "publishedAt": 1788172200000,
261
+ "offsetMinutes": 120
262
+ }
263
+ ],
264
+ "page": 2,
265
+ "totalPages": 3,
266
+ "count": 7
267
+ }
268
+ }
269
+ ]
270
+ },
271
+ "subscriptions": {
272
+ "playervox.reviews.subscribe": {
273
+ "state": "ready",
274
+ "revision": 1,
275
+ "offline": false
276
+ }
277
+ }
278
+ },
279
+ "steps": [
280
+ {
281
+ "expect": {
282
+ "text": [
283
+ "Read more",
284
+ "1 / 3"
285
+ ],
286
+ "noText": [
287
+ "Show less",
288
+ "Translated"
289
+ ],
290
+ "image": "folded"
291
+ }
292
+ },
293
+ {
294
+ "pointer": {
295
+ "click": {
296
+ "text": "Read more"
297
+ }
298
+ }
299
+ },
300
+ {
301
+ "expect": {
302
+ "text": [
303
+ "Show less",
304
+ "The co-op campaign is the best puzzle design I have played in years. Every chamber teaches one idea, then twists it twice before letting you go, and the writing never gets in the way of the thinking. My only complaint is the loading between chambers."
305
+ ],
306
+ "noText": [
307
+ "Read more"
308
+ ],
309
+ "image": "expanded"
310
+ }
311
+ },
312
+ {
313
+ "pointer": {
314
+ "click": {
315
+ "text": "Show less"
316
+ }
317
+ }
318
+ },
319
+ {
320
+ "expect": {
321
+ "text": [
322
+ "Read more"
323
+ ],
324
+ "noText": [
325
+ "Show less"
326
+ ]
327
+ }
328
+ },
329
+ {
330
+ "host": {
331
+ "locale": "fr",
332
+ "theme": "light",
333
+ "region": {
334
+ "numberFormat": "fr",
335
+ "dateOrder": "dmy"
336
+ }
337
+ }
338
+ },
339
+ {
340
+ "expect": {
341
+ "text": [
342
+ "Lire la suite",
343
+ "Traduit",
344
+ "Voir l’original",
345
+ "La campagne en coopération est la meilleure conception de puzzles à laquelle j’ai joué depuis des années. Chaque salle enseigne une idée, puis la retourne deux fois avant de vous laisser partir, et l’écriture ne gêne jamais la réflexion. Mon seul reproche : les chargements entre les salles."
346
+ ],
347
+ "noText": [
348
+ "Voir la traduction",
349
+ "The co-op campaign is the best puzzle design I have played in years. Every chamber teaches one idea, then twists it twice before letting you go, and the writing never gets in the way of the thinking. My only complaint is the loading between chambers."
350
+ ],
351
+ "image": "translated-light-fr",
352
+ "calls": [
353
+ {
354
+ "service": "playervox.reviews.subscribe",
355
+ "outcome": "ok"
356
+ },
357
+ {
358
+ "service": "playervox.reviews.page",
359
+ "params": {
360
+ "page": 1,
361
+ "followedOnly": false
362
+ },
363
+ "outcome": "ok"
364
+ },
365
+ {
366
+ "service": "playervox.reviews.page",
367
+ "params": {
368
+ "page": 1,
369
+ "followedOnly": false
370
+ },
371
+ "outcome": "ok"
372
+ }
373
+ ]
374
+ }
375
+ },
376
+ {
377
+ "pointer": {
378
+ "click": {
379
+ "text": "Voir l’original"
380
+ }
381
+ }
382
+ },
383
+ {
384
+ "expect": {
385
+ "text": [
386
+ "Voir la traduction",
387
+ "The co-op campaign is the best puzzle design I have played in years. Every chamber teaches one idea, then twists it twice before letting you go, and the writing never gets in the way of the thinking. My only complaint is the loading between chambers.",
388
+ "Des puzzles solides, une histoire courte."
389
+ ],
390
+ "noText": [
391
+ "La campagne en coopération est la meilleure conception de puzzles à laquelle j’ai joué depuis des années. Chaque salle enseigne une idée, puis la retourne deux fois avant de vous laisser partir, et l’écriture ne gêne jamais la réflexion. Mon seul reproche : les chargements entre les salles."
392
+ ],
393
+ "image": "original-light-fr"
394
+ }
395
+ },
396
+ {
397
+ "pointer": {
398
+ "click": {
399
+ "text": "Lire la suite"
400
+ }
401
+ }
402
+ },
403
+ {
404
+ "expect": {
405
+ "text": [
406
+ "Réduire",
407
+ "Voir la traduction"
408
+ ],
409
+ "image": "original-expanded-light-fr"
410
+ }
411
+ },
412
+ {
413
+ "publish": {
414
+ "service": "playervox.reviews.subscribe",
415
+ "value": {
416
+ "state": "ready",
417
+ "revision": 2,
418
+ "offline": false
419
+ }
420
+ }
421
+ },
422
+ {
423
+ "expect": {
424
+ "text": [
425
+ "Réduire",
426
+ "Voir la traduction",
427
+ "The co-op campaign is the best puzzle design I have played in years. Every chamber teaches one idea, then twists it twice before letting you go, and the writing never gets in the way of the thinking. My only complaint is the loading between chambers."
428
+ ],
429
+ "noText": [
430
+ "Lire la suite"
431
+ ],
432
+ "calls": [
433
+ {
434
+ "service": "playervox.reviews.page",
435
+ "params": {
436
+ "page": 1,
437
+ "followedOnly": false
438
+ },
439
+ "outcome": "ok"
440
+ }
441
+ ]
442
+ }
443
+ },
444
+ {
445
+ "pointer": {
446
+ "click": {
447
+ "text": "Voir la traduction"
448
+ }
449
+ }
450
+ },
451
+ {
452
+ "expect": {
453
+ "text": [
454
+ "Réduire",
455
+ "La campagne en coopération est la meilleure conception de puzzles à laquelle j’ai joué depuis des années. Chaque salle enseigne une idée, puis la retourne deux fois avant de vous laisser partir, et l’écriture ne gêne jamais la réflexion. Mon seul reproche : les chargements entre les salles."
456
+ ],
457
+ "noText": [
458
+ "The co-op campaign is the best puzzle design I have played in years. Every chamber teaches one idea, then twists it twice before letting you go, and the writing never gets in the way of the thinking. My only complaint is the loading between chambers.",
459
+ "Voir la traduction"
460
+ ]
461
+ }
462
+ },
463
+ {
464
+ "pointer": {
465
+ "click": {
466
+ "label": "Page suivante"
467
+ }
468
+ }
469
+ },
470
+ {
471
+ "expect": {
472
+ "text": [
473
+ "2 / 3",
474
+ "Avis masqué par la communauté",
475
+ "Afficher l’avis",
476
+ "Traduit"
477
+ ],
478
+ "noText": [
479
+ "Not for me.",
480
+ "Réduire"
481
+ ],
482
+ "image": "hidden-light-fr",
483
+ "calls": [
484
+ {
485
+ "service": "playervox.reviews.page",
486
+ "params": {
487
+ "page": 2,
488
+ "followedOnly": false
489
+ },
490
+ "outcome": "ok"
491
+ }
492
+ ]
493
+ }
494
+ },
495
+ {
496
+ "pointer": {
497
+ "click": {
498
+ "text": "Afficher l’avis"
499
+ }
500
+ }
501
+ },
502
+ {
503
+ "expect": {
504
+ "text": [
505
+ "Not for me."
506
+ ],
507
+ "noText": [
508
+ "Avis masqué par la communauté",
509
+ "Afficher l’avis"
510
+ ],
511
+ "image": "revealed-light-fr"
512
+ }
513
+ },
514
+ {
515
+ "pointer": {
516
+ "click": {
517
+ "label": "Page précédente"
518
+ }
519
+ }
520
+ },
521
+ {
522
+ "expect": {
523
+ "text": [
524
+ "1 / 3",
525
+ "Lire la suite",
526
+ "Voir l’original",
527
+ "La campagne en coopération est la meilleure conception de puzzles à laquelle j’ai joué depuis des années. Chaque salle enseigne une idée, puis la retourne deux fois avant de vous laisser partir, et l’écriture ne gêne jamais la réflexion. Mon seul reproche : les chargements entre les salles."
528
+ ],
529
+ "noText": [
530
+ "Réduire",
531
+ "Voir la traduction"
532
+ ],
533
+ "calls": [
534
+ {
535
+ "service": "playervox.reviews.page",
536
+ "params": {
537
+ "page": 1,
538
+ "followedOnly": false
539
+ },
540
+ "outcome": "ok"
541
+ }
542
+ ]
543
+ }
544
+ },
545
+ {
546
+ "pointer": {
547
+ "click": {
548
+ "label": "Page suivante"
549
+ }
550
+ }
551
+ },
552
+ {
553
+ "expect": {
554
+ "text": [
555
+ "Avis masqué par la communauté"
556
+ ],
557
+ "noText": [
558
+ "Not for me."
559
+ ],
560
+ "calls": [
561
+ {
562
+ "service": "playervox.reviews.page",
563
+ "params": {
564
+ "page": 2,
565
+ "followedOnly": false
566
+ },
567
+ "outcome": "ok"
568
+ }
569
+ ]
570
+ }
571
+ },
572
+ {
573
+ "host": {
574
+ "mode": "passive"
575
+ }
576
+ },
577
+ {
578
+ "expect": {
579
+ "text": [
580
+ "Traduit",
581
+ "Avis masqué par la communauté"
582
+ ],
583
+ "noText": [
584
+ "Afficher l’avis",
585
+ "Voir l’original"
586
+ ],
587
+ "image": "hidden-passive-light-fr"
588
+ }
589
+ }
590
+ ]
591
+ }
@@ -0,0 +1,54 @@
1
+ {
2
+ "scenarioVersion": 1,
3
+ "name": "refused",
4
+ "description": "Without the permission to read the reviews, the widget asks OverCrow nothing and says what it needs.",
5
+ "host": {
6
+ "grants": []
7
+ },
8
+ "steps": [
9
+ {
10
+ "expect": {
11
+ "text": [
12
+ "Player reviews",
13
+ "Allow access to reviews in the Control Center."
14
+ ],
15
+ "noText": [
16
+ "Loading…"
17
+ ],
18
+ "image": "refused",
19
+ "calls": [],
20
+ "state": "running"
21
+ }
22
+ },
23
+ {
24
+ "host": {
25
+ "locale": "fr",
26
+ "theme": "light",
27
+ "region": {
28
+ "numberFormat": "fr",
29
+ "dateOrder": "dmy"
30
+ }
31
+ }
32
+ },
33
+ {
34
+ "expect": {
35
+ "text": [
36
+ "Autorisez l’accès aux avis dans le Centre de contrôle."
37
+ ],
38
+ "image": "refused-light-fr",
39
+ "calls": []
40
+ }
41
+ },
42
+ {
43
+ "menu": {
44
+ "id": "followed-only",
45
+ "value": true
46
+ }
47
+ },
48
+ {
49
+ "expect": {
50
+ "calls": []
51
+ }
52
+ }
53
+ ]
54
+ }