@vnejs/docs 0.2.49 → 0.2.50
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/CHANGELOG.md +7 -0
- package/architecture.md +9 -12
- package/package.json +1 -1
- package/plugins/scenario/choose.md +5 -7
- package/plugins/scenario/fastforward.md +1 -1
- package/plugins/scenario/history.md +2 -2
- package/plugins/text/text.md +15 -18
- package/plugins/text/wall.md +1 -1
- package/plugins/views.scenario/interface.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Краткая история изменений движка (плагины, helpers, packages, CLI и прочий runtime) и внешнего API. Версии — релизы пакета `@vnejs/docs`.
|
|
4
4
|
|
|
5
|
+
## 0.2.50
|
|
6
|
+
|
|
7
|
+
- `observer` — `SubscriberOptions.priority` (default `0`); группы хендлеров собираются в `subscribe`, `emit` обходит их по возрастанию priority (внутри группы — параллельно); ответы со всех групп. API: `SubscriberOptions.priority`, `SubscriberGroup`.
|
|
8
|
+
- `module.handlers` — пакет `@vnejs/module.handlers` / `ModuleHandlers` снят; вместо `*_REG` — `on(event, handler, { priority })`.
|
|
9
|
+
- `text/text` — сняты `EMIT_BEFORE_REG` / `EMIT_NEXT_REG` и модуль `text.emit.before`; подписки на `EMIT_BEFORE` / `EMIT_NEXT` с `priority`. API: сняты `EVENTS.TEXT.EMIT_BEFORE_REG`, `EVENTS.TEXT.EMIT_NEXT_REG`.
|
|
10
|
+
- `scenario/choose` — сняты `OPTION_BEFORE_REG` и модуль `choose.option.before`; подписка на `OPTION_BEFORE` с `priority`. API: снято `EVENTS.CHOOSE.OPTION_BEFORE_REG`.
|
|
11
|
+
|
|
5
12
|
## 0.2.49
|
|
6
13
|
|
|
7
14
|
- `cli/monorepo` — при падении `run-changed` / `publish` в ошибке видны пакет, путь и exit code (и `!!!` в stderr у `publish`), а не только `N package script(s) failed`.
|
package/architecture.md
CHANGED
|
@@ -97,15 +97,15 @@ flowchart BT
|
|
|
97
97
|
SH --> ME
|
|
98
98
|
```
|
|
99
99
|
|
|
100
|
-
| Пакет | Назначение
|
|
101
|
-
| ------------------------ |
|
|
102
|
-
| **`@vnejs/shared`** | Реестр **`VNE`**, массив **`VNE_MODULES`**, **`regPlugin`** / **`regModule`**, типы для module augmentation
|
|
103
|
-
| **`@vnejs/observer`** | **`Observer`** — pub/sub: `subscribe
|
|
104
|
-
| **`@vnejs/core`** | **`VneCore`**: модули из `VNE_MODULES`, lifecycle, загрузка `mods.json` / `media_info/`, `reset`
|
|
105
|
-
| **`@vnejs/constants`** | Общие константы-заглушки (`EMPTY_OBJECT`, `EMPTY_ARRAY`)
|
|
106
|
-
| **`@vnejs/sources-set`** | **`SourcesSet`** — управление множеством «источников» (text и связанная логика)
|
|
107
|
-
| **`@vnejs/semaphore`** | **`Semaphore`** — очередь задач с весами и ограничением параллелизма
|
|
108
|
-
| **`@vnejs/test-utils`** | Harness для тестов модулей: observer stubs, `createTestModule`, spies, DOM mocks
|
|
100
|
+
| Пакет | Назначение |
|
|
101
|
+
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
|
|
102
|
+
| **`@vnejs/shared`** | Реестр **`VNE`**, массив **`VNE_MODULES`**, **`regPlugin`** / **`regModule`**, типы для module augmentation |
|
|
103
|
+
| **`@vnejs/observer`** | **`Observer`** — pub/sub: `subscribe` / `emit` с `priority` (группы по возрастанию), `emitOne`, `emitReal`, `emitReals` |
|
|
104
|
+
| **`@vnejs/core`** | **`VneCore`**: модули из `VNE_MODULES`, lifecycle, загрузка `mods.json` / `media_info/`, `reset` |
|
|
105
|
+
| **`@vnejs/constants`** | Общие константы-заглушки (`EMPTY_OBJECT`, `EMPTY_ARRAY`) |
|
|
106
|
+
| **`@vnejs/sources-set`** | **`SourcesSet`** — управление множеством «источников» (text и связанная логика) |
|
|
107
|
+
| **`@vnejs/semaphore`** | **`Semaphore`** — очередь задач с весами и ограничением параллелизма |
|
|
108
|
+
| **`@vnejs/test-utils`** | Harness для тестов модулей: observer stubs, `createTestModule`, spies, DOM mocks |
|
|
109
109
|
|
|
110
110
|
### Принципы
|
|
111
111
|
|
|
@@ -126,7 +126,6 @@ flowchart BT
|
|
|
126
126
|
flowchart TD
|
|
127
127
|
M["@vnejs/module<br/>Module"]
|
|
128
128
|
MC["@vnejs/module.core<br/>ModuleCore"]
|
|
129
|
-
MH["@vnejs/module.handlers<br/>ModuleHandlers"]
|
|
130
129
|
MR["@vnejs/module.replace<br/>ModuleReplace"]
|
|
131
130
|
MRE["@vnejs/module.replace.exec<br/>ModuleReplaceExec"]
|
|
132
131
|
MCO["@vnejs/module.components<br/>ModuleController, ModuleView"]
|
|
@@ -147,7 +146,6 @@ flowchart TD
|
|
|
147
146
|
MSC["@vnejs/module.scales.common"]
|
|
148
147
|
|
|
149
148
|
M --> MC
|
|
150
|
-
MC --> MH
|
|
151
149
|
MC --> MR
|
|
152
150
|
MC --> MRE
|
|
153
151
|
MC --> MCO
|
|
@@ -172,7 +170,6 @@ flowchart TD
|
|
|
172
170
|
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
173
171
|
| **`@vnejs/module`** | **`Module`**: `VNE`, `on`/`emit`, `inject`, state, shared, media, lifecycle |
|
|
174
172
|
| **`@vnejs/module.core`** | **`ModuleCore`** — типизированный доступ к **core-контрактам**; `emitLog`, `emitNext`, … |
|
|
175
|
-
| **`@vnejs/module.handlers`** | **`ModuleHandlers`** — параллельные обработчики emit-событий с приоритетами (side effects) |
|
|
176
173
|
| **`@vnejs/module.replace`** | **`ModuleReplace`** — последовательная подмена значения поля payload через `REPLACE_KEY` и цепочку handlers |
|
|
177
174
|
| **`@vnejs/module.replace.exec`** | **`ModuleReplaceExec`** — реестр exec-handlers по имени модуля (`EXEC_REG` / `EXEC_GET`) |
|
|
178
175
|
| **`@vnejs/module.components`** | **`ModuleView`**, **`ModuleController`** — React-view, zustand, media, controls |
|
package/package.json
CHANGED
|
@@ -32,8 +32,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
32
32
|
| -------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
33
33
|
| `EMIT` | `vne:choose:emit` | Принять опции и args; если есть видимые — `STATE_UPDATE` и `SHOW`; иначе `SKIP`. |
|
|
34
34
|
| `OPTION` | `vne:choose:option` | Принять выбор по UI-индексу: прогнать `OPTION_BEFORE`, затем `HIDE`, `OPTION_REPLACE`, установить `curLine`, сброс state, `emitNext`. |
|
|
35
|
-
| `OPTION_BEFORE` | `vne:choose:option_before` | Side effects до применения выбора (
|
|
36
|
-
| `OPTION_BEFORE_REG` | `vne:choose:option_before_reg` | Зарегистрировать обработчик `OPTION_BEFORE`. |
|
|
35
|
+
| `OPTION_BEFORE` | `vne:choose:option_before` | Side effects до применения выбора (подписки с `priority` на Observer). |
|
|
37
36
|
| `OPTION_REPLACE` | `vne:choose:option_replace` | Подменить UI-индекс принятой опции (цепочка handlers перед переходом по ветке). |
|
|
38
37
|
| `OPTION_REPLACE_REG` | `vne:choose:option_replace_reg` | Зарегистрировать обработчик `OPTION_REPLACE`. |
|
|
39
38
|
| `SKIP` | `vne:choose:skip` | Пропустить блок: `curLine` на первую строку после indent-дерева `% choose`, `emitNext`. |
|
|
@@ -67,7 +66,6 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
67
66
|
| `choose.option` | Обрабатывает `OPTION`. |
|
|
68
67
|
| `choose.skip` | Обрабатывает `SKIP` через `getBlockSkipShift`. |
|
|
69
68
|
| `choose.logs` | Логирование `EMIT` / `OPTION` / `SKIP` / `SHOW` / `HIDE`. |
|
|
70
|
-
| `choose.option.before` | Реестр обработчиков `OPTION_BEFORE_REG`; наследник `@vnejs/module.handlers`. |
|
|
71
69
|
| `choose.replace` | Реестр обработчиков `OPTION_REPLACE_REG`; наследник `@vnejs/module.replace`. |
|
|
72
70
|
| `choose.exec` | Реестр обработчиков EXEC_REG / EXEC_GET. |
|
|
73
71
|
| `choose.scenario` | Регистрация `% choose`: сбор option-строк через `getBlockOptions`, emit `EMIT`. |
|
|
@@ -80,13 +78,13 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
80
78
|
|
|
81
79
|
Пакет: `@vnejs/compatibility.scenario.choose-with-scenario.fastforward`
|
|
82
80
|
|
|
83
|
-
В `
|
|
81
|
+
В `subscribe` слушает `OPTION_BEFORE`: при выборе опции эмитит `FASTFORWARD.CHECK` (до `HIDE` / `OPTION_REPLACE`).
|
|
84
82
|
|
|
85
83
|
### `compatibility/scenario.choose/scenario.history/`
|
|
86
84
|
|
|
87
85
|
Пакет: `@vnejs/compatibility.scenario.choose-with-scenario.history`
|
|
88
86
|
|
|
89
|
-
В `
|
|
87
|
+
В `subscribe` слушает `OPTION_BEFORE`: при выборе опции эмитит `HISTORY.ADD` с `{ locKey: "choice" }` (без speaker/text). Текст строки берётся из локализации экрана history (`history.json`). Подключается в `bundles/vn.skeleton`.
|
|
90
88
|
|
|
91
89
|
### `compatibility/scenario.choose/scenario.qte/`
|
|
92
90
|
|
|
@@ -107,7 +105,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
107
105
|
|
|
108
106
|
- [text.md](../text/text.md) — `TEXT`: EVENTS.REPLACE (текст опций)
|
|
109
107
|
- [qte.md](./qte.md) — `QTE`: связка через `OPTION_REPLACE` (compatibility выше)
|
|
110
|
-
- [fastforward.md](./fastforward.md) — `FASTFORWARD`: связка через `
|
|
111
|
-
- [history.md](./history.md) — `HISTORY`: связка через `
|
|
108
|
+
- [fastforward.md](./fastforward.md) — `FASTFORWARD`: связка через `OPTION_BEFORE` (compatibility выше)
|
|
109
|
+
- [history.md](./history.md) — `HISTORY`: связка через `OPTION_BEFORE` → `ADD` с `locKey` (compatibility выше)
|
|
112
110
|
- [views.scenario/choose.md](../views.scenario/choose.md) — `CHOOSE_VIEW`: UI выбора (слушает SHOW / HIDE)
|
|
113
111
|
- [scenario/point_and_click.md](./point_and_click.md) — тот же паттерн `repeat` / `SKIP` / `SHOW` / `HIDE` / `STATE_UPDATE`
|
|
@@ -71,4 +71,4 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
71
71
|
|
|
72
72
|
### Остальные
|
|
73
73
|
|
|
74
|
-
- [choose.md](./choose.md) — `CHOOSE`: связка через `compatibility/scenario.choose/scenario.fastforward` (`
|
|
74
|
+
- [choose.md](./choose.md) — `CHOOSE`: связка через `compatibility/scenario.choose/scenario.fastforward` (`OPTION_BEFORE` → `FASTFORWARD.CHECK`)
|
|
@@ -59,7 +59,7 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
59
59
|
|
|
60
60
|
Пакет: `@vnejs/compatibility.scenario.choose-with-scenario.history`
|
|
61
61
|
|
|
62
|
-
На `CHOOSE.
|
|
62
|
+
На `CHOOSE.OPTION_BEFORE` эмитит `HISTORY.ADD` с `{ locKey: "choice" }`. Перевод строки — ключ `choice` в `history.json` экрана. Подключается в `bundles/vn.skeleton`.
|
|
63
63
|
|
|
64
64
|
## Близкие плагины
|
|
65
65
|
|
|
@@ -73,5 +73,5 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
73
73
|
### Остальные
|
|
74
74
|
|
|
75
75
|
- [text.md](../text/text.md) — `TEXT`: `EMIT_NEXT` → `ADD` (compatibility выше)
|
|
76
|
-
- [choose.md](./choose.md) — `CHOOSE`: `
|
|
76
|
+
- [choose.md](./choose.md) — `CHOOSE`: `OPTION_BEFORE` → `ADD` (compatibility выше)
|
|
77
77
|
- [views.screens/history.md](../views.screens/history.md) — `HISTORY_VIEW`: экран журнала (`SHOW` / `HIDE`); читает `GET` / `KEYS` / `LOAD`
|
package/plugins/text/text.md
CHANGED
|
@@ -12,10 +12,8 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
12
12
|
| --------------------- | ------------------------------ | ------------------------------------------------------------------- |
|
|
13
13
|
| `EMIT` | `vne:text:emit` | Начать вывод: подготовка токенов, обновление state, запуск process. |
|
|
14
14
|
| `EMIT_END` | `vne:text:emit_end` | Завершить текущий шаг; при autonext перейти к следующему. |
|
|
15
|
-
| `EMIT_NEXT` | `vne:text:emit_next` | Перейти к следующему шагу emit.
|
|
16
|
-
| `
|
|
17
|
-
| `EMIT_BEFORE` | `vne:text:emit_before` | Хук перед основным emit. |
|
|
18
|
-
| `EMIT_BEFORE_REG` | `vne:text:emit_before_reg` | Зарегистрировать обработчик `EMIT_BEFORE`. |
|
|
15
|
+
| `EMIT_NEXT` | `vne:text:emit_next` | Перейти к следующему шагу emit (подписки с `priority` на Observer). |
|
|
16
|
+
| `EMIT_BEFORE` | `vne:text:emit_before` | Хук перед основным emit (подписки с `priority` на Observer). |
|
|
19
17
|
| `EMIT_PROCESS` | `vne:text:emit_process` | Запустить пошаговый процесс вывода. |
|
|
20
18
|
| `PREPARE_TOKENS` | `vne:text:prepare_tokens` | Подготовить токены или промежуточные данные. |
|
|
21
19
|
| `PROCESS_CANCEL` | `vne:text:process_cancel` | Отменить текущий процесс. |
|
|
@@ -50,20 +48,19 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
50
48
|
|
|
51
49
|
## Модули
|
|
52
50
|
|
|
53
|
-
| Модуль | Зона ответственности
|
|
54
|
-
| ---------------------- |
|
|
55
|
-
| `text.emit.
|
|
56
|
-
| `text.emit.
|
|
57
|
-
| `text.emit
|
|
58
|
-
| `text.
|
|
59
|
-
| `text.
|
|
60
|
-
| `text.
|
|
61
|
-
| `text.process.
|
|
62
|
-
| `text.
|
|
63
|
-
| `text.
|
|
64
|
-
| `text.
|
|
65
|
-
| `text
|
|
66
|
-
| `text` | Обрабатывает STATE_UPDATE, STATE_CHANGED, CLEAR, SET. |
|
|
51
|
+
| Модуль | Зона ответственности |
|
|
52
|
+
| ---------------------- | ----------------------------------------------------------------------------- |
|
|
53
|
+
| `text.emit.end` | Завершение emit и переход к next или финальному state. |
|
|
54
|
+
| `text.emit.next` | На `EMIT_NEXT`: `PROCESS_STATE` NEXT, затем `emitNext` (`priority` 999999). |
|
|
55
|
+
| `text.emit` | Точка входа emit: подготовка и запуск process. |
|
|
56
|
+
| `text.exec` | Подмодуль `exec` плагина. |
|
|
57
|
+
| `text.prepare.tokens` | Токенизация текста перед отображением. |
|
|
58
|
+
| `text.process.state` | В `postinject` — `shared.textProcessSkipSources`; PROCESS_STATE, SET, CLEAR. |
|
|
59
|
+
| `text.process.enabled` | Подмодуль `process.enabled` плагина. |
|
|
60
|
+
| `text.recalc` | Пересчёт производного состояния текста. |
|
|
61
|
+
| `text.replace` | Реестр обработчиков REPLACE_REG. |
|
|
62
|
+
| `text.speaker` | SPEAKER_INFO_UPDATE, CLEAR, SET; на `EMIT_BEFORE` (`priority` 100) — speaker. |
|
|
63
|
+
| `text` | Обрабатывает STATE_UPDATE, STATE_CHANGED, CLEAR, SET. |
|
|
67
64
|
|
|
68
65
|
## Compatibility
|
|
69
66
|
|
package/plugins/text/wall.md
CHANGED
|
@@ -85,6 +85,6 @@ Payloads и результаты хендлеров типизированы ч
|
|
|
85
85
|
### Остальные
|
|
86
86
|
|
|
87
87
|
- [controls.md](../controls/controls.md) — `CONTROLS`: EVENTS.POP, EVENTS.PUSH
|
|
88
|
-
- [text.md](../text/text.md) — `TEXT`: связка через compatibility выше (`CHANGED`, `SPEAKER_CHANGED`, `
|
|
88
|
+
- [text.md](../text/text.md) — `TEXT`: связка через compatibility выше (`CHANGED`, `SPEAKER_CHANGED`, `EMIT_BEFORE`)
|
|
89
89
|
- [choose.md](./choose.md) — compatibility скрывает interface на `CHOOSE_VIEW.SHOW_BEFORE`
|
|
90
90
|
- [qte.md](./qte.md) — compatibility скрывает interface на `QTE_VIEW.SHOW_BEFORE`
|