@coraltravelcenter/b2c-landing-builder 2.10.0 → 2.10.1

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 CHANGED
@@ -26,6 +26,9 @@ b2c-landing-vite deploy --dry-run
26
26
  b2c-landing-vite deploy --update
27
27
  b2c-landing-vite deploy --relink
28
28
  b2c-landing-vite deploy --publish
29
+ b2c-landing-vite deploy --section hero
30
+ b2c-landing-vite deploy --remote
31
+ b2c-landing-vite deploy --force
29
32
  b2c-landing-vite deploy --assets-only
30
33
  b2c-landing-vite deploy --assets-only --prune-assets
31
34
  b2c-landing-vite block:add hero
@@ -52,6 +55,20 @@ b2c-landing-vite update
52
55
  Страница, виджеты, ассеты и локальный deploy-state при этом не изменяются.
53
56
  - `deploy --assets-only --dry-run` показывает только план синхронизации ассетов.
54
57
  - `deploy --update` обновляет сохранённую версию страницы без создания новой.
58
+ - `deploy --section <key>` меняет только блок с ключом из `order.json`. Builder
59
+ берёт за основу актуальную remote-страницу, поэтому локальные копии соседних
60
+ секций не попадают в payload и не могут затереть изменения из CMS.
61
+ - После успешного deploy builder сохраняет снимок секций в `.b2c/deploy/` как
62
+ достоверный `base`. Следующий deploy структурно сравнивает секции `local`,
63
+ актуальный `remote` и `base`. Изменения разных секций объединяются; изменение
64
+ одной секции с обеих сторон считается конфликтом.
65
+ - Если `base` ещё отсутствует, отличие local от remote считается потенциальным
66
+ конфликтом. Обычный deploy не выполняет silent overwrite и предлагает явно
67
+ сохранить CMS-версию, применить local или отменить операцию.
68
+ - `deploy --remote` не перезаписывает конфликтующие секции локальной версией.
69
+ `deploy --force` осознанно выбирает local. Для section deploy обе стратегии
70
+ ограничены выбранной секцией: `deploy --section hero --remote` или
71
+ `deploy --section hero --force`; соседние remote-секции сохраняются.
55
72
  - `deploy --relink` восстанавливает или меняет привязку проекта к существующей
56
73
  CMS-странице. Builder предлагает application, поиск страницы по названию или
57
74
  URL, версию, HTML-зону и точную позицию. Обычный запуск создаёт checkout для
@@ -72,6 +89,8 @@ b2c-landing-vite update
72
89
  `deploy --relink`.
73
90
  - Одновременные deploy одного проекта на компьютере блокируются lock-файлом в
74
91
  `.b2c/deploy/`; аварийно оставленный lock автоматически признаётся устаревшим.
92
+ - Непосредственно перед первой записью CMS-состояние читается повторно. Если оно
93
+ изменилось во время проверки/выбора стратегии, deploy останавливается.
75
94
  - `block:add` создаёт файлы в выбранных форматах разметки и стилей.
76
95
  - `block:rename` атомарно переименовывает все файлы блока и обновляет порядок.
77
96
  - `update` проверяет npm registry и показывает команду ручного обновления.
@@ -105,7 +124,7 @@ npm create @coraltravelcenter/b2c-landing-vite
105
124
  export default {
106
125
  schemaVersion: 2,
107
126
  builder: {
108
- minVersion: "2.5.0",
127
+ minVersion: "2.10.0",
109
128
  },
110
129
  project: {
111
130
  name: "uae-promo",
@@ -162,6 +181,7 @@ src/
162
181
  welcome.css | welcome.scss | welcome.less
163
182
  scripts/
164
183
  welcome.js | welcome.ts
184
+ utils/ # общие JavaScript-утилиты проекта
165
185
  components/ # только для Vue
166
186
  public/
167
187
  pug.rc # только для Pug
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@coraltravelcenter/b2c-landing-builder",
3
- "version": "2.10.0",
3
+ "version": "2.10.1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@coraltravelcenter/b2c-landing-builder",
9
- "version": "2.10.0",
9
+ "version": "2.10.1",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "@babel/parser": "7.28.6",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coraltravelcenter/b2c-landing-builder",
3
- "version": "2.10.0",
3
+ "version": "2.10.1",
4
4
  "description": "CLI and build toolkit for B2C landing projects",
5
5
  "type": "module",
6
6
  "bin": {
@@ -32,7 +32,7 @@ export function resolveSections({local, remote, base, scope, strategy = "merge"}
32
32
  const scopedRemote = Object.fromEntries(Object.entries(remote).filter(([id]) => selected.has(id)));
33
33
  const scopedBase = base && Object.fromEntries(Object.entries(base).filter(([id]) => selected.has(id)));
34
34
  const changes = compareSections({local: scopedLocal, remote: scopedRemote, base: scopedBase});
35
- const unsafe = changes.filter((change) => change.kind === "conflict" || change.kind === "unknown" || change.kind === "remote");
35
+ const unsafe = changes.filter((change) => change.kind === "conflict" || change.kind === "unknown");
36
36
  if (strategy === "merge" && unsafe.length) return {changes, unsafe, sections: null};
37
37
  const sections = {...remote};
38
38
  for (const id of selected) {