@overcrow/mcp 0.1.3 → 0.1.5
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/README.md +12 -7
- package/dist/bootstrap/pin.js +19 -1
- package/dist/bootstrap/pin.json +47 -43
- package/dist/cli.js +14 -4
- package/dist/content/docs/en/cli.md +34 -32
- package/dist/content/docs/en/dev-channel.md +5 -5
- package/dist/content/docs/en/elements.md +5 -5
- package/dist/content/docs/en/forms.md +32 -30
- package/dist/content/docs/en/guide.md +16 -16
- package/dist/content/docs/en/index.md +12 -12
- package/dist/content/docs/en/limits.md +5 -4
- package/dist/content/docs/en/logic.md +30 -28
- package/dist/content/docs/en/manifest.md +35 -33
- package/dist/content/docs/en/mcp.md +13 -13
- package/dist/content/docs/en/package.md +7 -7
- package/dist/content/docs/en/publish-keys.md +6 -5
- package/dist/content/docs/en/publishing.md +9 -8
- package/dist/content/docs/en/reference.md +5 -5
- package/dist/content/docs/en/result-shapes.md +3 -3
- package/dist/content/docs/en/sdk.md +11 -11
- package/dist/content/docs/en/security.md +30 -30
- package/dist/content/docs/en/service-reference.md +2 -2
- package/dist/content/docs/en/services.md +33 -32
- package/dist/content/docs/en/style-properties.md +2 -2
- package/dist/content/docs/en/style.md +19 -18
- package/dist/content/docs/en/testing.md +36 -35
- package/dist/content/docs/en/view.md +13 -12
- package/dist/content/docs/en/widget-statistics.md +18 -17
- package/dist/content/docs/en/widgets.md +1 -1
- package/dist/content/docs/fr/cli.md +35 -30
- package/dist/content/docs/fr/dev-channel.md +8 -8
- package/dist/content/docs/fr/elements.md +5 -5
- package/dist/content/docs/fr/forms.md +35 -34
- package/dist/content/docs/fr/guide.md +13 -12
- package/dist/content/docs/fr/index.md +15 -15
- package/dist/content/docs/fr/limits.md +5 -5
- package/dist/content/docs/fr/logic.md +42 -37
- package/dist/content/docs/fr/manifest.md +40 -39
- package/dist/content/docs/fr/mcp.md +21 -19
- package/dist/content/docs/fr/package.md +8 -7
- package/dist/content/docs/fr/publish-keys.md +6 -5
- package/dist/content/docs/fr/publishing.md +8 -8
- package/dist/content/docs/fr/reference.md +6 -6
- package/dist/content/docs/fr/result-shapes.md +4 -3
- package/dist/content/docs/fr/sdk.md +12 -11
- package/dist/content/docs/fr/security.md +41 -39
- package/dist/content/docs/fr/service-reference.md +2 -2
- package/dist/content/docs/fr/services.md +34 -33
- package/dist/content/docs/fr/style-properties.md +2 -2
- package/dist/content/docs/fr/style.md +25 -22
- package/dist/content/docs/fr/testing.md +43 -43
- package/dist/content/docs/fr/view.md +17 -16
- package/dist/content/docs/fr/widget-statistics.md +20 -20
- package/dist/content/docs/fr/widgets.md +1 -1
- package/dist/content/examples/clock/README.md +3 -3
- package/dist/content/examples/fps/README.md +3 -3
- package/dist/content/examples/media/README.md +2 -2
- package/dist/content/examples/notes/README.md +1 -1
- package/dist/content/examples/performance/README.md +2 -2
- package/dist/content/examples/playervox-journal/README.md +5 -5
- package/dist/content/examples/playervox-rating/README.md +3 -3
- package/dist/content/examples/playervox-reviews/README.md +3 -3
- package/dist/content/examples/playervox-score/README.md +3 -3
- package/dist/content/examples/session/README.md +3 -3
- package/dist/content/examples/stopwatch/README.md +3 -3
- package/dist/content/examples/twitch-chat/README.md +4 -4
- package/dist/content/examples/warframe-market/README.md +2 -2
- package/dist/content/reference/errors.json +16 -16
- package/dist/prompts.js +2 -2
- package/dist/resources.js +1 -1
- package/dist/text.js +10 -2
- package/dist/texts.js +1 -1
- package/dist/tools/build.js +16 -10
- package/dist/tools/common.js +19 -12
- package/dist/tools/submission.js +7 -4
- package/dist/typescript.js +38 -0
- package/dist/version.js +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
|
@@ -57,8 +57,8 @@ in text, are refused: write `{` and `}`.
|
|
|
57
57
|
Each element has a fixed content, a set of attributes and the events it can
|
|
58
58
|
send. Containers (`box`, `scroll`, `list`, `form`, `popover`, `button`)
|
|
59
59
|
hold other elements; `text` holds text and inline children; the others are
|
|
60
|
-
leaves that OverCrow draws: `icon`, `image`, `toggle`, `slider`,
|
|
61
|
-
`chart`, `gauge`…
|
|
60
|
+
leaves that PlayerVox OverCrow draws: `icon`, `image`, `toggle`, `slider`,
|
|
61
|
+
`field`, `chart`, `gauge`…
|
|
62
62
|
|
|
63
63
|
<!-- generated:element-list -->
|
|
64
64
|
| Element | Meaning |
|
|
@@ -132,9 +132,10 @@ view is compiled:
|
|
|
132
132
|
| text, identifier | the text itself |
|
|
133
133
|
| image | a file of the package: `src="assets/logo.png"` |
|
|
134
134
|
|
|
135
|
-
`attr={expression}` binds the attribute to an expression instead;
|
|
136
|
-
checks every value the widget sends. Values that exist
|
|
137
|
-
runs, such as an image handed by a service, must be
|
|
135
|
+
`attr={expression}` binds the attribute to an expression instead;
|
|
136
|
+
PlayerVox OverCrow checks every value the widget sends. Values that exist
|
|
137
|
+
only when the widget runs, such as an image handed by a service, must be
|
|
138
|
+
bound.
|
|
138
139
|
|
|
139
140
|
Five attributes exist on every element:
|
|
140
141
|
|
|
@@ -176,8 +177,8 @@ a component, where it would name several nodes.
|
|
|
176
177
|
|
|
177
178
|
## Events
|
|
178
179
|
|
|
179
|
-
`on:event={handler}` asks OverCrow to send an event of the element
|
|
180
|
-
logic. Without it, the widget does not hear about the event at all: a
|
|
180
|
+
`on:event={handler}` asks PlayerVox OverCrow to send an event of the element
|
|
181
|
+
to the logic. Without it, the widget does not hear about the event at all: a
|
|
181
182
|
widget is not told about pointer moves or key presses it has not asked for.
|
|
182
183
|
|
|
183
184
|
A handler is written in one of two ways:
|
|
@@ -202,8 +203,8 @@ The events are `activate`, `contextmenu`, `wheel`, `keydown`, `input`,
|
|
|
202
203
|
and each [element](elements.md#elements) lists the ones it sends. Some of
|
|
203
204
|
them are user actions, during which a widget may call a protected service;
|
|
204
205
|
see [calls that need a user action](services.md#calls-that-need-a-user-action).
|
|
205
|
-
Widgets receive input only in OverCrow's Interactive mode: in
|
|
206
|
-
clicks go through them to the game.
|
|
206
|
+
Widgets receive input only in PlayerVox OverCrow's Interactive mode: in
|
|
207
|
+
Passive mode, clicks go through them to the game.
|
|
207
208
|
|
|
208
209
|
## Conditions, loops and components
|
|
209
210
|
|
|
@@ -236,7 +237,7 @@ may separate them.
|
|
|
236
237
|
|
|
237
238
|
`for` repeats its children for each item of a list. `each`, `as` and `key`
|
|
238
239
|
are all required, and the key must be unique among the repeated items: it
|
|
239
|
-
is how OverCrow knows which row moved, appeared or went away.
|
|
240
|
+
is how PlayerVox OverCrow knows which row moved, appeared or went away.
|
|
240
241
|
|
|
241
242
|
<!-- source: widgets/warframe-market/view.ocml -->
|
|
242
243
|
```xml
|
|
@@ -248,8 +249,8 @@ is how OverCrow knows which row moved, appeared or went away.
|
|
|
248
249
|
</for>
|
|
249
250
|
```
|
|
250
251
|
|
|
251
|
-
For a long list, put the `for` in a `list` element: OverCrow lays
|
|
252
|
-
paints only the rows that are visible.
|
|
252
|
+
For a long list, put the `for` in a `list` element: PlayerVox OverCrow lays
|
|
253
|
+
out and paints only the rows that are visible.
|
|
253
254
|
|
|
254
255
|
### Components
|
|
255
256
|
|
|
@@ -7,9 +7,9 @@ exact counts: this page says what each figure counts and what it leaves out.
|
|
|
7
7
|
|
|
8
8
|
## Where the figures come from
|
|
9
9
|
|
|
10
|
-
Once a day at most, at a random time, OverCrow sends one anonymous
|
|
11
|
-
for each widget installed from the catalog: the widget, its version,
|
|
12
|
-
day, the system (Windows or Linux), the version of OverCrow, whether the
|
|
10
|
+
Once a day at most, at a random time, PlayerVox OverCrow sends one anonymous
|
|
11
|
+
signal for each widget installed from the catalog: the widget, its version,
|
|
12
|
+
the day, the system (Windows or Linux), the version of OverCrow, whether the
|
|
13
13
|
widget was shown, installed or uninstalled that day, and its errors (kind,
|
|
14
14
|
place in the code, a rounded count).
|
|
15
15
|
|
|
@@ -18,7 +18,8 @@ place in the code, a rounded count).
|
|
|
18
18
|
- **No error message**: only the kind of an error and its place in your
|
|
19
19
|
code. A message may hold personal data.
|
|
20
20
|
- **On by default**: players can turn **Share anonymous statistics** off in
|
|
21
|
-
OverCrow; nothing is sent after that, and they are no longer
|
|
21
|
+
PlayerVox OverCrow; nothing is sent after that, and they are no longer
|
|
22
|
+
counted.
|
|
22
23
|
|
|
23
24
|
The figures are added up as the signals arrive. **Updated** gives the time
|
|
24
25
|
of the last one counted.
|
|
@@ -57,7 +58,7 @@ Every chart has **View as table**, with the same figures day by day.
|
|
|
57
58
|
version. The three newest versions keep their colour; the others add up as
|
|
58
59
|
**Older**.
|
|
59
60
|
- **Where your widget runs**: the share of active players on Windows and on
|
|
60
|
-
Linux, and on each version of OverCrow (the two most used, then
|
|
61
|
+
Linux, and on each version of PlayerVox OverCrow (the two most used, then
|
|
61
62
|
**Others**).
|
|
62
63
|
|
|
63
64
|
## Errors
|
|
@@ -67,10 +68,10 @@ the same line of the same function is one group, whatever the version. The
|
|
|
67
68
|
table shows the 50 most frequent groups of the period, with their versions,
|
|
68
69
|
their count and their trend; **Export CSV** saves them.
|
|
69
70
|
|
|
70
|
-
OverCrow reports where an error happened in the package's
|
|
71
|
-
creator space traces that position back to your sources
|
|
72
|
-
function) with a map of your code built with the package and
|
|
73
|
-
published.
|
|
71
|
+
PlayerVox OverCrow reports where an error happened in the package's
|
|
72
|
+
`logic.js`. The creator space traces that position back to your sources
|
|
73
|
+
(file, line and function) with a map of your code built with the package and
|
|
74
|
+
never published.
|
|
74
75
|
|
|
75
76
|
- **Being traced**: the position is shown as `logic.js:line:column` until it
|
|
76
77
|
is traced.
|
|
@@ -104,9 +105,9 @@ The kind of an error is the built-in type it was created from, never the
|
|
|
104
105
|
|
|
105
106
|
## Player rating
|
|
106
107
|
|
|
107
|
-
Players rate a widget from 0 to 100 in the OverCrow Control
|
|
108
|
-
their PlayerVox account: one rating per account and per widget,
|
|
109
|
-
can change or remove.
|
|
108
|
+
Players rate a widget from 0 to 100 in the PlayerVox OverCrow Control
|
|
109
|
+
Center, with their PlayerVox account: one rating per account and per widget,
|
|
110
|
+
which they can change or remove.
|
|
110
111
|
|
|
111
112
|
- **Score**: the mean of the ratings, rounded, with its rank: S+ from 90,
|
|
112
113
|
S from 80, A from 70, B from 60, C from 40, D from 20, then F.
|
|
@@ -124,11 +125,11 @@ and on the website.
|
|
|
124
125
|
## Trends, not exact counts
|
|
125
126
|
|
|
126
127
|
- Only the players who share their anonymous statistics are counted.
|
|
127
|
-
- OverCrow rounds each error count to a step before sending it,
|
|
128
|
-
at most 10 places in the code per widget and day: the error
|
|
129
|
-
orders of magnitude.
|
|
128
|
+
- PlayerVox OverCrow rounds each error count to a step before sending it,
|
|
129
|
+
and sends at most 10 places in the code per widget and day: the error
|
|
130
|
+
figures give orders of magnitude.
|
|
130
131
|
- A day is the player's own date.
|
|
131
|
-
- A player who clears OverCrow's data, then installs the widget
|
|
132
|
-
counts as two installs.
|
|
132
|
+
- A player who clears PlayerVox OverCrow's data, then installs the widget
|
|
133
|
+
again, counts as two installs.
|
|
133
134
|
- Signals that look broken or inflated are set aside before they are
|
|
134
135
|
counted.
|
|
@@ -33,7 +33,7 @@ license: read them, copy them, and use them as a starting point.
|
|
|
33
33
|
scenario, framed and staged by `node scripts/compose-previews.mjs`;
|
|
34
34
|
- `tests/`: unit tests of the logic, and scenarios with reference images in
|
|
35
35
|
both themes, both languages and two scales, played by
|
|
36
|
-
`overcrow-widget test` in OverCrow's headless runtime;
|
|
36
|
+
`overcrow-widget test` in PlayerVox OverCrow's headless runtime;
|
|
37
37
|
- `README.md`: what it shows, its menu, its permissions, how it works and
|
|
38
38
|
what it costs.
|
|
39
39
|
|
|
@@ -23,7 +23,7 @@ overcrow-widget test
|
|
|
23
23
|
| [`check`](#check) | Valide un projet sans rien écrire. |
|
|
24
24
|
| [`package`](#package) | Vérifie, puis écrit le paquet `.ocpkg`. |
|
|
25
25
|
| [`inspect`](#inspect) | Montre ce qu’un paquet contient et demande. |
|
|
26
|
-
| [`dev`](#dev) | Exécute le widget dans OverCrow et le recharge à chaque enregistrement. |
|
|
26
|
+
| [`dev`](#dev) | Exécute le widget dans PlayerVox OverCrow et le recharge à chaque enregistrement. |
|
|
27
27
|
| [`test`](#test) | Joue les scénarios de test du projet et compare leurs images. |
|
|
28
28
|
| [`doctor`](#doctor) | Indique ce que votre installation a et ce qui lui manque. |
|
|
29
29
|
| [`admit`](#admit) | Exécute l’admission de l’espace créateurs sur vos sources, un dossier ou un ZIP. |
|
|
@@ -37,7 +37,7 @@ et les [codes de sortie](#codes-de-sortie) sont stables pour vos scripts.
|
|
|
37
37
|
|
|
38
38
|
## Installation
|
|
39
39
|
|
|
40
|
-
Chaque [release
|
|
40
|
+
Chaque [release de PlayerVox OverCrow](https://github.com/Valhallab/playervox-overcrow-releases/releases)
|
|
41
41
|
contient les outils créateurs dans un ZIP par plateforme : l’outil avec
|
|
42
42
|
sa licence et ses notices tierces, le runtime headless d’OverCrow
|
|
43
43
|
qu’utilise [`test`](#test), un `README.txt` et un `SHA256SUMS` de tous
|
|
@@ -123,8 +123,8 @@ overcrow-widget init my-widget --template list --id nova.my-widget --name "My wi
|
|
|
123
123
|
| `chart` | Un graphique en direct, mis à jour par un minuteur. |
|
|
124
124
|
|
|
125
125
|
Passez `--id` avec l’ID de votre widget : `<pseudo>.<nom>`, votre pseudo
|
|
126
|
-
d’éditeur dans l’espace créateurs
|
|
127
|
-
ou un domaine que vous avez vérifié, inversé, et un nom
|
|
126
|
+
d’éditeur dans l’espace créateurs de PlayerVox OverCrow et un nom
|
|
127
|
+
(`nova.lol-timers`), ou un domaine que vous avez vérifié, inversé, et un nom
|
|
128
128
|
(`gg.nova.lol-timers`) ; voir [le manifeste](manifest.md#identité-et-version).
|
|
129
129
|
Sans `--id`, l’ID vaut `yourhandle.<dir>` : remplacez `yourhandle` avant
|
|
130
130
|
d’envoyer le widget, car `admit` le refuse. `com.playervox.*` est réservé.
|
|
@@ -144,11 +144,12 @@ Exécute toutes les vérifications, dans cet ordre, et n’écrit rien :
|
|
|
144
144
|
1. **Fichiers du projet** : les fichiers requis sont présents et respectent
|
|
145
145
|
leurs limites de taille, il y a un seul module de logique, et les deux
|
|
146
146
|
fichiers de langue ou aucun.
|
|
147
|
-
2. **Manifeste** : le validateur de manifeste
|
|
147
|
+
2. **Manifeste** : le validateur de manifeste de PlayerVox OverCrow
|
|
148
|
+
lui-même.
|
|
148
149
|
3. **Vue** : `view.ocml` est compilé et le résultat validé ; les images
|
|
149
150
|
statiques doivent exister dans `assets/`.
|
|
150
151
|
4. **Style** : `style.ocss` est analysé avec l’analyseur syntaxique
|
|
151
|
-
|
|
152
|
+
de PlayerVox OverCrow.
|
|
152
153
|
5. **Fichiers de langue** : des objets de chaînes aux clés valides, avec les
|
|
153
154
|
mêmes clés dans les deux fichiers. Un `t("key")` de la vue dont la clé
|
|
154
155
|
n’a pas de message donne un avertissement.
|
|
@@ -157,7 +158,7 @@ Exécute toutes les vérifications, dans cet ordre, et n’écrit rien :
|
|
|
157
158
|
les exports que la vue appelle.
|
|
158
159
|
7. **Types** : le `tsc --noEmit -p tsconfig.json` du projet.
|
|
159
160
|
8. **Paquet** : `logic.js` est construit, puis le paquet est écrit en
|
|
160
|
-
mémoire et relu exactement comme OverCrow le lira.
|
|
161
|
+
mémoire et relu exactement comme PlayerVox OverCrow le lira.
|
|
161
162
|
|
|
162
163
|
Options : `--no-typecheck`, `--deny-warnings` (un avertissement fait échouer
|
|
163
164
|
la commande), `--format json`.
|
|
@@ -187,9 +188,9 @@ systèmes. Le contenu du paquet est décrit dans [le paquet](package.md).
|
|
|
187
188
|
overcrow-widget inspect dist/nova.my-widget-0.1.0.ocpkg
|
|
188
189
|
```
|
|
189
190
|
|
|
190
|
-
Valide un paquet comme le fait OverCrow, puis le montre tel qu’un
|
|
191
|
-
le voit : l’ID, la version et les noms ; la taille et le SHA-256
|
|
192
|
-
l’archive ; la version du SDK que contient son `logic.js` ; chaque
|
|
191
|
+
Valide un paquet comme le fait PlayerVox OverCrow, puis le montre tel qu’un
|
|
192
|
+
relecteur le voit : l’ID, la version et les noms ; la taille et le SHA-256
|
|
193
|
+
de l’archive ; la version du SDK que contient son `logic.js` ; chaque
|
|
193
194
|
permission en toutes lettres (routes réseau avec les contraintes de leurs
|
|
194
195
|
paramètres et la limite de réponse déclarée, stockage, presse-papiers,
|
|
195
196
|
événements de jeu) ; chaque capability avec son résumé, en précisant si
|
|
@@ -203,8 +204,8 @@ paquet, la commande le signale à la place, avec la raison.
|
|
|
203
204
|
overcrow-widget dev
|
|
204
205
|
```
|
|
205
206
|
|
|
206
|
-
Exécute le widget dans l’overlay OverCrow qui tourne sur votre
|
|
207
|
-
pendant que vous le modifiez :
|
|
207
|
+
Exécute le widget dans l’overlay PlayerVox OverCrow qui tourne sur votre
|
|
208
|
+
machine, pendant que vous le modifiez :
|
|
208
209
|
|
|
209
210
|
1. la commande se connecte à l’overlay, qui doit avoir été lancé avec les
|
|
210
211
|
installations de développement autorisées ;
|
|
@@ -224,8 +225,9 @@ pendant que vous le modifiez :
|
|
|
224
225
|
Options : `--no-typecheck`, `--format json` (un objet JSON par ligne).
|
|
225
226
|
Codes de sortie : 0 après Ctrl+C, 1 quand l’overlay met fin à la session,
|
|
226
227
|
2 quand aucun overlay n’est joignable.
|
|
227
|
-
[Le canal de développement](dev-channel.md) explique comment lancer
|
|
228
|
-
pour cela, et ce que signifient chaque état et chaque
|
|
228
|
+
[Le canal de développement](dev-channel.md) explique comment lancer
|
|
229
|
+
PlayerVox OverCrow pour cela, et ce que signifient chaque état et chaque
|
|
230
|
+
refus.
|
|
229
231
|
|
|
230
232
|
## test
|
|
231
233
|
|
|
@@ -235,8 +237,8 @@ overcrow-widget test --scenario example
|
|
|
235
237
|
overcrow-widget test --update
|
|
236
238
|
```
|
|
237
239
|
|
|
238
|
-
Joue les scénarios de `tests/` dans le runtime headless
|
|
239
|
-
compare les images qu’il rend avec les références :
|
|
240
|
+
Joue les scénarios de `tests/` dans le runtime headless de
|
|
241
|
+
PlayerVox OverCrow et compare les images qu’il rend avec les références :
|
|
240
242
|
|
|
241
243
|
1. la commande construit le paquet comme le fait `package` ;
|
|
242
244
|
2. elle lit chaque `tests/<name>.scenario.json` et le vérifie par rapport au
|
|
@@ -278,7 +280,7 @@ overcrow-widget doctor
|
|
|
278
280
|
| Code | Sévérité | Signification |
|
|
279
281
|
| --- | --- | --- |
|
|
280
282
|
| `doctor.overcrow_missing` | avertissement | OverCrow n’est pas installé. |
|
|
281
|
-
| `doctor.development_off` | avertissement | Aucun overlay n’autorise les installations de développement ; l’aide donne les commandes pour relancer OverCrow en les autorisant. |
|
|
283
|
+
| `doctor.development_off` | avertissement | Aucun overlay n’autorise les installations de développement ; l’aide donne les commandes pour relancer PlayerVox OverCrow en les autorisant. |
|
|
282
284
|
| `doctor.channel_busy` | avertissement | L’overlay sert déjà son nombre maximal de sessions `dev`. |
|
|
283
285
|
| `doctor.channel_io` | avertissement | La connexion à l’overlay a échoué. |
|
|
284
286
|
| `doctor.channel_untrusted` | erreur | Ce qui répond n’est pas l’overlay de cet utilisateur. |
|
|
@@ -402,11 +404,12 @@ overcrow-widget submit --dry-run --submission submission.json
|
|
|
402
404
|
overcrow-widget submit --submission submission.json
|
|
403
405
|
```
|
|
404
406
|
|
|
405
|
-
Envoie une version de votre widget à l’espace créateurs
|
|
406
|
-
un terminal, une CI ou le serveur MCP d’OverCrow,
|
|
407
|
-
La commande ne pose jamais de question : ce qui
|
|
408
|
-
[code de sortie](#codes-de-sortie) stable. Elle
|
|
409
|
-
(le dossier courant sans argument) ou un ZIP de
|
|
407
|
+
Envoie une version de votre widget à l’espace créateurs de
|
|
408
|
+
PlayerVox OverCrow, depuis un terminal, une CI ou le serveur MCP d’OverCrow,
|
|
409
|
+
puis suit ses contrôles. La commande ne pose jamais de question : ce qui
|
|
410
|
+
manque est signalé, avec un [code de sortie](#codes-de-sortie) stable. Elle
|
|
411
|
+
prend le dossier du widget (le dossier courant sans argument) ou un ZIP de
|
|
412
|
+
ce dossier.
|
|
410
413
|
|
|
411
414
|
### La clé de publication
|
|
412
415
|
|
|
@@ -524,7 +527,7 @@ expire, et chaque envoi compte dans la limite quotidienne.
|
|
|
524
527
|
| `reviewMessage` | Un message privé au relecteur, 2 000 caractères. |
|
|
525
528
|
|
|
526
529
|
Chaque clé est facultative ; toute autre clé est refusée. Le serveur MCP
|
|
527
|
-
|
|
530
|
+
de PlayerVox OverCrow écrit ce fichier.
|
|
528
531
|
|
|
529
532
|
### Dans une CI
|
|
530
533
|
|
|
@@ -534,10 +537,11 @@ avec la clé dans les secrets du dépôt :
|
|
|
534
537
|
|
|
535
538
|
<!-- source: docs/content/examples/weather/.github/workflows/submit.yml -->
|
|
536
539
|
```yaml
|
|
537
|
-
# Sends the widget to the OverCrow creator space when a version
|
|
538
|
-
# pushed. The publish key is a secret of the repository, and the
|
|
539
|
-
# release whose creator tools to use is a variable of the
|
|
540
|
-
|
|
540
|
+
# Sends the widget to the PlayerVox OverCrow creator space when a version
|
|
541
|
+
# tag is pushed. The publish key is a secret of the repository, and the
|
|
542
|
+
# OverCrow release whose creator tools to use is a variable of the
|
|
543
|
+
# repository.
|
|
544
|
+
name: Submit to PlayerVox OverCrow
|
|
541
545
|
|
|
542
546
|
on:
|
|
543
547
|
push:
|
|
@@ -562,7 +566,7 @@ jobs:
|
|
|
562
566
|
(cd "$tools" && sha256sum --check --quiet SHA256SUMS)
|
|
563
567
|
install -D -m 755 "$tools"/overcrow-widget-*-linux-x86_64 "$HOME/.local/bin/overcrow-widget"
|
|
564
568
|
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
|
|
565
|
-
- name: Submit to OverCrow
|
|
569
|
+
- name: Submit to PlayerVox OverCrow
|
|
566
570
|
run: overcrow-widget submit --submission submission.json
|
|
567
571
|
env:
|
|
568
572
|
OVERCROW_PUBLISH_KEY: ${{ secrets.OVERCROW_PUBLISH_KEY }}
|
|
@@ -572,7 +576,7 @@ Le job échoue pour tout code autre que 0. `OVERCROW_API_URL` dirige
|
|
|
572
576
|
`submit` et `status` vers une autre API, pour des essais seulement :
|
|
573
577
|
`https://`, ou `http://` vers `127.0.0.1`, `localhost` ou `[::1]`, avec un
|
|
574
578
|
avertissement à chaque fois. Ne la posez jamais dans une vraie CI ; le
|
|
575
|
-
serveur MCP
|
|
579
|
+
serveur MCP de PlayerVox OverCrow ne la pose jamais.
|
|
576
580
|
|
|
577
581
|
## status
|
|
578
582
|
|
|
@@ -776,7 +780,8 @@ est annoncé par un nouveau `formatVersion`.
|
|
|
776
780
|
version ; `status` sans `--wait` n’en a pas. Les codes
|
|
777
781
|
d’erreur sont ceux de l’espace créateurs (`version_not_newer`,
|
|
778
782
|
`submission_limit_reached`, `publish_key_expired`, `publish_key_revoked`,
|
|
779
|
-
`
|
|
783
|
+
`publish_key_owner_suspended`, `widget_required`,
|
|
784
|
+
`publish_key_widget_not_covered`…)
|
|
780
785
|
ou ceux de l’outil : `publish_key_missing`, `invalid_publish_key`,
|
|
781
786
|
`api_url_invalid`, `submission_file`, `sources`, `sources.read`, `network`,
|
|
782
787
|
`timeout`, `server`, `response`, `redirect`, `upload_refused`,
|
|
@@ -16,10 +16,10 @@ Ctrl+C.
|
|
|
16
16
|
|
|
17
17
|
## L’activer
|
|
18
18
|
|
|
19
|
-
Le canal n’existe que tant
|
|
20
|
-
développement autorisées, c’est-à-dire lancé avec la
|
|
21
|
-
d’environnement `OVERCROW_WIDGET_DEVELOPMENT=1`. Sans elle,
|
|
22
|
-
n’ouvre rien.
|
|
19
|
+
Le canal n’existe que tant que PlayerVox OverCrow s’exécute avec les
|
|
20
|
+
installations de développement autorisées, c’est-à-dire lancé avec la
|
|
21
|
+
variable d’environnement `OVERCROW_WIDGET_DEVELOPMENT=1`. Sans elle,
|
|
22
|
+
l’overlay n’ouvre rien.
|
|
23
23
|
|
|
24
24
|
**Linux.** Définissez la variable pour les services de votre session, puis
|
|
25
25
|
redémarrez l’overlay :
|
|
@@ -37,8 +37,8 @@ systemctl --user unset-environment OVERCROW_WIDGET_DEVELOPMENT
|
|
|
37
37
|
systemctl --user restart overcrow-overlay.service
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
**Windows.** Quittez OverCrow depuis son icône de la zone de
|
|
41
|
-
puis lancez-le depuis PowerShell :
|
|
40
|
+
**Windows.** Quittez PlayerVox OverCrow depuis son icône de la zone de
|
|
41
|
+
notification, puis lancez-le depuis PowerShell :
|
|
42
42
|
|
|
43
43
|
```text
|
|
44
44
|
$env:OVERCROW_WIDGET_DEVELOPMENT='1'; & "$env:LOCALAPPDATA\Programs\OverCrow\OverCrow.exe"
|
|
@@ -136,5 +136,5 @@ l’utiliser : leur sandbox n’y a pas accès.
|
|
|
136
136
|
|
|
137
137
|
C’est pourquoi le canal est désactivé par défaut. Une fois activé, tout
|
|
138
138
|
programme que vous lancez peut afficher un widget non vérifié dans votre
|
|
139
|
-
overlay, aussi longtemps
|
|
140
|
-
avez terminé.
|
|
139
|
+
overlay, aussi longtemps que PlayerVox OverCrow s’exécute. Désactivez-le
|
|
140
|
+
quand vous avez terminé.
|
|
@@ -19,7 +19,7 @@ les entoure : expressions, `if`, `for`, composants.
|
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
Deux conteneurs `box`, deux éléments `text` liés à l’état et un `chart` doté
|
|
22
|
-
d’une `series` : OverCrow dessine le tout, graphique compris.
|
|
22
|
+
d’une `series` : PlayerVox OverCrow dessine le tout, graphique compris.
|
|
23
23
|
|
|
24
24
|
## Lire la fiche d’un élément
|
|
25
25
|
|
|
@@ -441,10 +441,10 @@ Toute autre `key` est un unique caractère imprimable.
|
|
|
441
441
|
|
|
442
442
|
## Tailles par défaut
|
|
443
443
|
|
|
444
|
-
Les éléments
|
|
445
|
-
100 %, sauf si le style définit `width` ou `height`. Tout autre
|
|
446
|
-
sa taille de son contenu et du style : un `canvas` n’a pas de
|
|
447
|
-
que le style ne lui en donne pas.
|
|
444
|
+
Les éléments que PlayerVox OverCrow dessine prennent ces tailles, en pixels
|
|
445
|
+
logiques à 100 %, sauf si le style définit `width` ou `height`. Tout autre
|
|
446
|
+
élément tire sa taille de son contenu et du style : un `canvas` n’a pas de
|
|
447
|
+
taille tant que le style ne lui en donne pas.
|
|
448
448
|
|
|
449
449
|
<!-- generated:default-sizes -->
|
|
450
450
|
| Élément | Quand | Largeur | Hauteur |
|
|
@@ -9,9 +9,10 @@ de laisser l’utilisateur écrire dans ses notes, publier sa note d’un jeu su
|
|
|
9
9
|
PlayerVox ou envoyer un message de chat, sans que le texte passe jamais par
|
|
10
10
|
le code du widget.
|
|
11
11
|
|
|
12
|
-
Les widgets ne reçoivent d’entrées qu’en mode interactif
|
|
13
|
-
passif, un clic traverse le widget jusqu’au jeu
|
|
14
|
-
qui est inutilisable, comme le font les widgets
|
|
12
|
+
Les widgets ne reçoivent d’entrées qu’en mode interactif de
|
|
13
|
+
PlayerVox OverCrow. En mode passif, un clic traverse le widget jusqu’au jeu
|
|
14
|
+
: masquez ou désactivez ce qui est inutilisable, comme le font les widgets
|
|
15
|
+
intégrés avec `host.mode`.
|
|
15
16
|
|
|
16
17
|
## Contrôles
|
|
17
18
|
|
|
@@ -59,10 +60,10 @@ un nombre pour un curseur, du texte pour les autres.
|
|
|
59
60
|
|
|
60
61
|
### Champs de texte
|
|
61
62
|
|
|
62
|
-
OverCrow édite lui-même le texte d’un `field` ou d’un `textarea` :
|
|
63
|
-
d’insertion, la sélection, le copier-coller et les méthodes de
|
|
64
|
-
langues qui composent leurs caractères. La logique reçoit une
|
|
65
|
-
dans chaque événement `input`.
|
|
63
|
+
PlayerVox OverCrow édite lui-même le texte d’un `field` ou d’un `textarea` :
|
|
64
|
+
le point d’insertion, la sélection, le copier-coller et les méthodes de
|
|
65
|
+
saisie des langues qui composent leurs caractères. La logique reçoit une
|
|
66
|
+
copie du texte dans chaque événement `input`.
|
|
66
67
|
|
|
67
68
|
<!-- source: widgets/warframe-market/view.ocml -->
|
|
68
69
|
```xml
|
|
@@ -94,8 +95,8 @@ une indication tant que le champ est vide.
|
|
|
94
95
|
|
|
95
96
|
Un champ envoie aussi `keydown` quand vous le demandez, avec la touche et
|
|
96
97
|
ses modificateurs, pour des raccourcis comme Échap pour annuler. Les touches
|
|
97
|
-
|
|
98
|
-
une composition en cours) ne sont pas transmises.
|
|
98
|
+
que PlayerVox OverCrow se réserve (Tab pour déplacer le focus, ses propres
|
|
99
|
+
raccourcis, une composition en cours) ne sont pas transmises.
|
|
99
100
|
|
|
100
101
|
### Le focus à l’ouverture d’un éditeur
|
|
101
102
|
|
|
@@ -110,7 +111,7 @@ champ, après son texte, comme le ferait un clic dans ce champ.
|
|
|
110
111
|
<field class="title-field" name="title" autofocus placeholder={t("title-hint")} label={t("title-hint")} on:input={titleInput(editor.key, event.value)} on:keydown={keyed(editor.key, event.key, event.ctrl)}/>
|
|
111
112
|
```
|
|
112
113
|
|
|
113
|
-
OverCrow ne donne ce focus que si l’élément apparaît pendant une
|
|
114
|
+
PlayerVox OverCrow ne donne ce focus que si l’élément apparaît pendant une
|
|
114
115
|
[action de l’utilisateur](services.md#les-appels-qui-demandent-une-action-de-lutilisateur),
|
|
115
116
|
en mode interactif, dans le widget sur lequel l’utilisateur a agi ; quand
|
|
116
117
|
plusieurs de ces éléments apparaissent ensemble, le premier de la vue le
|
|
@@ -192,25 +193,25 @@ sont pas des appels de service. C’est un formulaire doté d’un attribut
|
|
|
192
193
|
</form>
|
|
193
194
|
```
|
|
194
195
|
|
|
195
|
-
Quand l’utilisateur valide un tel formulaire, **OverCrow lit les
|
|
196
|
-
contrôles de ce formulaire et les envoie lui-même**. La logique
|
|
197
|
-
fournit jamais le texte : un widget ne peut donc ni écrire ce
|
|
198
|
-
l’utilisateur n’a pas saisi, ni valider sans lui. Le formulaire ne part
|
|
199
|
-
sur une action de l’utilisateur, en mode interactif, avec la capability
|
|
196
|
+
Quand l’utilisateur valide un tel formulaire, **PlayerVox OverCrow lit les
|
|
197
|
+
valeurs des contrôles de ce formulaire et les envoie lui-même**. La logique
|
|
198
|
+
du widget ne fournit jamais le texte : un widget ne peut donc ni écrire ce
|
|
199
|
+
que l’utilisateur n’a pas saisi, ni valider sans lui. Le formulaire ne part
|
|
200
|
+
que sur une action de l’utilisateur, en mode interactif, avec la capability
|
|
200
201
|
accordée.
|
|
201
202
|
|
|
202
203
|
Ce que cela change pour la vue et la logique :
|
|
203
204
|
|
|
204
|
-
- **Les contrôles appartiennent à OverCrow.** Les contrôles
|
|
205
|
-
`textarea` et `slider` du formulaire ne prennent pas de `value` :
|
|
205
|
+
- **Les contrôles appartiennent à PlayerVox OverCrow.** Les contrôles
|
|
206
|
+
`field`, `textarea` et `slider` du formulaire ne prennent pas de `value` :
|
|
206
207
|
`overcrow-widget check` le refuse (`view.bound_value`), et OverCrow arrête
|
|
207
208
|
un widget qui en définit un à l’exécution. Leur attribut `name` indique à
|
|
208
209
|
quel champ de l’intent chacun correspond.
|
|
209
|
-
- **OverCrow les remplit** là où l’intent le prévoit : le titre,
|
|
210
|
-
la liste de tâches de la note, la note publiée par
|
|
211
|
-
remplissage envoie l’événement `input` du contrôle avec
|
|
212
|
-
que la logique sache ce qui est affiché ; cet événement
|
|
213
|
-
action de l’utilisateur.
|
|
210
|
+
- **PlayerVox OverCrow les remplit** là où l’intent le prévoit : le titre,
|
|
211
|
+
le corps et la liste de tâches de la note, la note publiée par
|
|
212
|
+
l’utilisateur. Un remplissage envoie l’événement `input` du contrôle avec
|
|
213
|
+
la valeur, pour que la logique sache ce qui est affiché ; cet événement
|
|
214
|
+
n’est pas une action de l’utilisateur.
|
|
214
215
|
- **La logique suit par les événements `input`**, pour afficher un compteur
|
|
215
216
|
ou activer le bouton, et peut désactiver les contrôles.
|
|
216
217
|
- **L’issue arrive dans l’événement `submit` du formulaire** :
|
|
@@ -293,11 +294,11 @@ on répond pour `twitch.chat.send`.
|
|
|
293
294
|
### Plusieurs lignes d’un même champ
|
|
294
295
|
|
|
295
296
|
L’intent `notes.save` prend un champ `item` par ligne de la liste de tâches.
|
|
296
|
-
La logique décide des lignes du formulaire, avec un `for` ;
|
|
297
|
-
le champ de chaque ligne à partir de la note
|
|
298
|
-
entrée de la liste de tâches il y a placée.
|
|
299
|
-
ou déplace garde son entrée, et une ligne
|
|
300
|
-
entrée.
|
|
297
|
+
La logique décide des lignes du formulaire, avec un `for` ;
|
|
298
|
+
PlayerVox OverCrow remplit le champ de chaque ligne à partir de la note
|
|
299
|
+
enregistrée et retient quelle entrée de la liste de tâches il y a placée.
|
|
300
|
+
Une ligne que la logique retire ou déplace garde son entrée, et une ligne
|
|
301
|
+
ajoutée depuis est une nouvelle entrée.
|
|
301
302
|
|
|
302
303
|
<!-- source: widgets/notes/view.ocml -->
|
|
303
304
|
```xml
|
|
@@ -319,11 +320,11 @@ Ctrl+Entrée ou le bouton `submit` enregistre.
|
|
|
319
320
|
|
|
320
321
|
Deux services suppriment des données de l’utilisateur : `notes.delete` et
|
|
321
322
|
`journal.delete`. Ce sont des appels ordinaires qui demandent une action de
|
|
322
|
-
l’utilisateur. OverCrow demande ensuite à l’utilisateur de
|
|
323
|
-
une boîte de dialogue qu’il dessine lui-même, hors du
|
|
324
|
-
aboutit quand l’utilisateur confirme et échoue avec
|
|
325
|
-
refuse. Ne dessinez pas votre propre « Êtes-vous sûr ?
|
|
326
|
-
confirmation d’OverCrow compte.
|
|
323
|
+
l’utilisateur. PlayerVox OverCrow demande ensuite à l’utilisateur de
|
|
324
|
+
confirmer, dans une boîte de dialogue qu’il dessine lui-même, hors du
|
|
325
|
+
widget. L’appel aboutit quand l’utilisateur confirme et échoue avec
|
|
326
|
+
`cancelled` quand il refuse. Ne dessinez pas votre propre « Êtes-vous sûr ?
|
|
327
|
+
» : seule la confirmation d’OverCrow compte.
|
|
327
328
|
|
|
328
329
|
## Points à vérifier pour un formulaire
|
|
329
330
|
|
|
@@ -337,5 +338,5 @@ confirmation d’OverCrow compte.
|
|
|
337
338
|
ni sur ses curseurs, et chaque contrôle nommé est un champ de l’intent.
|
|
338
339
|
- Testez-le avec un scénario : les étapes `text` saisissent du texte dans le
|
|
339
340
|
champ qui a le focus, les étapes `key` appuient sur Entrée, et
|
|
340
|
-
`expect.intents` vérifie exactement ce
|
|
341
|
-
[Tester un widget](testing.md#steps).
|
|
341
|
+
`expect.intents` vérifie exactement ce que PlayerVox OverCrow a envoyé.
|
|
342
|
+
Voir [Tester un widget](testing.md#steps).
|
|
@@ -6,7 +6,7 @@ lancer dans OverCrow, le tester, l’empaqueter et le soumettre. Chaque étape
|
|
|
6
6
|
renvoie à la page qui la traite en détail.
|
|
7
7
|
|
|
8
8
|
Pour travailler plutôt avec un assistant IA, ajoutez-lui le serveur MCP
|
|
9
|
-
|
|
9
|
+
de PlayerVox OverCrow : voir [MCP](mcp.md).
|
|
10
10
|
|
|
11
11
|
## 1. Installer les outils
|
|
12
12
|
|
|
@@ -15,7 +15,7 @@ d’OverCrow : voir [MCP](mcp.md).
|
|
|
15
15
|
- **Node.js 22 ou plus récent** et npm, pour que `check` vérifie les types
|
|
16
16
|
de votre logique avec le TypeScript du projet et le SDK de npm. Sans lui, la CLI vérifie et
|
|
17
17
|
empaquette quand même, mais signale que les types n’ont pas été vérifiés.
|
|
18
|
-
- **OverCrow**, pour lancer le widget pendant que vous l’écrivez.
|
|
18
|
+
- **PlayerVox OverCrow**, pour lancer le widget pendant que vous l’écrivez.
|
|
19
19
|
|
|
20
20
|
`overcrow-widget doctor` indique ce que votre installation a et ce qui lui
|
|
21
21
|
manque.
|
|
@@ -147,9 +147,9 @@ Fournissez les deux fichiers ou aucun, avec les mêmes clés. Voir
|
|
|
147
147
|
overcrow-widget check
|
|
148
148
|
```
|
|
149
149
|
|
|
150
|
-
`check` exécute les mêmes validateurs
|
|
151
|
-
messages, une analyse de la logique selon ce que la VM exécute,
|
|
152
|
-
TypeScript du projet, et un paquet construit en mémoire puis relu. Chaque
|
|
150
|
+
`check` exécute les mêmes validateurs que PlayerVox OverCrow : manifeste,
|
|
151
|
+
vue, style, messages, une analyse de la logique selon ce que la VM exécute,
|
|
152
|
+
le TypeScript du projet, et un paquet construit en mémoire puis relu. Chaque
|
|
153
153
|
problème a un code stable, une position et une ligne d’aide ; voir les
|
|
154
154
|
[diagnostics](cli.md#diagnostics).
|
|
155
155
|
|
|
@@ -159,9 +159,9 @@ problème a un code stable, une position et une ligne d’aide ; voir les
|
|
|
159
159
|
overcrow-widget dev
|
|
160
160
|
```
|
|
161
161
|
|
|
162
|
-
`dev` envoie le widget à l’overlay OverCrow qui tourne sur votre
|
|
163
|
-
le recharge à chaque enregistrement. OverCrow ne le propose que
|
|
164
|
-
lancé avec les installations de développement autorisées
|
|
162
|
+
`dev` envoie le widget à l’overlay PlayerVox OverCrow qui tourne sur votre
|
|
163
|
+
machine et le recharge à chaque enregistrement. OverCrow ne le propose que
|
|
164
|
+
s’il a été lancé avec les installations de développement autorisées
|
|
165
165
|
(`OVERCROW_WIDGET_DEVELOPMENT=1` ; `overcrow-widget doctor` affiche les
|
|
166
166
|
commandes). Le widget porte la mention
|
|
167
167
|
**Unverified · development package** ; ses permissions déclarées sont
|
|
@@ -176,9 +176,9 @@ Deux sortes de tests, décrites dans [tester un widget](testing.md) :
|
|
|
176
176
|
- des tests unitaires de la logique avec `@overcrow/sdk/testing`, qui
|
|
177
177
|
exécute votre module avec un temps virtuel et des services simulés ;
|
|
178
178
|
- des scénarios joués par `overcrow-widget test` dans le runtime headless
|
|
179
|
-
|
|
180
|
-
des fixtures (des données simulées), et des images
|
|
181
|
-
de référence.
|
|
179
|
+
de PlayerVox OverCrow : la vraie VM et le vrai rendu, des services qui
|
|
180
|
+
répondent avec des fixtures (des données simulées), et des images
|
|
181
|
+
comparées à des images de référence.
|
|
182
182
|
|
|
183
183
|
<!-- source: templates/counter/tests/example.scenario.json -->
|
|
184
184
|
```json
|
|
@@ -252,7 +252,8 @@ utilisateurs obtiennent les widgets par le catalogue signé. Voir
|
|
|
252
252
|
|
|
253
253
|
Ajoutez un `listing.json` avec le texte de la marketplace et lancez
|
|
254
254
|
vous-même l’admission. Les widgets ne sont plus proposés par pull request :
|
|
255
|
-
vous enverrez le vôtre depuis l’espace créateurs OverCrow, à son
|
|
255
|
+
vous enverrez le vôtre depuis l’espace créateurs PlayerVox OverCrow, à son
|
|
256
|
+
ouverture.
|
|
256
257
|
|
|
257
258
|
```sh
|
|
258
259
|
overcrow-widget admit
|
|
@@ -8,9 +8,9 @@ avec `@overcrow/sdk`. L’outil en ligne de commande `overcrow-widget` le
|
|
|
8
8
|
vérifie, le teste et l’empaquette ; le catalogue signé l’apporte aux
|
|
9
9
|
utilisateurs.
|
|
10
10
|
|
|
11
|
-
Tous les widgets intégrés
|
|
12
|
-
public, le même format de paquet et le même sandbox que les vôtres.
|
|
13
|
-
sources sont les [widgets de référence](widgets.md).
|
|
11
|
+
Tous les widgets intégrés de PlayerVox OverCrow sont écrits ainsi, avec le
|
|
12
|
+
même SDK public, le même format de paquet et le même sandbox que les vôtres.
|
|
13
|
+
Leurs sources sont les [widgets de référence](widgets.md).
|
|
14
14
|
|
|
15
15
|
## De quoi est fait un widget
|
|
16
16
|
|
|
@@ -54,20 +54,20 @@ export function increment(): void {
|
|
|
54
54
|
|
|
55
55
|
- La logique tourne dans sa propre petite VM JavaScript, dans son propre
|
|
56
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
|
|
58
|
-
que par le SDK.
|
|
57
|
+
fichiers, ni réseau, ni accès aux autres widgets : elle n’atteint
|
|
58
|
+
PlayerVox OverCrow que par le SDK.
|
|
59
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
|
|
61
|
-
OverCrow met en page et dessine le widget lui-même : aucun
|
|
62
|
-
n’intervient.
|
|
60
|
+
la VM évalue de nouveau la vue et n’envoie à PlayerVox OverCrow que ce qui
|
|
61
|
+
a changé. OverCrow met en page et dessine le widget lui-même : aucun
|
|
62
|
+
moteur web n’intervient.
|
|
63
63
|
- Tout ce qui touche à l’extérieur (réseau, stockage, presse-papiers,
|
|
64
|
-
données de jeu) est un service
|
|
65
|
-
vérifie les permissions que le widget a déclarées et que
|
|
66
|
-
accordées. Voir [services et permissions](services.md).
|
|
64
|
+
données de jeu) est un service de PlayerVox OverCrow. À chaque appel,
|
|
65
|
+
celui-ci vérifie les permissions que le widget a déclarées et que
|
|
66
|
+
l’utilisateur a accordées. Voir [services et permissions](services.md).
|
|
67
67
|
|
|
68
|
-
Ces pages appellent OverCrow **l’hôte** quand elles décrivent ce
|
|
69
|
-
pour un widget : l’hôte dessine la vue, répond aux services et
|
|
70
|
-
données de l’utilisateur.
|
|
68
|
+
Ces pages appellent PlayerVox OverCrow **l’hôte** quand elles décrivent ce
|
|
69
|
+
qu’il fait pour un widget : l’hôte dessine la vue, répond aux services et
|
|
70
|
+
conserve les données de l’utilisateur.
|
|
71
71
|
|
|
72
72
|
## Par où commencer
|
|
73
73
|
|
|
@@ -80,7 +80,7 @@ données de l’utilisateur.
|
|
|
80
80
|
[services et permissions](services.md), les [formulaires](forms.md).
|
|
81
81
|
4. Servez-vous des outils : la [CLI](cli.md), les [tests](testing.md) et le
|
|
82
82
|
[canal de développement](dev-channel.md), qui exécute votre widget dans
|
|
83
|
-
OverCrow pendant que vous l’écrivez.
|
|
83
|
+
PlayerVox OverCrow pendant que vous l’écrivez.
|
|
84
84
|
5. Cherchez un élément, une propriété de style, un service ou une fonction
|
|
85
85
|
du SDK dans la [référence](reference.md).
|
|
86
86
|
6. Avant de publier, lisez [le paquet](package.md),
|