@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 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`, `emit`, `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 |
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vnejs/docs",
3
- "version": "0.2.49",
3
+ "version": "0.2.50",
4
4
  "description": "VNEJS documentation for engine consumers and coding agents",
5
5
  "files": [
6
6
  "*.md",
@@ -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 до применения выбора (handlers с приоритетами; `ModuleHandlers`). |
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
- В `init` регистрирует handler на `OPTION_BEFORE_REG`: при выборе опции эмитит `FASTFORWARD.CHECK` (до `HIDE` / `OPTION_REPLACE`).
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
- В `init` регистрирует handler на `OPTION_BEFORE_REG`: при выборе опции эмитит `HISTORY.ADD` с `{ locKey: "choice" }` (без speaker/text). Текст строки берётся из локализации экрана history (`history.json`). Подключается в `bundles/vn.skeleton`.
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`: связка через `OPTION_BEFORE_REG` (compatibility выше)
111
- - [history.md](./history.md) — `HISTORY`: связка через `OPTION_BEFORE_REG` → `ADD` с `locKey` (compatibility выше)
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` (`OPTION_BEFORE_REG` → `FASTFORWARD.CHECK`)
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.OPTION_BEFORE_REG` эмитит `HISTORY.ADD` с `{ locKey: "choice" }`. Перевод строки — ключ `choice` в `history.json` экрана. Подключается в `bundles/vn.skeleton`.
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`: `OPTION_BEFORE_REG` → `ADD` (compatibility выше)
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`
@@ -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
- | `EMIT_NEXT_REG` | `vne:text:emit_next_reg` | Зарегистрировать обработчик `EMIT_NEXT`. |
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.before` | Подмодуль `emit.before` плагина. |
56
- | `text.emit.end` | Завершение emit и переход к next или финальному state. |
57
- | `text.emit.next` | Подмодуль `emit.next` плагина. |
58
- | `text.emit` | Точка входа emit: подготовка и запуск process. |
59
- | `text.exec` | Подмодуль `exec` плагина. |
60
- | `text.prepare.tokens` | Токенизация текста перед отображением. |
61
- | `text.process.state` | В `postinject` — `shared.textProcessSkipSources`; PROCESS_STATE, SET, CLEAR. |
62
- | `text.process.enabled` | Подмодуль `process.enabled` плагина. |
63
- | `text.recalc` | Пересчёт производного состояния текста. |
64
- | `text.replace` | Реестр обработчиков REPLACE_REG. |
65
- | `text.speaker` | Обрабатывает SPEAKER_INFO_UPDATE, CLEAR, SET. |
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
 
@@ -41,4 +41,4 @@ Payloads и результаты хендлеров типизированы ч
41
41
 
42
42
  ### Остальные
43
43
 
44
- - [text.md](./text.md) — `TEXT`: EVENTS.RECALC, EVENTS.EMIT_BEFORE_REG, EVENTS.REPLACE
44
+ - [text.md](./text.md) — `TEXT`: EVENTS.RECALC, EVENTS.EMIT_BEFORE, EVENTS.REPLACE
@@ -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`, `EMIT_BEFORE_REG`)
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`