@coraltravelcenter/b2c-landing-builder 2.12.2 → 2.13.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/README.md +6 -0
- package/npm-shrinkwrap.json +30 -17
- package/package.json +2 -1
- package/src/vite/config.mjs +31 -4
package/README.md
CHANGED
|
@@ -151,6 +151,12 @@ Dev-сервер начинает с `127.0.0.1:5173` и автоматичес
|
|
|
151
151
|
задан `B2C_PORT`, порт считается обязательным и занятое значение завершает
|
|
152
152
|
команду ошибкой.
|
|
153
153
|
|
|
154
|
+
После запуска dev-сервера builder выводит рядом с локальным адресом Target URL
|
|
155
|
+
и открывает его отдельной вкладкой: `https://www.coral.ru/monkey/` или
|
|
156
|
+
`https://www.sunmar.ru/monkey/`. Существующая вкладка установки Tampermonkey
|
|
157
|
+
userscript открывается как раньше. `B2C_NO_OPEN=1` отключает автоматическое
|
|
158
|
+
открытие обеих вкладок, но Target URL остаётся в терминале.
|
|
159
|
+
|
|
154
160
|
Userscript ограничен доменом выбранного бренда и дополнительно проверяет hostname
|
|
155
161
|
перед монтированием. Namespace также содержит бренд, поэтому Coral и Sunmar не
|
|
156
162
|
конфликтуют даже при одинаковом названии проекта.
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coraltravelcenter/b2c-landing-builder",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.13.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@coraltravelcenter/b2c-landing-builder",
|
|
9
|
-
"version": "2.
|
|
9
|
+
"version": "2.13.0",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@babel/parser": "7.28.6",
|
|
13
13
|
"@clack/prompts": "1.7.0",
|
|
14
|
+
"open": "11.0.2",
|
|
14
15
|
"sharp": "0.35.3",
|
|
15
16
|
"typograf": "7.7.0",
|
|
16
17
|
"vite": "8.2.1",
|
|
@@ -1618,9 +1619,9 @@
|
|
|
1618
1619
|
}
|
|
1619
1620
|
},
|
|
1620
1621
|
"node_modules/default-browser": {
|
|
1621
|
-
"version": "5.5.
|
|
1622
|
-
"resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.
|
|
1623
|
-
"integrity": "sha512-
|
|
1622
|
+
"version": "5.5.1",
|
|
1623
|
+
"resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.1.tgz",
|
|
1624
|
+
"integrity": "sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==",
|
|
1624
1625
|
"license": "MIT",
|
|
1625
1626
|
"dependencies": {
|
|
1626
1627
|
"bundle-name": "^4.1.0",
|
|
@@ -2634,17 +2635,17 @@
|
|
|
2634
2635
|
}
|
|
2635
2636
|
},
|
|
2636
2637
|
"node_modules/open": {
|
|
2637
|
-
"version": "11.0.
|
|
2638
|
-
"resolved": "https://registry.npmjs.org/open/-/open-11.0.
|
|
2639
|
-
"integrity": "sha512-
|
|
2638
|
+
"version": "11.0.2",
|
|
2639
|
+
"resolved": "https://registry.npmjs.org/open/-/open-11.0.2.tgz",
|
|
2640
|
+
"integrity": "sha512-RWqF+pBSkqecEvCKOn8QYhaNdRMJDZRIrlS/7rTDdLHaPcfXGCZ/h8zb413NfvdeAV0MR7T1yJcA34/q+CSm1Q==",
|
|
2640
2641
|
"license": "MIT",
|
|
2641
2642
|
"dependencies": {
|
|
2642
|
-
"default-browser": "^5.
|
|
2643
|
+
"default-browser": "^5.5.1",
|
|
2643
2644
|
"define-lazy-prop": "^3.0.0",
|
|
2644
2645
|
"is-in-ssh": "^1.0.0",
|
|
2645
2646
|
"is-inside-container": "^1.0.0",
|
|
2646
|
-
"powershell-utils": "^0.1
|
|
2647
|
-
"wsl-utils": "^0.
|
|
2647
|
+
"powershell-utils": "^0.2.1",
|
|
2648
|
+
"wsl-utils": "^1.0.0"
|
|
2648
2649
|
},
|
|
2649
2650
|
"engines": {
|
|
2650
2651
|
"node": ">=20"
|
|
@@ -2744,9 +2745,9 @@
|
|
|
2744
2745
|
}
|
|
2745
2746
|
},
|
|
2746
2747
|
"node_modules/powershell-utils": {
|
|
2747
|
-
"version": "0.1
|
|
2748
|
-
"resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.
|
|
2749
|
-
"integrity": "sha512-
|
|
2748
|
+
"version": "0.2.1",
|
|
2749
|
+
"resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.2.1.tgz",
|
|
2750
|
+
"integrity": "sha512-C+y9x90UElAddDZmV4qOx9W53B61PO7cIqWz2dQsWlwswuq4mr8NEwytdGKboYbQlGZ3awrkTeNvcZiZNHnQ8A==",
|
|
2750
2751
|
"license": "MIT",
|
|
2751
2752
|
"engines": {
|
|
2752
2753
|
"node": ">=20"
|
|
@@ -3457,9 +3458,9 @@
|
|
|
3457
3458
|
}
|
|
3458
3459
|
},
|
|
3459
3460
|
"node_modules/wsl-utils": {
|
|
3460
|
-
"version": "0.
|
|
3461
|
-
"resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.
|
|
3462
|
-
"integrity": "sha512-
|
|
3461
|
+
"version": "1.0.0",
|
|
3462
|
+
"resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-1.0.0.tgz",
|
|
3463
|
+
"integrity": "sha512-Hl0ZOAs672vg+06kfujwRhoS6/jehvULrlFkuF2dRu6pHgA8U06h3xqNIqNNU1LTXPcedxByAR4GS6pwQK0mgA==",
|
|
3463
3464
|
"license": "MIT",
|
|
3464
3465
|
"dependencies": {
|
|
3465
3466
|
"is-wsl": "^3.1.0",
|
|
@@ -3472,6 +3473,18 @@
|
|
|
3472
3473
|
"url": "https://github.com/sponsors/sindresorhus"
|
|
3473
3474
|
}
|
|
3474
3475
|
},
|
|
3476
|
+
"node_modules/wsl-utils/node_modules/powershell-utils": {
|
|
3477
|
+
"version": "0.1.0",
|
|
3478
|
+
"resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz",
|
|
3479
|
+
"integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==",
|
|
3480
|
+
"license": "MIT",
|
|
3481
|
+
"engines": {
|
|
3482
|
+
"node": ">=20"
|
|
3483
|
+
},
|
|
3484
|
+
"funding": {
|
|
3485
|
+
"url": "https://github.com/sponsors/sindresorhus"
|
|
3486
|
+
}
|
|
3487
|
+
},
|
|
3475
3488
|
"node_modules/xxhashjs": {
|
|
3476
3489
|
"version": "0.2.2",
|
|
3477
3490
|
"resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coraltravelcenter/b2c-landing-builder",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.13.0",
|
|
4
4
|
"description": "CLI and build toolkit for B2C landing projects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@babel/parser": "7.28.6",
|
|
34
34
|
"@clack/prompts": "1.7.0",
|
|
35
|
+
"open": "11.0.2",
|
|
35
36
|
"sharp": "0.35.3",
|
|
36
37
|
"typograf": "7.7.0",
|
|
37
38
|
"vite": "8.2.1",
|
package/src/vite/config.mjs
CHANGED
|
@@ -2,6 +2,7 @@ import fs from "node:fs";
|
|
|
2
2
|
import {fileURLToPath} from "node:url";
|
|
3
3
|
|
|
4
4
|
import {createServer} from "vite";
|
|
5
|
+
import open from "open";
|
|
5
6
|
|
|
6
7
|
import {loadConfig} from "../config/load-config.mjs";
|
|
7
8
|
import {resolvePreset} from "../config/resolve-preset.mjs";
|
|
@@ -30,6 +31,28 @@ export function resolveDevServerPort(env = process.env) {
|
|
|
30
31
|
return {port, strictPort: true};
|
|
31
32
|
}
|
|
32
33
|
|
|
34
|
+
export function createTargetUrl(preset) {
|
|
35
|
+
return `https://${preset.domain}/monkey/`;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export async function presentTargetPage({
|
|
39
|
+
preset,
|
|
40
|
+
shouldOpen = true,
|
|
41
|
+
opener = open,
|
|
42
|
+
log = console.log,
|
|
43
|
+
} = {}) {
|
|
44
|
+
const targetUrl = createTargetUrl(preset);
|
|
45
|
+
log(` ➜ Target: ${targetUrl}`);
|
|
46
|
+
if (!shouldOpen) return targetUrl;
|
|
47
|
+
|
|
48
|
+
try {
|
|
49
|
+
await opener(targetUrl);
|
|
50
|
+
} catch (error) {
|
|
51
|
+
log(` ⚠ Could not open Target automatically: ${error.message}`);
|
|
52
|
+
}
|
|
53
|
+
return targetUrl;
|
|
54
|
+
}
|
|
55
|
+
|
|
33
56
|
async function loadMonkeyPlugin() {
|
|
34
57
|
if (monkeyPlugin) return monkeyPlugin;
|
|
35
58
|
|
|
@@ -43,9 +66,9 @@ async function loadMonkeyPlugin() {
|
|
|
43
66
|
}
|
|
44
67
|
}
|
|
45
68
|
|
|
46
|
-
export async function createViteConfig(root = process.cwd()) {
|
|
47
|
-
const config = await loadConfig(root);
|
|
48
|
-
const preset = resolvePreset(config.site.preset);
|
|
69
|
+
export async function createViteConfig(root = process.cwd(), options = {}) {
|
|
70
|
+
const config = options.config || await loadConfig(root);
|
|
71
|
+
const preset = options.preset || resolvePreset(config.site.preset);
|
|
49
72
|
const monkey = await loadMonkeyPlugin();
|
|
50
73
|
const shouldOpen = process.env.B2C_NO_OPEN !== "1";
|
|
51
74
|
const devPort = resolveDevServerPort();
|
|
@@ -85,8 +108,12 @@ export async function createViteConfig(root = process.cwd()) {
|
|
|
85
108
|
}
|
|
86
109
|
|
|
87
110
|
export async function startDevServer(root = process.cwd()) {
|
|
88
|
-
const
|
|
111
|
+
const config = await loadConfig(root);
|
|
112
|
+
const preset = resolvePreset(config.site.preset);
|
|
113
|
+
const shouldOpen = process.env.B2C_NO_OPEN !== "1";
|
|
114
|
+
const server = await createServer(await createViteConfig(root, {config, preset}));
|
|
89
115
|
await server.listen();
|
|
90
116
|
server.printUrls();
|
|
117
|
+
await presentTargetPage({preset, shouldOpen});
|
|
91
118
|
return server;
|
|
92
119
|
}
|