@tramvai/cli 2.101.0 → 2.102.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/lib/library/webpack/loaders/pagesResolve.js +10 -6
- package/lib/library/webpack/loaders/pagesResolve.js.map +1 -1
- package/lib/schema/autogeneratedSchema.json +3 -0
- package/lib/typings/pwa/index.d.ts +1 -0
- package/lib/validators/commands/checkPwaDependencies.js +2 -2
- package/lib/validators/commands/checkPwaDependencies.js.map +1 -1
- package/package.json +2 -2
- package/schema.json +3 -0
- package/src/library/webpack/loaders/pagesResolve.ts +11 -6
- package/src/schema/autogeneratedSchema.json +3 -0
- package/src/typings/pwa/index.ts +1 -0
- package/src/validators/commands/checkPwaDependencies.ts +1 -1
|
@@ -6,7 +6,7 @@ const fs_readdir_recursive_1 = tslib_1.__importDefault(require("fs-readdir-recur
|
|
|
6
6
|
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
7
7
|
const LAYOUT_FILENAME = '_layout.tsx';
|
|
8
8
|
const ERROR_BOUNDARY_FILENAME = '_error.tsx';
|
|
9
|
-
const
|
|
9
|
+
const WILDCARD_TOKEN = '[...';
|
|
10
10
|
const removeExtension = (filename) => {
|
|
11
11
|
const parsed = path_1.default.parse(filename);
|
|
12
12
|
return path_1.default.join(parsed.dir, parsed.name);
|
|
@@ -22,8 +22,8 @@ const pagesResolve = function () {
|
|
|
22
22
|
const filesToPages = ({ pagesRootDirectory, isRoutes = false, }) => {
|
|
23
23
|
const pagesDir = path_1.default.resolve(rootDir, root, pagesRootDirectory);
|
|
24
24
|
this.addContextDependency(pagesDir);
|
|
25
|
-
// skip files
|
|
26
|
-
const pagesFiles = (0, fs_readdir_recursive_1.default)(pagesDir, (name) => name[0] !== '.' && name[0] !== '
|
|
25
|
+
// skip service files
|
|
26
|
+
const pagesFiles = (0, fs_readdir_recursive_1.default)(pagesDir, (name) => name[0] !== '.' && name[0] !== '_' && !name.startsWith(WILDCARD_TOKEN));
|
|
27
27
|
const fsPages = [];
|
|
28
28
|
for (const file of pagesFiles) {
|
|
29
29
|
const extname = path_1.default.extname(file);
|
|
@@ -38,7 +38,11 @@ const pagesResolve = function () {
|
|
|
38
38
|
const pageDirname = path_1.default.dirname(pageComponentPath);
|
|
39
39
|
const layoutPath = path_1.default.join(pageDirname, LAYOUT_FILENAME);
|
|
40
40
|
const errorBoundaryPath = path_1.default.join(pageDirname, ERROR_BOUNDARY_FILENAME);
|
|
41
|
-
const
|
|
41
|
+
const routeContent = fs_1.default
|
|
42
|
+
.readdirSync(pageDirname, { withFileTypes: true })
|
|
43
|
+
.filter((item) => item.isFile())
|
|
44
|
+
.map((item) => item.name);
|
|
45
|
+
const wildcardPath = routeContent.find((item) => item.includes(WILDCARD_TOKEN));
|
|
42
46
|
if (fs_1.default.existsSync(layoutPath)) {
|
|
43
47
|
const filename = removeExtension(layoutPath);
|
|
44
48
|
// @example '@/pages/MainPage': lazy(() => import(/* webpackChunkName: "@_pages_MainPage__layout" */ '/tramvai-app/src/pages/MainPage_layout'))
|
|
@@ -49,9 +53,9 @@ const pagesResolve = function () {
|
|
|
49
53
|
// @example '@/pages/MainPage': lazy(() => import(/* webpackChunkName: "@_pages_MainPage__errorBoundary" */ '/tramvai-app/src/pages/MainPage_errorBoundary'))
|
|
50
54
|
fsErrorBoundaries.push(`'${pageComponentName}': lazy(() => import(/* webpackChunkName: "${chunkname}__errorBoundary" */ '${filename}'))`);
|
|
51
55
|
}
|
|
52
|
-
if (
|
|
56
|
+
if (wildcardPath !== undefined) {
|
|
53
57
|
const componentName = `${pageComponentName}__wildcard`;
|
|
54
|
-
const filename = removeExtension(wildcardPath);
|
|
58
|
+
const filename = removeExtension(path_1.default.join(pageDirname, wildcardPath));
|
|
55
59
|
// @example '@/pages/MainPage': lazy(() => import(/* webpackChunkName: "@_pages_MainPage__wildcard" */ '/tramvai-app/src/pages/MainPage_wildcard'))
|
|
56
60
|
fsWildcards.push(`'${componentName}': lazy(() => import(/* webpackChunkName: "${chunkname}__wildcard" */ '${filename}'))`);
|
|
57
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagesResolve.js","sourceRoot":"","sources":["../../../../src/library/webpack/loaders/pagesResolve.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AACxB,wFAA2C;AAC3C,oDAAoB;AAIpB,MAAM,eAAe,GAAG,aAAa,CAAC;AACtC,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAC7C,MAAM,
|
|
1
|
+
{"version":3,"file":"pagesResolve.js","sourceRoot":"","sources":["../../../../src/library/webpack/loaders/pagesResolve.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AACxB,wFAA2C;AAC3C,oDAAoB;AAIpB,MAAM,eAAe,GAAG,aAAa,CAAC;AACtC,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAC7C,MAAM,cAAc,GAAG,MAAM,CAAC;AAS9B,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAU,EAAE;IACnD,MAAM,MAAM,GAAG,cAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEpC,OAAO,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,sCAAsC;AACtC,MAAM,YAAY,GAAsC;IACtD,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IACzE,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAEtB,0CAA0C;IAC1C,MAAM,YAAY,GAAG,CAAC,EACpB,kBAAkB,EAClB,QAAQ,GAAG,KAAK,GAIjB,EAAE,EAAE;QACH,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;QAEjE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAEpC,qBAAqB;QACrB,MAAM,UAAU,GAAG,IAAA,8BAAO,EACxB,QAAQ,EACR,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CACzF,CAAC;QACF,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;YAC7B,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,OAAO,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAE/E,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;gBACtC,MAAM,iBAAiB,GAAG,KAAK,kBAAkB,IAAI,IAAI,EAAE,CAAC;gBAC5D,MAAM,iBAAiB,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC9E,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAExD,gIAAgI;gBAChI,OAAO,CAAC,IAAI,CACV,IAAI,iBAAiB,8CAA8C,SAAS,SAAS,iBAAiB,KAAK,CAC5G,CAAC;gBAEF,IAAI,QAAQ,EAAE;oBACZ,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;oBAEpD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;oBAC3D,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;oBAE1E,MAAM,YAAY,GAAG,YAAE;yBACpB,WAAW,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;yBACjD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;yBAC/B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC5B,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;oBAEhF,IAAI,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;wBAC7B,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;wBAC7C,+IAA+I;wBAC/I,SAAS,CAAC,IAAI,CACZ,IAAI,iBAAiB,8CAA8C,SAAS,iBAAiB,QAAQ,KAAK,CAC3G,CAAC;qBACH;oBAED,IAAI,YAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE;wBACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;wBAEpD,6JAA6J;wBAC7J,iBAAiB,CAAC,IAAI,CACpB,IAAI,iBAAiB,8CAA8C,SAAS,wBAAwB,QAAQ,KAAK,CAClH,CAAC;qBACH;oBAED,IAAI,YAAY,KAAK,SAAS,EAAE;wBAC9B,MAAM,aAAa,GAAG,GAAG,iBAAiB,YAAY,CAAC;wBACvD,MAAM,QAAQ,GAAG,eAAe,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;wBAEvE,mJAAmJ;wBACnJ,WAAW,CAAC,IAAI,CACd,IAAI,aAAa,8CAA8C,SAAS,mBAAmB,QAAQ,KAAK,CACzG,CAAC;qBACH;iBACF;aACF;SACF;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS;QACxC,CAAC,CAAC,YAAY,CAAC;YACX,kBAAkB,EAAE,eAAe,CAAC,SAAS;YAC7C,QAAQ,EAAE,IAAI;SACf,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ;QACtC,CAAC,CAAC,YAAY,CAAC;YACX,kBAAkB,EAAE,eAAe,CAAC,QAAQ;SAC7C,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,IAAI,GAAG;;;;QAIP,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;;QAGpB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;;QAGnB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;;;QAGrB,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;;;QAG7B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;IAE3B,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC"}
|
|
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.checkPwaDependencies = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const checkPwaDependencies = ({ packageManager, config }, parameters) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
6
|
-
var _a, _b;
|
|
6
|
+
var _a, _b, _c;
|
|
7
7
|
const { target } = parameters;
|
|
8
8
|
const cfg = config.getProject(target);
|
|
9
|
-
if (((_b = (_a = cfg.experiments) === null || _a === void 0 ? void 0 : _a.pwa) === null || _b === void 0 ? void 0 : _b.icon) && packageManager.name !== 'unknown') {
|
|
9
|
+
if (((_c = (_b = (_a = cfg.experiments) === null || _a === void 0 ? void 0 : _a.pwa) === null || _b === void 0 ? void 0 : _b.icon) === null || _c === void 0 ? void 0 : _c.src) && packageManager.name !== 'unknown') {
|
|
10
10
|
const sharpInstalled = yield packageManager.exists({ name: 'sharp' });
|
|
11
11
|
if (!sharpInstalled) {
|
|
12
12
|
throw Error('You need to install `sharp` library for PWA icon generation in devDependencies');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkPwaDependencies.js","sourceRoot":"","sources":["../../../src/validators/commands/checkPwaDependencies.ts"],"names":[],"mappings":";;;;AAGO,MAAM,oBAAoB,GAAc,CAAO,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE;;IAC9F,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAA2B,CAAC;IAEhE,IAAI,CAAA,MAAA,MAAA,GAAG,CAAC,WAAW,0CAAE,GAAG,0CAAE,IAAI,KAAI,cAAc,CAAC,IAAI,KAAK,SAAS,EAAE;
|
|
1
|
+
{"version":3,"file":"checkPwaDependencies.js","sourceRoot":"","sources":["../../../src/validators/commands/checkPwaDependencies.ts"],"names":[],"mappings":";;;;AAGO,MAAM,oBAAoB,GAAc,CAAO,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE;;IAC9F,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAA2B,CAAC;IAEhE,IAAI,CAAA,MAAA,MAAA,MAAA,GAAG,CAAC,WAAW,0CAAE,GAAG,0CAAE,IAAI,0CAAE,GAAG,KAAI,cAAc,CAAC,IAAI,KAAK,SAAS,EAAE;QACxE,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAEtE,IAAI,CAAC,cAAc,EAAE;YACnB,MAAM,KAAK,CAAC,gFAAgF,CAAC,CAAC;SAC/F;KACF;IAED,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACxD,CAAC,CAAA,CAAC;AAbW,QAAA,oBAAoB,wBAa/B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.102.1",
|
|
4
4
|
"description": "Cli инструмент для сборки и запуска приложений",
|
|
5
5
|
"files": [
|
|
6
6
|
"src",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"@tinkoff/utils": "^2.1.3",
|
|
72
72
|
"@tinkoff/webpack-dedupe-plugin": "1.0.5",
|
|
73
73
|
"@tramvai/build": "3.1.3",
|
|
74
|
-
"@tramvai/react": "2.
|
|
74
|
+
"@tramvai/react": "2.102.1",
|
|
75
75
|
"@tramvai/tools-check-versions": "0.4.14",
|
|
76
76
|
"@tramvai/tools-migrate": "0.6.18",
|
|
77
77
|
"ajv": "^6.12.6",
|
package/schema.json
CHANGED
|
@@ -6,7 +6,7 @@ import type { ApplicationConfigEntry } from '../../../api';
|
|
|
6
6
|
|
|
7
7
|
const LAYOUT_FILENAME = '_layout.tsx';
|
|
8
8
|
const ERROR_BOUNDARY_FILENAME = '_error.tsx';
|
|
9
|
-
const
|
|
9
|
+
const WILDCARD_TOKEN = '[...';
|
|
10
10
|
|
|
11
11
|
interface Options {
|
|
12
12
|
rootDir: string;
|
|
@@ -42,10 +42,10 @@ const pagesResolve: LoaderDefinitionFunction<Options> = function () {
|
|
|
42
42
|
|
|
43
43
|
this.addContextDependency(pagesDir);
|
|
44
44
|
|
|
45
|
-
// skip files
|
|
45
|
+
// skip service files
|
|
46
46
|
const pagesFiles = readDir(
|
|
47
47
|
pagesDir,
|
|
48
|
-
(name: string) => name[0] !== '.' && name[0] !== '
|
|
48
|
+
(name: string) => name[0] !== '.' && name[0] !== '_' && !name.startsWith(WILDCARD_TOKEN)
|
|
49
49
|
);
|
|
50
50
|
const fsPages = [];
|
|
51
51
|
|
|
@@ -68,7 +68,12 @@ const pagesResolve: LoaderDefinitionFunction<Options> = function () {
|
|
|
68
68
|
|
|
69
69
|
const layoutPath = path.join(pageDirname, LAYOUT_FILENAME);
|
|
70
70
|
const errorBoundaryPath = path.join(pageDirname, ERROR_BOUNDARY_FILENAME);
|
|
71
|
-
|
|
71
|
+
|
|
72
|
+
const routeContent = fs
|
|
73
|
+
.readdirSync(pageDirname, { withFileTypes: true })
|
|
74
|
+
.filter((item) => item.isFile())
|
|
75
|
+
.map((item) => item.name);
|
|
76
|
+
const wildcardPath = routeContent.find((item) => item.includes(WILDCARD_TOKEN));
|
|
72
77
|
|
|
73
78
|
if (fs.existsSync(layoutPath)) {
|
|
74
79
|
const filename = removeExtension(layoutPath);
|
|
@@ -87,9 +92,9 @@ const pagesResolve: LoaderDefinitionFunction<Options> = function () {
|
|
|
87
92
|
);
|
|
88
93
|
}
|
|
89
94
|
|
|
90
|
-
if (
|
|
95
|
+
if (wildcardPath !== undefined) {
|
|
91
96
|
const componentName = `${pageComponentName}__wildcard`;
|
|
92
|
-
const filename = removeExtension(wildcardPath);
|
|
97
|
+
const filename = removeExtension(path.join(pageDirname, wildcardPath));
|
|
93
98
|
|
|
94
99
|
// @example '@/pages/MainPage': lazy(() => import(/* webpackChunkName: "@_pages_MainPage__wildcard" */ '/tramvai-app/src/pages/MainPage_wildcard'))
|
|
95
100
|
fsWildcards.push(
|
package/src/typings/pwa/index.ts
CHANGED
|
@@ -5,7 +5,7 @@ export const checkPwaDependencies: Validator = async ({ packageManager, config }
|
|
|
5
5
|
const { target } = parameters;
|
|
6
6
|
const cfg = config.getProject(target) as ApplicationConfigEntry;
|
|
7
7
|
|
|
8
|
-
if (cfg.experiments?.pwa?.icon && packageManager.name !== 'unknown') {
|
|
8
|
+
if (cfg.experiments?.pwa?.icon?.src && packageManager.name !== 'unknown') {
|
|
9
9
|
const sharpInstalled = await packageManager.exists({ name: 'sharp' });
|
|
10
10
|
|
|
11
11
|
if (!sharpInstalled) {
|