@overcrow/mcp 0.0.0-stage → 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.
- package/LICENSE +21 -0
- package/README.md +90 -2
- package/dist/audit/index.js +103 -0
- package/dist/audit/lexer.js +417 -0
- package/dist/audit/project.js +200 -0
- package/dist/audit/rules.js +661 -0
- package/dist/bootstrap/download.js +229 -0
- package/dist/bootstrap/install.js +280 -0
- package/dist/bootstrap/pin.js +85 -0
- package/dist/bootstrap/pin.json +119 -0
- package/dist/bootstrap/zip.js +258 -0
- package/dist/cli.js +200 -0
- package/dist/confine.js +244 -0
- package/dist/content/docs/en/cli.md +353 -0
- package/dist/content/docs/en/dev-channel.md +130 -0
- package/dist/content/docs/en/elements.md +469 -0
- package/dist/content/docs/en/forms.md +328 -0
- package/dist/content/docs/en/guide.md +253 -0
- package/dist/content/docs/en/index.md +85 -0
- package/dist/content/docs/en/limits.md +241 -0
- package/dist/content/docs/en/logic.md +446 -0
- package/dist/content/docs/en/manifest.md +381 -0
- package/dist/content/docs/en/mcp.md +165 -0
- package/dist/content/docs/en/package.md +131 -0
- package/dist/content/docs/en/publishing.md +162 -0
- package/dist/content/docs/en/reference.md +55 -0
- package/dist/content/docs/en/result-shapes.md +332 -0
- package/dist/content/docs/en/sdk.md +295 -0
- package/dist/content/docs/en/security.md +115 -0
- package/dist/content/docs/en/service-reference.md +344 -0
- package/dist/content/docs/en/services.md +517 -0
- package/dist/content/docs/en/style-properties.md +270 -0
- package/dist/content/docs/en/style.md +266 -0
- package/dist/content/docs/en/testing.md +400 -0
- package/dist/content/docs/en/view.md +338 -0
- package/dist/content/docs/en/widgets.md +76 -0
- package/dist/content/docs/fr/cli.md +367 -0
- package/dist/content/docs/fr/dev-channel.md +140 -0
- package/dist/content/docs/fr/elements.md +475 -0
- package/dist/content/docs/fr/forms.md +341 -0
- package/dist/content/docs/fr/guide.md +264 -0
- package/dist/content/docs/fr/index.md +90 -0
- package/dist/content/docs/fr/limits.md +244 -0
- package/dist/content/docs/fr/logic.md +461 -0
- package/dist/content/docs/fr/manifest.md +392 -0
- package/dist/content/docs/fr/mcp.md +173 -0
- package/dist/content/docs/fr/package.md +139 -0
- package/dist/content/docs/fr/publishing.md +172 -0
- package/dist/content/docs/fr/reference.md +59 -0
- package/dist/content/docs/fr/result-shapes.md +333 -0
- package/dist/content/docs/fr/sdk.md +301 -0
- package/dist/content/docs/fr/security.md +129 -0
- package/dist/content/docs/fr/service-reference.md +346 -0
- package/dist/content/docs/fr/services.md +540 -0
- package/dist/content/docs/fr/style-properties.md +272 -0
- package/dist/content/docs/fr/style.md +281 -0
- package/dist/content/docs/fr/testing.md +417 -0
- package/dist/content/docs/fr/view.md +352 -0
- package/dist/content/docs/fr/widgets.md +81 -0
- package/dist/content/examples/clock/LICENSE +21 -0
- package/dist/content/examples/clock/README.md +75 -0
- package/dist/content/examples/clock/listing.json +19 -0
- package/dist/content/examples/clock/locales/en.json +4 -0
- package/dist/content/examples/clock/locales/fr.json +4 -0
- package/dist/content/examples/clock/logic.ts +85 -0
- package/dist/content/examples/clock/manifest.json +44 -0
- package/dist/content/examples/clock/package.json +16 -0
- package/dist/content/examples/clock/style.ocss +26 -0
- package/dist/content/examples/clock/tests/hidden.scenario.json +68 -0
- package/dist/content/examples/clock/tests/load-logic.mjs +22 -0
- package/dist/content/examples/clock/tests/logic.test.mjs +89 -0
- package/dist/content/examples/clock/tests/options.scenario.json +108 -0
- package/dist/content/examples/clock/tests/preview.scenario.json +25 -0
- package/dist/content/examples/clock/tests/render.scenario.json +94 -0
- package/dist/content/examples/clock/tests/summer-time.scenario.json +74 -0
- package/dist/content/examples/clock/tests/ticks.scenario.json +120 -0
- package/dist/content/examples/clock/tsconfig.json +16 -0
- package/dist/content/examples/clock/view.ocml +8 -0
- package/dist/content/examples/countdown/LICENSE +20 -0
- package/dist/content/examples/countdown/listing.json +10 -0
- package/dist/content/examples/countdown/locales/en.json +15 -0
- package/dist/content/examples/countdown/locales/fr.json +15 -0
- package/dist/content/examples/countdown/logic.ts +179 -0
- package/dist/content/examples/countdown/manifest.json +34 -0
- package/dist/content/examples/countdown/package.json +15 -0
- package/dist/content/examples/countdown/style.ocss +94 -0
- package/dist/content/examples/countdown/tsconfig.json +16 -0
- package/dist/content/examples/countdown/view.ocml +42 -0
- package/dist/content/examples/fps/LICENSE +21 -0
- package/dist/content/examples/fps/README.md +64 -0
- package/dist/content/examples/fps/listing.json +19 -0
- package/dist/content/examples/fps/locales/en.json +11 -0
- package/dist/content/examples/fps/locales/fr.json +11 -0
- package/dist/content/examples/fps/logic.ts +64 -0
- package/dist/content/examples/fps/manifest.json +30 -0
- package/dist/content/examples/fps/package.json +16 -0
- package/dist/content/examples/fps/style.ocss +31 -0
- package/dist/content/examples/fps/tests/label.scenario.json +63 -0
- package/dist/content/examples/fps/tests/load-logic.mjs +22 -0
- package/dist/content/examples/fps/tests/logic.test.mjs +60 -0
- package/dist/content/examples/fps/tests/preview.scenario.json +29 -0
- package/dist/content/examples/fps/tests/refused.scenario.json +20 -0
- package/dist/content/examples/fps/tests/render.scenario.json +96 -0
- package/dist/content/examples/fps/tests/stale.scenario.json +91 -0
- package/dist/content/examples/fps/tests/unavailable.scenario.json +111 -0
- package/dist/content/examples/fps/tsconfig.json +16 -0
- package/dist/content/examples/fps/view.ocml +11 -0
- package/dist/content/examples/media/LICENSE +21 -0
- package/dist/content/examples/media/README.md +147 -0
- package/dist/content/examples/media/listing.json +19 -0
- package/dist/content/examples/media/locales/en.json +11 -0
- package/dist/content/examples/media/locales/fr.json +11 -0
- package/dist/content/examples/media/logic.ts +191 -0
- package/dist/content/examples/media/manifest.json +35 -0
- package/dist/content/examples/media/package.json +16 -0
- package/dist/content/examples/media/style.ocss +148 -0
- package/dist/content/examples/media/tests/covers.scenario.json +144 -0
- package/dist/content/examples/media/tests/gesture.scenario.json +173 -0
- package/dist/content/examples/media/tests/load-logic.mjs +22 -0
- package/dist/content/examples/media/tests/logic.test.mjs +176 -0
- package/dist/content/examples/media/tests/marquee.scenario.json +127 -0
- package/dist/content/examples/media/tests/preview.scenario.json +52 -0
- package/dist/content/examples/media/tests/read-only.scenario.json +53 -0
- package/dist/content/examples/media/tests/refused.scenario.json +22 -0
- package/dist/content/examples/media/tests/refused.test.mjs +31 -0
- package/dist/content/examples/media/tests/render.scenario.json +136 -0
- package/dist/content/examples/media/tests/states.scenario.json +257 -0
- package/dist/content/examples/media/tests/unavailable.scenario.json +120 -0
- package/dist/content/examples/media/tsconfig.json +16 -0
- package/dist/content/examples/media/view.ocml +41 -0
- package/dist/content/examples/notes/LICENSE +21 -0
- package/dist/content/examples/notes/README.md +219 -0
- package/dist/content/examples/notes/listing.json +19 -0
- package/dist/content/examples/notes/locales/en.json +25 -0
- package/dist/content/examples/notes/locales/fr.json +25 -0
- package/dist/content/examples/notes/logic.ts +799 -0
- package/dist/content/examples/notes/manifest.json +40 -0
- package/dist/content/examples/notes/package.json +16 -0
- package/dist/content/examples/notes/style.ocss +469 -0
- package/dist/content/examples/notes/tests/checks.scenario.json +237 -0
- package/dist/content/examples/notes/tests/create.scenario.json +260 -0
- package/dist/content/examples/notes/tests/delete.scenario.json +342 -0
- package/dist/content/examples/notes/tests/drafts.scenario.json +714 -0
- package/dist/content/examples/notes/tests/editor.scenario.json +232 -0
- package/dist/content/examples/notes/tests/frame.scenario.json +93 -0
- package/dist/content/examples/notes/tests/interactive.scenario.json +344 -0
- package/dist/content/examples/notes/tests/limits.scenario.json +1351 -0
- package/dist/content/examples/notes/tests/load-logic.mjs +22 -0
- package/dist/content/examples/notes/tests/logic.test.mjs +514 -0
- package/dist/content/examples/notes/tests/preview.scenario.json +99 -0
- package/dist/content/examples/notes/tests/read-only.scenario.json +105 -0
- package/dist/content/examples/notes/tests/refused.scenario.json +33 -0
- package/dist/content/examples/notes/tests/save.scenario.json +378 -0
- package/dist/content/examples/notes/tests/states.scenario.json +640 -0
- package/dist/content/examples/notes/tests/typing.scenario.json +562 -0
- package/dist/content/examples/notes/tests/unavailable.scenario.json +246 -0
- package/dist/content/examples/notes/tsconfig.json +16 -0
- package/dist/content/examples/notes/view.ocml +154 -0
- package/dist/content/examples/performance/LICENSE +21 -0
- package/dist/content/examples/performance/README.md +134 -0
- package/dist/content/examples/performance/listing.json +19 -0
- package/dist/content/examples/performance/locales/en.json +20 -0
- package/dist/content/examples/performance/locales/fr.json +20 -0
- package/dist/content/examples/performance/logic.ts +210 -0
- package/dist/content/examples/performance/manifest.json +83 -0
- package/dist/content/examples/performance/package.json +16 -0
- package/dist/content/examples/performance/style.ocss +75 -0
- package/dist/content/examples/performance/tests/fahrenheit.scenario.json +110 -0
- package/dist/content/examples/performance/tests/horizontal.scenario.json +96 -0
- package/dist/content/examples/performance/tests/load-logic.mjs +22 -0
- package/dist/content/examples/performance/tests/logic.test.mjs +226 -0
- package/dist/content/examples/performance/tests/menu.scenario.json +170 -0
- package/dist/content/examples/performance/tests/no-fps-source.scenario.json +47 -0
- package/dist/content/examples/performance/tests/preview.scenario.json +45 -0
- package/dist/content/examples/performance/tests/refused.scenario.json +20 -0
- package/dist/content/examples/performance/tests/refused.test.mjs +19 -0
- package/dist/content/examples/performance/tests/region.scenario.json +89 -0
- package/dist/content/examples/performance/tests/render.scenario.json +112 -0
- package/dist/content/examples/performance/tests/sources.scenario.json +151 -0
- package/dist/content/examples/performance/tests/stale.scenario.json +111 -0
- package/dist/content/examples/performance/tests/telemetry-only.scenario.json +44 -0
- package/dist/content/examples/performance/tests/thresholds.scenario.json +147 -0
- package/dist/content/examples/performance/tests/waiting.scenario.json +105 -0
- package/dist/content/examples/performance/tsconfig.json +16 -0
- package/dist/content/examples/performance/view.ocml +18 -0
- package/dist/content/examples/playervox-journal/LICENSE +21 -0
- package/dist/content/examples/playervox-journal/README.md +150 -0
- package/dist/content/examples/playervox-journal/listing.json +19 -0
- package/dist/content/examples/playervox-journal/locales/en.json +25 -0
- package/dist/content/examples/playervox-journal/locales/fr.json +25 -0
- package/dist/content/examples/playervox-journal/logic.ts +556 -0
- package/dist/content/examples/playervox-journal/manifest.json +19 -0
- package/dist/content/examples/playervox-journal/package.json +16 -0
- package/dist/content/examples/playervox-journal/style.ocss +142 -0
- package/dist/content/examples/playervox-journal/tests/changes.scenario.json +482 -0
- package/dist/content/examples/playervox-journal/tests/delete.scenario.json +432 -0
- package/dist/content/examples/playervox-journal/tests/frame.scenario.json +169 -0
- package/dist/content/examples/playervox-journal/tests/load-logic.mjs +22 -0
- package/dist/content/examples/playervox-journal/tests/logic.test.mjs +349 -0
- package/dist/content/examples/playervox-journal/tests/paging.scenario.json +428 -0
- package/dist/content/examples/playervox-journal/tests/preview.scenario.json +184 -0
- package/dist/content/examples/playervox-journal/tests/read-only.scenario.json +157 -0
- package/dist/content/examples/playervox-journal/tests/refused.scenario.json +39 -0
- package/dist/content/examples/playervox-journal/tests/scale.scenario.json +286 -0
- package/dist/content/examples/playervox-journal/tests/signed-out.scenario.json +134 -0
- package/dist/content/examples/playervox-journal/tests/states.scenario.json +741 -0
- package/dist/content/examples/playervox-journal/tests/unavailable.scenario.json +183 -0
- package/dist/content/examples/playervox-journal/tsconfig.json +16 -0
- package/dist/content/examples/playervox-journal/view.ocml +52 -0
- package/dist/content/examples/playervox-rating/LICENSE +21 -0
- package/dist/content/examples/playervox-rating/README.md +166 -0
- package/dist/content/examples/playervox-rating/listing.json +19 -0
- package/dist/content/examples/playervox-rating/locales/en.json +35 -0
- package/dist/content/examples/playervox-rating/locales/fr.json +35 -0
- package/dist/content/examples/playervox-rating/logic.ts +581 -0
- package/dist/content/examples/playervox-rating/manifest.json +19 -0
- package/dist/content/examples/playervox-rating/package.json +16 -0
- package/dist/content/examples/playervox-rating/style.ocss +333 -0
- package/dist/content/examples/playervox-rating/tests/account.scenario.json +125 -0
- package/dist/content/examples/playervox-rating/tests/bounds.scenario.json +73 -0
- package/dist/content/examples/playervox-rating/tests/draft.scenario.json +199 -0
- package/dist/content/examples/playervox-rating/tests/form.scenario.json +142 -0
- package/dist/content/examples/playervox-rating/tests/load-logic.mjs +22 -0
- package/dist/content/examples/playervox-rating/tests/logic.test.mjs +346 -0
- package/dist/content/examples/playervox-rating/tests/offline.scenario.json +142 -0
- package/dist/content/examples/playervox-rating/tests/preview.scenario.json +44 -0
- package/dist/content/examples/playervox-rating/tests/publish-keyboard.scenario.json +221 -0
- package/dist/content/examples/playervox-rating/tests/publish-pointer.scenario.json +314 -0
- package/dist/content/examples/playervox-rating/tests/read-only.scenario.json +70 -0
- package/dist/content/examples/playervox-rating/tests/refused.scenario.json +45 -0
- package/dist/content/examples/playervox-rating/tests/states.scenario.json +362 -0
- package/dist/content/examples/playervox-rating/tsconfig.json +16 -0
- package/dist/content/examples/playervox-rating/view.ocml +62 -0
- package/dist/content/examples/playervox-reviews/LICENSE +21 -0
- package/dist/content/examples/playervox-reviews/README.md +194 -0
- package/dist/content/examples/playervox-reviews/listing.json +19 -0
- package/dist/content/examples/playervox-reviews/locales/en.json +32 -0
- package/dist/content/examples/playervox-reviews/locales/fr.json +32 -0
- package/dist/content/examples/playervox-reviews/logic.ts +822 -0
- package/dist/content/examples/playervox-reviews/manifest.json +30 -0
- package/dist/content/examples/playervox-reviews/package.json +16 -0
- package/dist/content/examples/playervox-reviews/style.ocss +260 -0
- package/dist/content/examples/playervox-reviews/tests/account.scenario.json +249 -0
- package/dist/content/examples/playervox-reviews/tests/bounds.scenario.json +336 -0
- package/dist/content/examples/playervox-reviews/tests/changes.scenario.json +515 -0
- package/dist/content/examples/playervox-reviews/tests/filter.scenario.json +400 -0
- package/dist/content/examples/playervox-reviews/tests/frame.scenario.json +185 -0
- package/dist/content/examples/playervox-reviews/tests/keyboard.scenario.json +188 -0
- package/dist/content/examples/playervox-reviews/tests/load-logic.mjs +22 -0
- package/dist/content/examples/playervox-reviews/tests/logic.test.mjs +559 -0
- package/dist/content/examples/playervox-reviews/tests/offline-start.scenario.json +152 -0
- package/dist/content/examples/playervox-reviews/tests/offline.scenario.json +311 -0
- package/dist/content/examples/playervox-reviews/tests/paging.scenario.json +497 -0
- package/dist/content/examples/playervox-reviews/tests/preview.scenario.json +286 -0
- package/dist/content/examples/playervox-reviews/tests/reading.scenario.json +591 -0
- package/dist/content/examples/playervox-reviews/tests/refused.scenario.json +54 -0
- package/dist/content/examples/playervox-reviews/tests/scale.scenario.json +303 -0
- package/dist/content/examples/playervox-reviews/tests/states.scenario.json +700 -0
- package/dist/content/examples/playervox-reviews/tests/unavailable.scenario.json +192 -0
- package/dist/content/examples/playervox-reviews/tsconfig.json +16 -0
- package/dist/content/examples/playervox-reviews/view.ocml +110 -0
- package/dist/content/examples/playervox-score/LICENSE +21 -0
- package/dist/content/examples/playervox-score/README.md +131 -0
- package/dist/content/examples/playervox-score/listing.json +19 -0
- package/dist/content/examples/playervox-score/locales/en.json +23 -0
- package/dist/content/examples/playervox-score/locales/fr.json +23 -0
- package/dist/content/examples/playervox-score/logic.ts +430 -0
- package/dist/content/examples/playervox-score/manifest.json +47 -0
- package/dist/content/examples/playervox-score/package.json +16 -0
- package/dist/content/examples/playervox-score/style.ocss +247 -0
- package/dist/content/examples/playervox-score/tests/grades.scenario.json +279 -0
- package/dist/content/examples/playervox-score/tests/load-logic.mjs +22 -0
- package/dist/content/examples/playervox-score/tests/logic.test.mjs +229 -0
- package/dist/content/examples/playervox-score/tests/options.scenario.json +302 -0
- package/dist/content/examples/playervox-score/tests/preview.scenario.json +68 -0
- package/dist/content/examples/playervox-score/tests/pulse.scenario.json +157 -0
- package/dist/content/examples/playervox-score/tests/refused.scenario.json +21 -0
- package/dist/content/examples/playervox-score/tests/signed-out.scenario.json +46 -0
- package/dist/content/examples/playervox-score/tests/states.scenario.json +450 -0
- package/dist/content/examples/playervox-score/tests/unavailable.scenario.json +84 -0
- package/dist/content/examples/playervox-score/tsconfig.json +16 -0
- package/dist/content/examples/playervox-score/view.ocml +51 -0
- package/dist/content/examples/session/LICENSE +21 -0
- package/dist/content/examples/session/README.md +57 -0
- package/dist/content/examples/session/listing.json +19 -0
- package/dist/content/examples/session/locales/en.json +3 -0
- package/dist/content/examples/session/locales/fr.json +3 -0
- package/dist/content/examples/session/logic.ts +26 -0
- package/dist/content/examples/session/manifest.json +19 -0
- package/dist/content/examples/session/package.json +16 -0
- package/dist/content/examples/session/style.ocss +16 -0
- package/dist/content/examples/session/tests/hidden.scenario.json +45 -0
- package/dist/content/examples/session/tests/load-logic.mjs +22 -0
- package/dist/content/examples/session/tests/logic.test.mjs +37 -0
- package/dist/content/examples/session/tests/preview.scenario.json +28 -0
- package/dist/content/examples/session/tests/refused.scenario.json +20 -0
- package/dist/content/examples/session/tests/refused.test.mjs +16 -0
- package/dist/content/examples/session/tests/render.scenario.json +95 -0
- package/dist/content/examples/session/tests/ticks.scenario.json +139 -0
- package/dist/content/examples/session/tests/unknown.scenario.json +37 -0
- package/dist/content/examples/session/tsconfig.json +16 -0
- package/dist/content/examples/session/view.ocml +11 -0
- package/dist/content/examples/stopwatch/LICENSE +21 -0
- package/dist/content/examples/stopwatch/README.md +99 -0
- package/dist/content/examples/stopwatch/listing.json +19 -0
- package/dist/content/examples/stopwatch/locales/en.json +8 -0
- package/dist/content/examples/stopwatch/locales/fr.json +8 -0
- package/dist/content/examples/stopwatch/logic.ts +93 -0
- package/dist/content/examples/stopwatch/manifest.json +19 -0
- package/dist/content/examples/stopwatch/package.json +16 -0
- package/dist/content/examples/stopwatch/style.ocss +54 -0
- package/dist/content/examples/stopwatch/tests/errors.scenario.json +121 -0
- package/dist/content/examples/stopwatch/tests/gesture.scenario.json +154 -0
- package/dist/content/examples/stopwatch/tests/hidden.scenario.json +57 -0
- package/dist/content/examples/stopwatch/tests/hundredths.scenario.json +173 -0
- package/dist/content/examples/stopwatch/tests/load-logic.mjs +22 -0
- package/dist/content/examples/stopwatch/tests/logic.test.mjs +99 -0
- package/dist/content/examples/stopwatch/tests/preview.scenario.json +36 -0
- package/dist/content/examples/stopwatch/tests/read-only.scenario.json +42 -0
- package/dist/content/examples/stopwatch/tests/read-only.test.mjs +18 -0
- package/dist/content/examples/stopwatch/tests/refused.scenario.json +22 -0
- package/dist/content/examples/stopwatch/tests/refused.test.mjs +18 -0
- package/dist/content/examples/stopwatch/tests/render.scenario.json +105 -0
- package/dist/content/examples/stopwatch/tests/states.scenario.json +246 -0
- package/dist/content/examples/stopwatch/tests/unknown.scenario.json +40 -0
- package/dist/content/examples/stopwatch/tsconfig.json +16 -0
- package/dist/content/examples/stopwatch/view.ocml +29 -0
- package/dist/content/examples/twitch-chat/LICENSE +21 -0
- package/dist/content/examples/twitch-chat/README.md +283 -0
- package/dist/content/examples/twitch-chat/listing.json +19 -0
- package/dist/content/examples/twitch-chat/locales/en.json +52 -0
- package/dist/content/examples/twitch-chat/locales/fr.json +52 -0
- package/dist/content/examples/twitch-chat/logic.ts +887 -0
- package/dist/content/examples/twitch-chat/manifest.json +33 -0
- package/dist/content/examples/twitch-chat/package.json +16 -0
- package/dist/content/examples/twitch-chat/style.ocss +544 -0
- package/dist/content/examples/twitch-chat/tests/account.scenario.json +325 -0
- package/dist/content/examples/twitch-chat/tests/burst.scenario.json +1866 -0
- package/dist/content/examples/twitch-chat/tests/channel-refused.scenario.json +372 -0
- package/dist/content/examples/twitch-chat/tests/channel.scenario.json +480 -0
- package/dist/content/examples/twitch-chat/tests/draft.scenario.json +279 -0
- package/dist/content/examples/twitch-chat/tests/fade.scenario.json +269 -0
- package/dist/content/examples/twitch-chat/tests/failures.scenario.json +420 -0
- package/dist/content/examples/twitch-chat/tests/favorites.scenario.json +376 -0
- package/dist/content/examples/twitch-chat/tests/frame.scenario.json +152 -0
- package/dist/content/examples/twitch-chat/tests/lifetime.scenario.json +186 -0
- package/dist/content/examples/twitch-chat/tests/load-logic.mjs +22 -0
- package/dist/content/examples/twitch-chat/tests/logic.test.mjs +1053 -0
- package/dist/content/examples/twitch-chat/tests/passive.scenario.json +536 -0
- package/dist/content/examples/twitch-chat/tests/preview.scenario.json +147 -0
- package/dist/content/examples/twitch-chat/tests/read-only.scenario.json +202 -0
- package/dist/content/examples/twitch-chat/tests/read-only.test.mjs +63 -0
- package/dist/content/examples/twitch-chat/tests/refused.scenario.json +65 -0
- package/dist/content/examples/twitch-chat/tests/refused.test.mjs +43 -0
- package/dist/content/examples/twitch-chat/tests/render.scenario.json +347 -0
- package/dist/content/examples/twitch-chat/tests/reply.scenario.json +384 -0
- package/dist/content/examples/twitch-chat/tests/send-refused.scenario.json +383 -0
- package/dist/content/examples/twitch-chat/tests/send.scenario.json +300 -0
- package/dist/content/examples/twitch-chat/tests/states.scenario.json +455 -0
- package/dist/content/examples/twitch-chat/tests/unavailable.scenario.json +256 -0
- package/dist/content/examples/twitch-chat/tests/unread.scenario.json +997 -0
- package/dist/content/examples/twitch-chat/tsconfig.json +16 -0
- package/dist/content/examples/twitch-chat/view.ocml +141 -0
- package/dist/content/examples/warframe-market/LICENSE +21 -0
- package/dist/content/examples/warframe-market/README.md +176 -0
- package/dist/content/examples/warframe-market/listing.json +19 -0
- package/dist/content/examples/warframe-market/locales/en.json +44 -0
- package/dist/content/examples/warframe-market/locales/fr.json +44 -0
- package/dist/content/examples/warframe-market/logic.ts +1265 -0
- package/dist/content/examples/warframe-market/manifest.json +92 -0
- package/dist/content/examples/warframe-market/package.json +16 -0
- package/dist/content/examples/warframe-market/style.ocss +422 -0
- package/dist/content/examples/warframe-market/tests/bounds.scenario.json +60 -0
- package/dist/content/examples/warframe-market/tests/cached.scenario.json +70 -0
- package/dist/content/examples/warframe-market/tests/detail.scenario.json +251 -0
- package/dist/content/examples/warframe-market/tests/errors.scenario.json +105 -0
- package/dist/content/examples/warframe-market/tests/fixtures.json +295 -0
- package/dist/content/examples/warframe-market/tests/load-logic.mjs +22 -0
- package/dist/content/examples/warframe-market/tests/logic.test.mjs +505 -0
- package/dist/content/examples/warframe-market/tests/no-clipboard.scenario.json +104 -0
- package/dist/content/examples/warframe-market/tests/passive.scenario.json +87 -0
- package/dist/content/examples/warframe-market/tests/preview.scenario.json +146 -0
- package/dist/content/examples/warframe-market/tests/refresh.scenario.json +56 -0
- package/dist/content/examples/warframe-market/tests/refused.scenario.json +74 -0
- package/dist/content/examples/warframe-market/tests/render.scenario.json +210 -0
- package/dist/content/examples/warframe-market/tests/search.scenario.json +189 -0
- package/dist/content/examples/warframe-market/tests/unavailable.scenario.json +54 -0
- package/dist/content/examples/warframe-market/tsconfig.json +16 -0
- package/dist/content/examples/warframe-market/view.ocml +116 -0
- package/dist/content/examples/weather/LICENSE +20 -0
- package/dist/content/examples/weather/listing.json +10 -0
- package/dist/content/examples/weather/locales/en.json +9 -0
- package/dist/content/examples/weather/locales/fr.json +9 -0
- package/dist/content/examples/weather/logic.ts +62 -0
- package/dist/content/examples/weather/manifest.json +51 -0
- package/dist/content/examples/weather/package.json +15 -0
- package/dist/content/examples/weather/style.ocss +29 -0
- package/dist/content/examples/weather/tsconfig.json +16 -0
- package/dist/content/examples/weather/view.ocml +12 -0
- package/dist/content/index.json +3601 -0
- package/dist/content/reference/errors.json +1712 -0
- package/dist/content/reference/limits.json +1154 -0
- package/dist/content/reference/manifest.md +223 -0
- package/dist/content/reference/permissions.json +413 -0
- package/dist/content/templates/blank/locales/en.json +3 -0
- package/dist/content/templates/blank/locales/fr.json +3 -0
- package/dist/content/templates/blank/logic.ts +7 -0
- package/dist/content/templates/blank/manifest.json +16 -0
- package/dist/content/templates/blank/style.ocss +10 -0
- package/dist/content/templates/blank/tests/example.scenario.json +10 -0
- package/dist/content/templates/blank/view.ocml +6 -0
- package/dist/content/templates/chart/locales/en.json +3 -0
- package/dist/content/templates/chart/locales/fr.json +3 -0
- package/dist/content/templates/chart/logic.ts +27 -0
- package/dist/content/templates/chart/manifest.json +16 -0
- package/dist/content/templates/chart/style.ocss +27 -0
- package/dist/content/templates/chart/tests/example.scenario.json +10 -0
- package/dist/content/templates/chart/view.ocml +10 -0
- package/dist/content/templates/counter/locales/en.json +4 -0
- package/dist/content/templates/counter/locales/fr.json +4 -0
- package/dist/content/templates/counter/logic.ts +20 -0
- package/dist/content/templates/counter/manifest.json +16 -0
- package/dist/content/templates/counter/style.ocss +26 -0
- package/dist/content/templates/counter/tests/example.scenario.json +11 -0
- package/dist/content/templates/counter/view.ocml +13 -0
- package/dist/content/templates/list/locales/en.json +8 -0
- package/dist/content/templates/list/locales/fr.json +8 -0
- package/dist/content/templates/list/logic.ts +35 -0
- package/dist/content/templates/list/manifest.json +16 -0
- package/dist/content/templates/list/style.ocss +42 -0
- package/dist/content/templates/list/tests/example.scenario.json +10 -0
- package/dist/content/templates/list/view.ocml +17 -0
- package/dist/content/templates/shared/LICENSE +20 -0
- package/dist/content/templates/shared/package.json +14 -0
- package/dist/content/templates/shared/tsconfig.json +16 -0
- package/dist/content.js +68 -0
- package/dist/env.js +156 -0
- package/dist/fingerprint.js +32 -0
- package/dist/ids.js +27 -0
- package/dist/index.js +82 -0
- package/dist/knowledge.js +222 -0
- package/dist/npm.js +149 -0
- package/dist/prompts.js +47 -0
- package/dist/resources.js +82 -0
- package/dist/run.js +120 -0
- package/dist/server.js +43 -0
- package/dist/session.js +205 -0
- package/dist/sources.js +218 -0
- package/dist/text.js +80 -0
- package/dist/texts.js +44 -0
- package/dist/tools/audit.js +105 -0
- package/dist/tools/build.js +453 -0
- package/dist/tools/common.js +122 -0
- package/dist/tools/docs.js +196 -0
- package/dist/tools/preview.js +87 -0
- package/dist/tools/project.js +178 -0
- package/dist/tools/setup.js +146 -0
- package/dist/tools/submission.js +369 -0
- package/dist/version.js +3 -0
- package/npm-shrinkwrap.json +402 -0
- package/package.json +52 -4
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Créer des widgets pour PlayerVox OverCrow
|
|
2
|
+
|
|
3
|
+
Un widget PlayerVox OverCrow est un petit paquet que l’overlay dessine
|
|
4
|
+
par-dessus votre jeu : une horloge, un compteur d’images par seconde, une
|
|
5
|
+
liste de tâches, un chat. Vous décrivez sa vue en balisage, vous la stylez
|
|
6
|
+
avec un petit sous-ensemble de CSS et vous écrivez sa logique en TypeScript
|
|
7
|
+
avec `@overcrow/sdk`. L’outil en ligne de commande `overcrow-widget` le
|
|
8
|
+
vérifie, le teste et l’empaquette ; le catalogue signé l’apporte aux
|
|
9
|
+
utilisateurs.
|
|
10
|
+
|
|
11
|
+
Tous les widgets intégrés d’OverCrow sont écrits ainsi, avec le même SDK
|
|
12
|
+
public, le même format de paquet et le même sandbox que les vôtres. Leurs
|
|
13
|
+
sources sont les [widgets de référence](widgets.md).
|
|
14
|
+
|
|
15
|
+
## De quoi est fait un widget
|
|
16
|
+
|
|
17
|
+
| Fichier | Rôle | Page |
|
|
18
|
+
| --- | --- | --- |
|
|
19
|
+
| `manifest.json` | Identité, version, noms, règles de taille, menu d’options et permissions que le widget demande. | [Le manifeste](manifest.md) |
|
|
20
|
+
| `view.ocml` | La vue : des éléments comme `box`, `text`, `button`, `list` ou `chart`, liés à l’état par des expressions `{…}`. | [La vue](view.md) |
|
|
21
|
+
| `style.ocss` | Le style, facultatif : mise en page flex et grid, couleurs, bordures, typographie, avec les tokens du thème. | [Le style](style.md) |
|
|
22
|
+
| `logic.ts` | La logique : l’état, les gestionnaires d’événements, les minuteurs et les appels aux services. | [La logique](logic.md) |
|
|
23
|
+
| `locales/en.json`, `locales/fr.json` | Les messages en anglais et en français, facultatifs. | [Messages](logic.md#messages) |
|
|
24
|
+
| `LICENSE` | La licence de votre widget. | [Le paquet](package.md) |
|
|
25
|
+
|
|
26
|
+
La vue et la logique se rejoignent ainsi : la vue lit `state.count` et
|
|
27
|
+
appelle les gestionnaires que la logique exporte.
|
|
28
|
+
|
|
29
|
+
<!-- source: templates/counter/view.ocml -->
|
|
30
|
+
```xml
|
|
31
|
+
<box class="counter">
|
|
32
|
+
<text class="value">{state.count}</text>
|
|
33
|
+
<box class="actions">
|
|
34
|
+
<button class="step" label={t("decrement")} on:activate={decrement}>
|
|
35
|
+
<icon name="minus"/>
|
|
36
|
+
</button>
|
|
37
|
+
<button class="step" label={t("increment")} on:activate={increment}>
|
|
38
|
+
<icon name="plus"/>
|
|
39
|
+
</button>
|
|
40
|
+
</box>
|
|
41
|
+
</box>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
<!-- source: templates/counter/logic.ts -->
|
|
45
|
+
```ts
|
|
46
|
+
const state = initState({ count: 0 });
|
|
47
|
+
|
|
48
|
+
export function increment(): void {
|
|
49
|
+
state.count += 1;
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Comment un widget s’exécute
|
|
54
|
+
|
|
55
|
+
- La logique tourne dans sa propre petite VM JavaScript, dans son propre
|
|
56
|
+
processus, enfermé dans un sandbox. Elle n’a ni DOM, ni système de
|
|
57
|
+
fichiers, ni réseau, ni accès aux autres widgets : elle n’atteint OverCrow
|
|
58
|
+
que par le SDK.
|
|
59
|
+
- Après chaque événement, déclenchement de minuteur ou réponse d’un service,
|
|
60
|
+
la VM évalue de nouveau la vue et n’envoie à OverCrow que ce qui a changé.
|
|
61
|
+
OverCrow met en page et dessine le widget lui-même : aucun moteur web
|
|
62
|
+
n’intervient.
|
|
63
|
+
- Tout ce qui touche à l’extérieur (réseau, stockage, presse-papiers,
|
|
64
|
+
données de jeu) est un service d’OverCrow. À chaque appel, celui-ci
|
|
65
|
+
vérifie les permissions que le widget a déclarées et que l’utilisateur a
|
|
66
|
+
accordées. Voir [services et permissions](services.md).
|
|
67
|
+
|
|
68
|
+
Ces pages appellent OverCrow **l’hôte** quand elles décrivent ce qu’il fait
|
|
69
|
+
pour un widget : l’hôte dessine la vue, répond aux services et conserve les
|
|
70
|
+
données de l’utilisateur.
|
|
71
|
+
|
|
72
|
+
## Par où commencer
|
|
73
|
+
|
|
74
|
+
1. Suivez le [guide du créateur](guide.md) : de `overcrow-widget init` à un
|
|
75
|
+
widget soumis, en douze courtes étapes.
|
|
76
|
+
2. Lisez les [widgets de référence](widgets.md) : les widgets intégrés, avec
|
|
77
|
+
leurs tests.
|
|
78
|
+
3. Approfondissez, un thème par page : le [manifeste](manifest.md), la
|
|
79
|
+
[vue](view.md), le [style](style.md), la [logique](logic.md), les
|
|
80
|
+
[services et permissions](services.md), les [formulaires](forms.md).
|
|
81
|
+
4. Servez-vous des outils : la [CLI](cli.md), les [tests](testing.md) et le
|
|
82
|
+
[canal de développement](dev-channel.md), qui exécute votre widget dans
|
|
83
|
+
OverCrow pendant que vous l’écrivez.
|
|
84
|
+
5. Cherchez un élément, une propriété de style, un service ou une fonction
|
|
85
|
+
du SDK dans la [référence](reference.md).
|
|
86
|
+
6. Avant de publier, lisez [le paquet](package.md),
|
|
87
|
+
[sécurité](security.md) et [publication et revue](publishing.md).
|
|
88
|
+
|
|
89
|
+
Les widgets fonctionnent de la même façon sous Windows et sous Linux : le
|
|
90
|
+
même paquet, le même SDK et le même rendu.
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
# Limites
|
|
2
|
+
|
|
3
|
+
Tout est borné dans un widget PlayerVox OverCrow : la taille de ses
|
|
4
|
+
fichiers, le nombre d’éléments de sa vue, la durée d’un tour de sa logique,
|
|
5
|
+
les octets d’une réponse. Ces limites gardent un widget petit et empêchent
|
|
6
|
+
qu’un widget ralentisse le jeu ou les autres widgets. Cette page liste
|
|
7
|
+
celles que rencontre l’auteur d’un widget.
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
error[view.too_many_children]: the view exceeds a size bound of the schema
|
|
11
|
+
--> view.ocml:15:14375
|
|
12
|
+
= help: split long static content, or render repeated content with <for>
|
|
13
|
+
check: 1 error(s), 0 warning(s)
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Un élément de plus de 1024 enfants : `check` nomme la limite, l’endroit et
|
|
17
|
+
une façon d’en sortir.
|
|
18
|
+
|
|
19
|
+
## Ce qui se passe à une limite
|
|
20
|
+
|
|
21
|
+
- **Dans les fichiers du projet**, une limite est une erreur
|
|
22
|
+
d’`overcrow-widget check`, avec un code qui la nomme
|
|
23
|
+
(`view.too_many_elements`, `style.too_many_rules`, `project.file_size`…).
|
|
24
|
+
Rien n’est tronqué.
|
|
25
|
+
- **Dans un appel de service**, un paramètre hors limites échoue avec
|
|
26
|
+
`invalid_request`, un quota plein avec `quota_exceeded`, et trop de
|
|
27
|
+
requêtes simultanées avec `busy`. Voir [erreurs](services.md#erreurs).
|
|
28
|
+
- **Pendant que la logique s’exécute**, dépasser un budget de la VM (la
|
|
29
|
+
durée d’un tour, le tas, les messages d’un tour) arrête le widget ;
|
|
30
|
+
OverCrow le redémarre quelques fois. Voir
|
|
31
|
+
[ce qui se passe en cas d’échec](logic.md#ce-qui-se-passe-en-cas-déchec).
|
|
32
|
+
- **Dans ce que le widget affiche**, OverCrow refuse une valeur hors limites
|
|
33
|
+
(un texte trop long pour un attribut, trop de nœuds), ce qui arrête aussi
|
|
34
|
+
le widget : bornez ce que vous affichez, par exemple le nombre de lignes
|
|
35
|
+
d’une liste.
|
|
36
|
+
|
|
37
|
+
Les longueurs sont en pixels logiques, à une échelle du contenu de 100 %.
|
|
38
|
+
Les limites de texte comptent des octets UTF-8, sauf quand l’unité indique
|
|
39
|
+
des caractères. Un Kio vaut 1024 octets et un Mio 1024² octets. Les limites
|
|
40
|
+
que la logique peut lire sont aussi des constantes du SDK : voir
|
|
41
|
+
[constantes de limites](sdk.md#constantes-de-limites).
|
|
42
|
+
|
|
43
|
+
## Limites par thème
|
|
44
|
+
|
|
45
|
+
<!-- generated:limits -->
|
|
46
|
+
### Fichiers du projet et paquet
|
|
47
|
+
|
|
48
|
+
| Limite | Valeur | Signification |
|
|
49
|
+
| --- | --- | --- |
|
|
50
|
+
| `MAX_VIEW_SOURCE_BYTES` | 256 Kio | Taille du fichier source `view.ocml`. |
|
|
51
|
+
| `MAX_STYLE_SOURCE_BYTES` | 128 Kio | Taille du fichier source `style.ocss`. |
|
|
52
|
+
| `MAX_LOGIC_BYTES` | 512 Kio | Le script `logic.js`, code compilé de la vue compris. |
|
|
53
|
+
| `MAX_LOCALE_ENTRIES` | 2048 | Messages d’un fichier `locales/<locale>.json`. |
|
|
54
|
+
| `MAX_LOCALE_KEY_BYTES` | 128 octets | Longueur d’une clé de message. |
|
|
55
|
+
| `MAX_LOCALE_VALUE_BYTES` | 4 Kio | Longueur du texte d’un message. |
|
|
56
|
+
| `MAX_LOCALE_FILE_BYTES` | 256 Kio | Un fichier `locales/<locale>.json`. |
|
|
57
|
+
| `MAX_MANIFEST_BYTES` | 64 Kio | Taille de `manifest.json`. |
|
|
58
|
+
| `MAX_LICENSE_BYTES` | 64 Kio | Texte de `LICENSE`. |
|
|
59
|
+
| `MAX_COMPILED_VIEW_BYTES` | 512 Kio | `view.json`, la vue compilée. |
|
|
60
|
+
| `MAX_PACKAGE_BYTES` | 16 Mio | Taille d’une archive `.ocpkg`. |
|
|
61
|
+
| `MAX_PACKAGE_FILES` | 256 | Entrées d’une archive, `manifest.json` et `ledger.json` compris. |
|
|
62
|
+
| `MAX_PACKAGE_PATH_BYTES` | 128 octets | Chemin d’une entrée de l’archive. |
|
|
63
|
+
| `MAX_ASSET_PATH_SEGMENTS` | 4 | Segments de chemin sous `assets/`, nom du fichier compris. |
|
|
64
|
+
|
|
65
|
+
### Manifeste et menu d’options
|
|
66
|
+
|
|
67
|
+
| Limite | Valeur | Signification |
|
|
68
|
+
| --- | --- | --- |
|
|
69
|
+
| `MIN_WIDGET_ID_BYTES` | 3 octets | ID de widget le plus court. |
|
|
70
|
+
| `MAX_WIDGET_ID_BYTES` | 128 octets | ID de widget le plus long ; chaque segment séparé par un point fait au plus 63 octets. |
|
|
71
|
+
| `MAX_VERSION_BYTES` | 64 octets | Texte de la version du paquet. |
|
|
72
|
+
| `MAX_WIDGET_NAME_CHARS` | 48 caractères | Un nom du widget, en anglais ou en français, dans le manifeste. |
|
|
73
|
+
| `MAX_WIDGET_EDGE_PX` | 4096 px | Largeur ou hauteur du cadre d’un widget. |
|
|
74
|
+
| `MIN_CONTENT_SCALE` | 500 ‰ | Plus petite échelle du contenu (50 %). |
|
|
75
|
+
| `MAX_CONTENT_SCALE` | 1750 ‰ | Plus grande échelle du contenu (175 %). |
|
|
76
|
+
| `MAX_GAME_EVENTS` | 32 | Événements de jeu sémantiques déclarés par un paquet. |
|
|
77
|
+
| `MAX_MENU_ROWS` | 16 | Lignes du widget dans `wrapper.menu`, lignes de groupe et leurs enfants compris. |
|
|
78
|
+
| `MAX_MENU_DEPTH` | 1 | Niveaux de sous-menu : un `group` ne peut pas contenir un autre `group`. |
|
|
79
|
+
| `MAX_MENU_LABEL_CHARS` | 80 caractères | Un libellé de ligne ou de choix, en anglais ou en français. |
|
|
80
|
+
| `MAX_MENU_ID_BYTES` | 48 octets | ID d’une ligne et valeur d’un choix. |
|
|
81
|
+
| `MIN_MENU_CHOICES` | 2 | Choix d’une ligne `choice`, borne inférieure. |
|
|
82
|
+
| `MAX_MENU_CHOICES` | 16 | Choix d’une ligne `choice`, borne supérieure. |
|
|
83
|
+
| `MAX_MENU_NUMBER` | 1000000 en valeur absolue | Valeur absolue d’une borne, d’un pas ou d’une valeur par défaut de curseur. |
|
|
84
|
+
| `MAX_SLIDER_STEPS` | 10000 | `(max - min) / step` d’une ligne de curseur. |
|
|
85
|
+
|
|
86
|
+
### Règles réseau
|
|
87
|
+
|
|
88
|
+
| Limite | Valeur | Signification |
|
|
89
|
+
| --- | --- | --- |
|
|
90
|
+
| `MAX_NETWORK_RULES` | 32 | Règles réseau déclarées par un paquet. |
|
|
91
|
+
| `MAX_NETWORK_PATH_BYTES` | 1 Kio | Modèle `path` d’une règle réseau. |
|
|
92
|
+
| `MAX_PATH_PARAMS` | 8 | `pathParams` d’une règle réseau. |
|
|
93
|
+
| `MAX_QUERY_PARAMS` | 16 | `queryParams` d’une règle réseau. |
|
|
94
|
+
| `MAX_ENUM_VALUES` | 32 | Valeurs d’une contrainte de paramètre `enum`. |
|
|
95
|
+
| `MAX_ENUM_VALUE_BYTES` | 128 octets | Une valeur d’un paramètre `enum`. |
|
|
96
|
+
| `MAX_PARAMETER_NAME_BYTES` | 32 octets | Nom d’un paramètre de chemin ou de requête. |
|
|
97
|
+
| `MAX_SLUG_PARAMETER_BYTES` | 128 octets | Plus grand `maxLength` d’une contrainte de paramètre `slug`. |
|
|
98
|
+
| `MAX_STRING_PARAMETER_BYTES` | 256 octets | Plus grand `maxLength` d’une contrainte de paramètre de requête `string`. |
|
|
99
|
+
| `MAX_DNS_LABEL_BYTES` | 63 octets | Un label, entre deux points, du nom d’hôte d’une origine réseau ou d’un ID de widget. |
|
|
100
|
+
| `MAX_DNS_NAME_BYTES` | 253 octets | Nom d’hôte d’une origine réseau. |
|
|
101
|
+
| `MAX_REQUEST_URL_BYTES` | 2 Kio | Texte de l’URL d’une requête. |
|
|
102
|
+
| `MAX_HTTP_REQUEST_BYTES` | 256 Kio | Corps d’une requête sortante. |
|
|
103
|
+
| `MAX_HTTP_RESPONSE_BYTES` | 1 Mio | Corps d’une réponse remise au widget quand sa règle réseau ne déclare pas de `maxResponseBytes`, et de toute réponse `as: "image"`. |
|
|
104
|
+
| `MAX_HTTP_DECLARED_RESPONSE_BYTES` | 3 Mio | Plus grand `maxResponseBytes` d’une règle réseau : le corps d’une réponse que la règle autorise, remis au widget. |
|
|
105
|
+
| `MAX_HTTP_RESPONSE_BYTES_PER_WIDGET` | 4 Mio | Octets de réponse que les requêtes en cours d’un widget peuvent réserver, chacune à hauteur de la limite de sa règle ; `busy` au-delà. Vaut `MAX_HTTP_CONCURRENT_PER_WIDGET` × `MAX_HTTP_RESPONSE_BYTES` : les règles sans `maxResponseBytes` ne l’atteignent jamais. |
|
|
106
|
+
| `MAX_HTTP_RESPONSE_BYTES_GLOBAL` | 64 Mio | Octets de réponse que les requêtes en cours de tous les widgets peuvent réserver ; `busy` au-delà. Vaut `MAX_HTTP_CONCURRENT_GLOBAL` × `MAX_HTTP_RESPONSE_BYTES`. |
|
|
107
|
+
| `MAX_HTTP_CONCURRENT_PER_WIDGET` | 4 | Requêtes en cours d’un widget. |
|
|
108
|
+
| `MAX_HTTP_CONCURRENT_GLOBAL` | 64 | Requêtes en cours de tous les widgets. |
|
|
109
|
+
| `HTTP_TIMEOUT_MS` | 30000 ms | Durée totale d’une requête. |
|
|
110
|
+
|
|
111
|
+
### Fiche
|
|
112
|
+
|
|
113
|
+
| Limite | Valeur | Signification |
|
|
114
|
+
| --- | --- | --- |
|
|
115
|
+
| `MAX_LISTING_LOCALIZATIONS` | 16 | Textes localisés de la fiche d’une version. |
|
|
116
|
+
| `MAX_LISTING_NAME_BYTES` | 128 octets | Nom d’une localisation, affiché par la marketplace. |
|
|
117
|
+
| `MAX_LISTING_DESCRIPTION_BYTES` | 512 octets | Description d’une localisation, affichée par la marketplace. |
|
|
118
|
+
| `MAX_AUTHOR_BYTES` | 128 octets | Auteur affiché dans une fiche. |
|
|
119
|
+
| `MAX_SPDX_LICENSE_BYTES` | 64 octets | Expression de licence SPDX d’une fiche. |
|
|
120
|
+
| `MAX_CATALOG_URL_BYTES` | 2 Kio | URL des sources d’une fiche. |
|
|
121
|
+
| `MAX_PREVIEW_BYTES` | 256 Kio | Image PNG d’aperçu d’une fiche. |
|
|
122
|
+
|
|
123
|
+
### Vue
|
|
124
|
+
|
|
125
|
+
| Limite | Valeur | Signification |
|
|
126
|
+
| --- | --- | --- |
|
|
127
|
+
| `MAX_VIEW_ELEMENTS` | 4096 | Éléments écrits dans `view.ocml`, composants compris. |
|
|
128
|
+
| `MAX_COMPONENTS` | 64 | Composants locaux déclarés dans une vue. |
|
|
129
|
+
| `MAX_COMPONENT_PROPS` | 32 | Propriétés déclarées d’un composant local. |
|
|
130
|
+
| `MAX_VIEW_EXPRESSIONS` | 4096 | Expressions compilées d’une vue, gestionnaires compris. |
|
|
131
|
+
| `MAX_EXPRESSION_BYTES` | 1 Kio | Longueur du source d’une expression `{expr}`. |
|
|
132
|
+
| `MAX_EXPRESSION_DEPTH` | 32 | Imbrication des opérateurs, des appels, des accès aux membres et des littéraux dans une expression. |
|
|
133
|
+
| `MAX_CALL_ARGUMENTS` | 8 | Arguments d’un appel, et entrées d’un littéral d’objet ou de tableau, dans une expression. |
|
|
134
|
+
| `MAX_SCENE_NODES` | 4096 | Éléments présents dans la vue d’un widget en cours d’exécution, éléments des listes compris. |
|
|
135
|
+
| `MAX_TREE_DEPTH` | 32 | Profondeur de l’arbre de la vue sous sa racine ; c’est aussi la limite d’imbrication de `if`, `for` et des composants. |
|
|
136
|
+
| `MAX_CHILDREN` | 1024 | Enfants d’un élément. |
|
|
137
|
+
| `MAX_NODE_TEXT_BYTES` | 16 Kio | Contenu textuel d’un élément `text`, `span`, `badge` ou `option`. |
|
|
138
|
+
| `MAX_ATTRIBUTE_TEXT_BYTES` | 1 Kio | Tout attribut de texte qui n’a pas de limite plus stricte. |
|
|
139
|
+
| `MAX_LABEL_BYTES` | 256 octets | Attributs `label`, `tooltip` et `placeholder`. |
|
|
140
|
+
| `MAX_IDENTIFIER_BYTES` | 64 octets | Noms de classes, de composants, de champs, de blocs `@keyframes` et autres identifiants du même genre. |
|
|
141
|
+
| `MAX_INITIALS_BYTES` | 16 octets | Texte de remplacement `initials` d’un `avatar`. |
|
|
142
|
+
| `MAX_CLASSES_PER_NODE` | 16 | Classes d’un élément. |
|
|
143
|
+
| `MAX_FIELD_TEXT_BYTES` | 16 Kio | Contenu d’un `field` ou d’un `textarea`, et d’un événement `input` ou `change`. |
|
|
144
|
+
| `MAX_CHART_POINTS` | 1024 | Valeurs d’une série de graphique. |
|
|
145
|
+
| `MAX_CHART_SERIES` | 4 | Enfants `series` d’un `chart`. |
|
|
146
|
+
| `MAX_KEY_BYTES` | 32 octets | `key` d’un événement `keydown` : un caractère affichable ou une touche nommée. |
|
|
147
|
+
|
|
148
|
+
### Style
|
|
149
|
+
|
|
150
|
+
| Limite | Valeur | Signification |
|
|
151
|
+
| --- | --- | --- |
|
|
152
|
+
| `MAX_STYLE_RULES` | 1024 | Règles d’une feuille de style, blocs `@keyframes` exclus. |
|
|
153
|
+
| `MAX_SELECTORS_PER_RULE` | 8 | Sélecteurs d’une règle, séparés par des virgules. |
|
|
154
|
+
| `MAX_COMPOUNDS_PER_SELECTOR` | 4 | Sélecteurs composés reliés par des combinateurs dans un sélecteur. |
|
|
155
|
+
| `MAX_SIMPLE_SELECTORS_PER_COMPOUND` | 6 | Sélecteurs de type, de classe et d’état dans un sélecteur composé. |
|
|
156
|
+
| `MAX_DECLARATIONS_PER_RULE` | 64 | Déclarations d’une règle ou d’une étape de `@keyframes`. |
|
|
157
|
+
| `MAX_KEYFRAMES` | 32 | Blocs `@keyframes` d’une feuille de style. |
|
|
158
|
+
| `MAX_KEYFRAME_STOPS` | 16 | Étapes d’un bloc `@keyframes`. |
|
|
159
|
+
| `MAX_SHADOWS` | 2 | Couches d’une valeur `box-shadow`. |
|
|
160
|
+
| `MAX_SHADOW_BLUR_PX` | 64 px | Rayon de flou et d’étalement d’une ombre. |
|
|
161
|
+
| `MAX_GRADIENT_STOPS` | 8 | Arrêts de couleur d’un `linear-gradient()`. |
|
|
162
|
+
| `MAX_GRID_TRACKS` | 24 | Pistes d’un `grid-template-rows` ou d’un `grid-template-columns`. |
|
|
163
|
+
| `MAX_GRID_FRACTION` | 1000 en valeur absolue | Plus grand facteur `<fr>` d’une piste de grille. |
|
|
164
|
+
| `MAX_TRANSITIONS` | 8 | Entrées d’une liste `transition` ou `animation`. |
|
|
165
|
+
| `MAX_ANIMATION_MS` | 300000 ms | Durée ou délai d’une transition ou d’une animation. |
|
|
166
|
+
| `MAX_ACTIVE_ANIMATIONS` | 64 | Transitions et animations en cours en même temps dans un widget ; les suivantes passent directement à leur état final. |
|
|
167
|
+
| `ANIMATION_RATE_HZ` | 60 Hz | Cadence maximale de repeinture pendant une animation ; rien n’est repeint quand rien ne change. |
|
|
168
|
+
| `MAX_LENGTH_PX` | 16384 px | Valeur absolue de toute longueur, de tout décalage et de toute coordonnée. |
|
|
169
|
+
| `MIN_FONT_SIZE_PX` | 6 px | Plus petit `font-size`, avant l’échelle du contenu. |
|
|
170
|
+
| `MAX_FONT_SIZE_PX` | 96 px | Plus grand `font-size`, avant l’échelle du contenu. |
|
|
171
|
+
| `MAX_PERCENT` | 1000 en valeur absolue | Valeur absolue de tout `<percent>` dans une valeur de style. |
|
|
172
|
+
| `MAX_ANGLE_DEG` | 3600 en valeur absolue | Valeur absolue de tout `<angle>`, en degrés (dix tours). |
|
|
173
|
+
| `MAX_TRANSFORM_FUNCTIONS` | 4 | Fonctions d’une valeur `transform`. |
|
|
174
|
+
| `MAX_TRANSFORM_SCALE` | 8 en valeur absolue | Plus grand facteur de `scale()` ; le plus petit est 0. |
|
|
175
|
+
| `MAX_EASING_STEPS` | 60 | Pas d’une fonction de progression `steps()`. |
|
|
176
|
+
| `MAX_ANIMATION_ITERATIONS` | 10000 | Nombre fini d’itérations d’une animation ; `infinite` reste admis. |
|
|
177
|
+
|
|
178
|
+
### Dessin et images
|
|
179
|
+
|
|
180
|
+
| Limite | Valeur | Signification |
|
|
181
|
+
| --- | --- | --- |
|
|
182
|
+
| `MAX_CANVASES` | 8 | Éléments `canvas` d’un widget. |
|
|
183
|
+
| `MAX_DRAW_COMMANDS` | 4096 | Commandes d’un appel à `draw`, qui remplace le contenu du canvas. |
|
|
184
|
+
| `MAX_PATH_POINTS` | 16384 | Sommets que l’hôte dessine pour un appel à `draw`, tous chemins confondus, comptés selon un plafond fixe par commande : `moveTo` et `lineTo` 1, `quadTo` 8, `cubicTo` 16, `arc` et `circle` 64, `rect` 36, les autres commandes 0. |
|
|
185
|
+
| `MAX_DRAW_STATE_DEPTH` | 16 | Commandes `save` imbriquées. |
|
|
186
|
+
| `MAX_IMAGE_EDGE_PX` | 2048 px | Largeur ou hauteur d’une image décodée. |
|
|
187
|
+
| `MAX_IMAGE_ENCODED_BYTES` | 2 Mio | Taille encodée d’une image PNG, JPEG ou WebP, avant décodage. |
|
|
188
|
+
|
|
189
|
+
### Logique
|
|
190
|
+
|
|
191
|
+
| Limite | Valeur | Signification |
|
|
192
|
+
| --- | --- | --- |
|
|
193
|
+
| `VM_HEAP_BYTES` | 16 Mio | Plafond du tas de la VM quand le manifeste n’en demande pas. |
|
|
194
|
+
| `VM_MAX_HEAP_BYTES` | 48 Mio | Plus grand plafond de tas qu’un manifeste peut demander. |
|
|
195
|
+
| `VM_STACK_BYTES` | 256 Kio | Plafond de la pile de la VM. |
|
|
196
|
+
| `VM_PROCESS_MEMORY_BYTES` | 64 Mio | Plafond de mémoire, strict, du processus d’un widget. |
|
|
197
|
+
| `VM_CPU_PERCENT` | 25 % d’un cœur | Plafond de CPU du processus d’un widget. |
|
|
198
|
+
| `VM_TURN_BUDGET_MS` | 50 ms | Durée d’un tour de la logique avant que la VM ne l’interrompe. |
|
|
199
|
+
| `VM_JOBS_PER_TURN` | 1024 | Tâches de promesses traitées dans un tour ; une file plus longue est un dépassement de ressources. |
|
|
200
|
+
| `VM_MESSAGES_PER_TURN` | 64 | Messages que le widget peut émettre pendant un tour. |
|
|
201
|
+
| `MAX_VM_MESSAGES_PER_SECOND` | 120 par seconde | Débit soutenu des messages du widget vers l’hôte. |
|
|
202
|
+
| `MAX_VM_MESSAGE_BURST` | 240 | Rafale de messages admise au-dessus de ce débit. |
|
|
203
|
+
| `MAX_PATCH_BYTES` | 256 Kio | Taille de ce que le widget envoie en une fois : un changement de la vue ou un appel à `draw`. |
|
|
204
|
+
| `MAX_PATCH_OPS` | 4096 | Opérations d’un changement de la vue (éléments créés, retirés, déplacés ou modifiés) après un tour. |
|
|
205
|
+
| `MAX_TIMERS` | 16 | Minuteurs actifs d’un widget. |
|
|
206
|
+
| `MIN_TIMER_INTERVAL_MS` | 100 ms | Plus courte période d’un minuteur ; l’animation relève du style, pas des minuteurs. |
|
|
207
|
+
| `CLOCK_RESOLUTION_MS` | 1 ms | Résolution de `Date.now()` dans la VM. |
|
|
208
|
+
| `MAX_LOG_BYTES` | 4 Kio | Texte d’un appel à `log`. |
|
|
209
|
+
|
|
210
|
+
### Services
|
|
211
|
+
|
|
212
|
+
| Limite | Valeur | Signification |
|
|
213
|
+
| --- | --- | --- |
|
|
214
|
+
| `MAX_SERVICE_CALLS_IN_FLIGHT` | 16 | Appels de service sans réponse d’un widget, abonnements exclus. |
|
|
215
|
+
| `MAX_SUBSCRIPTIONS` | 16 | Abonnements ouverts d’un widget. |
|
|
216
|
+
| `STORAGE_QUOTA_BYTES` | 256 Kio | Clés et valeurs stockées par un widget. |
|
|
217
|
+
| `MAX_STORAGE_KEYS` | 512 | Clés stockées par un widget. |
|
|
218
|
+
| `MAX_STORAGE_KEY_BYTES` | 128 octets | Longueur d’une clé de stockage. |
|
|
219
|
+
| `MAX_STORAGE_VALUE_BYTES` | 64 Kio | Taille, en JSON sérialisé, d’une valeur stockée. |
|
|
220
|
+
| `MAX_CLIPBOARD_BYTES` | 16 Kio | Texte d’une écriture dans le presse-papiers. |
|
|
221
|
+
| `MAX_OBJECT_ID_BYTES` | 128 octets | ID opaque d’un objet, ou curseur, échangé avec un service. |
|
|
222
|
+
|
|
223
|
+
### Notes, avis et chat
|
|
224
|
+
|
|
225
|
+
| Limite | Valeur | Signification |
|
|
226
|
+
| --- | --- | --- |
|
|
227
|
+
| `MAX_NOTES` | 8 | Notes du document de notes de l’utilisateur ; `notes.create` échoue au-delà. |
|
|
228
|
+
| `MAX_NOTE_TITLE_BYTES` | 96 octets | Titre d’une note, non vide une fois les espaces de début et de fin retirés. |
|
|
229
|
+
| `MAX_NOTE_BODY_BYTES` | 8 Kio | Corps d’une note. |
|
|
230
|
+
| `MAX_NOTE_ITEMS` | 64 | Entrées de la liste de tâches d’une note. |
|
|
231
|
+
| `MAX_NOTE_ITEM_BYTES` | 256 octets | Une entrée de liste de tâches. |
|
|
232
|
+
| `MAX_REVIEW_CHARS` | 2000 caractères | Texte d’un avis PlayerVox. |
|
|
233
|
+
| `MAX_CHAT_MESSAGE_CHARS` | 500 caractères | Message de chat Twitch, la limite de Twitch ; ni vide ni fait seulement d’espaces, sans caractère de contrôle. |
|
|
234
|
+
| `MAX_CHAT_FRAGMENTS` | 16 | Portions de texte et emotes d’un message de chat remis au widget ; l’hôte fond le reste en texte. |
|
|
235
|
+
| `MAX_CHAT_FAVORITES` | 20 | Chaînes Twitch favorites conservées par l’hôte. |
|
|
236
|
+
| `MAX_CHAT_CHANNEL_BYTES` | 25 octets | Identifiant d’une chaîne Twitch après normalisation : lettres ASCII, chiffres et `_`, en minuscules. |
|
|
237
|
+
|
|
238
|
+
### Images de référence
|
|
239
|
+
|
|
240
|
+
| Limite | Valeur | Signification |
|
|
241
|
+
| --- | --- | --- |
|
|
242
|
+
| `PARITY_CHANNEL_TOLERANCE` | 2 niveaux sur 255 | Plus grand écart par canal pour qu’un pixel compte comme identique à celui de l’image de référence. |
|
|
243
|
+
| `PARITY_MAX_DIFFERENT_PIXELS` | 100 ppm | Part des pixels admise au-delà de la tolérance par canal. Une seule lettre fausse de 10 px dans un widget de 360 × 260 représente 385 ppm. |
|
|
244
|
+
<!-- /generated:limits -->
|