vovk-cli 0.0.1-beta.31 → 0.0.1-beta.33
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/dist/getProjectInfo/getConfig.mjs +2 -1
- package/dist/init/createConfig.mjs +1 -1
- package/dist/init/getTemplateFilesFromPackage.d.mts +1 -1
- package/dist/init/getTemplateFilesFromPackage.mjs +23 -34
- package/dist/init/index.mjs +1 -1
- package/dist/init/installDependencies.mjs +17 -13
- package/dist/init/updateDependenciesWithoutInstalling.d.mts +1 -0
- package/dist/init/updateDependenciesWithoutInstalling.mjs +1 -0
- package/dist/types.d.mts +3 -0
- package/dist/watcher/index.mjs +13 -3
- package/package.json +5 -4
- package/tmp_test_dir/package-lock.json +95 -28
- package/tmp_test_dir/package.json +3 -3
- package/tmp_test_dir/vovk.config.js +2 -2
|
@@ -15,7 +15,8 @@ export default async function getConfig({ clientOutDir, cwd }) {
|
|
|
15
15
|
rootEntry: env.VOVK_ROOT_ENTRY ?? userConfig.rootEntry ?? 'api',
|
|
16
16
|
rootSegmentModulesDirName: env.VOVK_ROOT_SEGMENT_MODULES_DIR_NAME ?? userConfig.rootSegmentModulesDirName ?? '',
|
|
17
17
|
logLevel: env.VOVK_LOG_LEVEL ?? userConfig.logLevel ?? 'debug', // TODO: change to 'warn' when v3 is ready
|
|
18
|
-
prettifyClient: userConfig.prettifyClient ?? false,
|
|
18
|
+
prettifyClient: (env.VOVK_PRETTIFY_CLIENT ? !!env.VOVK_PRETTIFY_CLIENT : null) ?? userConfig.prettifyClient ?? false,
|
|
19
|
+
devHttps: (env.VOVK_DEV_HTTPS ? !!env.VOVK_DEV_HTTPS : null) ?? userConfig.devHttps ?? false,
|
|
19
20
|
templates: {
|
|
20
21
|
service: 'vovk-cli/templates/service.ejs',
|
|
21
22
|
controller: 'vovk-cli/templates/controller.ejs',
|
|
@@ -26,7 +26,7 @@ export default async function createConfig({ root, log, options: { validationLib
|
|
|
26
26
|
Object.assign(templates, validationTemplates);
|
|
27
27
|
}
|
|
28
28
|
catch (error) {
|
|
29
|
-
log.
|
|
29
|
+
log.warn(`Failed to fetch validation library templates: ${error.message}`);
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
config.templates = templates;
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* @param packageName - The name of the NPM package.
|
|
4
4
|
* @returns A promise that resolves to an array of file paths.
|
|
5
5
|
*/
|
|
6
|
-
export default function getTemplatesFiles(packageName: string): Promise<Record<string, string>>;
|
|
6
|
+
export default function getTemplatesFiles(packageName: string, channel?: string): Promise<Record<string, string>>;
|
|
@@ -6,34 +6,30 @@ import { Readable } from 'stream';
|
|
|
6
6
|
* @param packageName - The name of the NPM package.
|
|
7
7
|
* @returns A promise that resolves to an array of file paths.
|
|
8
8
|
*/
|
|
9
|
-
export default async function getTemplatesFiles(packageName
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
const metadata = (await metadataResponse.json());
|
|
17
|
-
const latestVersion = metadata['dist-tags'].latest;
|
|
18
|
-
const tarballUrl = metadata.versions[latestVersion].dist.tarball;
|
|
19
|
-
// Fetch the tarball
|
|
20
|
-
const tarballResponse = await fetch(tarballUrl);
|
|
21
|
-
if (!tarballResponse.ok) {
|
|
22
|
-
throw new Error(`Failed to fetch tarball: ${tarballResponse.statusText}`);
|
|
23
|
-
}
|
|
24
|
-
const tarballArrayBuffer = await tarballResponse.arrayBuffer();
|
|
25
|
-
const tarballBuffer = Buffer.from(tarballArrayBuffer);
|
|
26
|
-
// Extract the tarball in memory and collect template files
|
|
27
|
-
const templateFiles = await extractTemplatesFromTarball(tarballBuffer);
|
|
28
|
-
const entries = templateFiles
|
|
29
|
-
.filter((fileName) => fileName.startsWith('/templates/') && !fileName.endsWith('/') && fileName.endsWith('.ejs'))
|
|
30
|
-
.map((fileName) => [fileName.substring('/templates/'.length), `${packageName}${fileName}`]);
|
|
31
|
-
return Object.fromEntries(entries);
|
|
9
|
+
export default async function getTemplatesFiles(packageName, channel = 'beta' // TODO change to latest
|
|
10
|
+
) {
|
|
11
|
+
// Fetch package metadata from the npm registry
|
|
12
|
+
const metadataResponse = await fetch(`https://registry.npmjs.org/${encodeURIComponent(packageName)}`);
|
|
13
|
+
if (!metadataResponse.ok) {
|
|
14
|
+
throw new Error(`Failed to fetch package metadata: ${metadataResponse.statusText}`);
|
|
32
15
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
16
|
+
const metadata = (await metadataResponse.json());
|
|
17
|
+
const latestVersion = metadata['dist-tags'][channel];
|
|
18
|
+
const tarballUrl = metadata.versions[latestVersion].dist.tarball;
|
|
19
|
+
// Fetch the tarball
|
|
20
|
+
const tarballResponse = await fetch(tarballUrl);
|
|
21
|
+
if (!tarballResponse.ok) {
|
|
22
|
+
throw new Error(`Failed to fetch tarball: ${tarballResponse.statusText}`);
|
|
36
23
|
}
|
|
24
|
+
const tarballArrayBuffer = await tarballResponse.arrayBuffer();
|
|
25
|
+
const tarballBuffer = Buffer.from(tarballArrayBuffer);
|
|
26
|
+
// Extract the tarball in memory and collect template files
|
|
27
|
+
const templateFiles = await extractTemplatesFromTarball(tarballBuffer);
|
|
28
|
+
const entries = templateFiles
|
|
29
|
+
.filter((fileName) => fileName.startsWith('templates/') && !fileName.endsWith('/') && fileName.endsWith('.ejs'))
|
|
30
|
+
.map((fileName) => [fileName.substring('templates/'.length).replace(/\.ejs$/, ''), `${packageName}/${fileName}`]);
|
|
31
|
+
console.log(templateFiles);
|
|
32
|
+
return Object.fromEntries(entries);
|
|
37
33
|
}
|
|
38
34
|
/**
|
|
39
35
|
* Extracts the templates from the tarball buffer.
|
|
@@ -46,6 +42,7 @@ function extractTemplatesFromTarball(tarballBuffer) {
|
|
|
46
42
|
const files = [];
|
|
47
43
|
extract.on('entry', (header, stream, next) => {
|
|
48
44
|
const filePath = header.name;
|
|
45
|
+
console.log('filePath', filePath);
|
|
49
46
|
// Check if the file is in the 'templates' folder
|
|
50
47
|
if (filePath.startsWith('package/templates/')) {
|
|
51
48
|
files.push(filePath.replace('package/', ''));
|
|
@@ -66,11 +63,3 @@ function extractTemplatesFromTarball(tarballBuffer) {
|
|
|
66
63
|
tarballStream.pipe(gunzip).pipe(extract);
|
|
67
64
|
});
|
|
68
65
|
}
|
|
69
|
-
// Example usage
|
|
70
|
-
getTemplatesFiles('your-package-name')
|
|
71
|
-
.then((files) => {
|
|
72
|
-
console.log('Files in templates folder:', files);
|
|
73
|
-
})
|
|
74
|
-
.catch((err) => {
|
|
75
|
-
console.error('Error:', err);
|
|
76
|
-
});
|
package/dist/init/index.mjs
CHANGED
|
@@ -80,7 +80,7 @@ export class Init {
|
|
|
80
80
|
await Promise.all(configPaths.map((configPath) => fs.rm(configPath)));
|
|
81
81
|
}
|
|
82
82
|
if (validationLibrary) {
|
|
83
|
-
dependencies.push(validationLibrary + '@beta');
|
|
83
|
+
dependencies.push(validationLibrary + '@beta'); // TODO: change to latest
|
|
84
84
|
dependencies.push(...({
|
|
85
85
|
'vovk-zod': ['zod'],
|
|
86
86
|
'vovk-yup': ['yup'],
|
|
@@ -12,41 +12,41 @@ function getPackageManager(options) {
|
|
|
12
12
|
}
|
|
13
13
|
const packageManagerCommands = {
|
|
14
14
|
npm: {
|
|
15
|
-
|
|
15
|
+
dependencies: (packages, installDir) => ({
|
|
16
16
|
command: 'npm',
|
|
17
17
|
args: ['install', ...packages, '--prefix', installDir],
|
|
18
18
|
}),
|
|
19
|
-
|
|
19
|
+
devDependencies: (packages, installDir) => ({
|
|
20
20
|
command: 'npm',
|
|
21
21
|
args: ['install', '--save-dev', ...packages, '--prefix', installDir],
|
|
22
22
|
}),
|
|
23
23
|
},
|
|
24
24
|
yarn: {
|
|
25
|
-
|
|
25
|
+
dependencies: (packages, installDir) => ({
|
|
26
26
|
command: 'yarn',
|
|
27
27
|
args: ['add', ...packages, '--cwd', installDir],
|
|
28
28
|
}),
|
|
29
|
-
|
|
29
|
+
devDependencies: (packages, installDir) => ({
|
|
30
30
|
command: 'yarn',
|
|
31
31
|
args: ['add', '--dev', ...packages, '--cwd', installDir],
|
|
32
32
|
}),
|
|
33
33
|
},
|
|
34
34
|
pnpm: {
|
|
35
|
-
|
|
35
|
+
dependencies: (packages, installDir) => ({
|
|
36
36
|
command: 'pnpm',
|
|
37
37
|
args: ['install', ...packages, '--dir', installDir],
|
|
38
38
|
}),
|
|
39
|
-
|
|
39
|
+
devDependencies: (packages, installDir) => ({
|
|
40
40
|
command: 'pnpm',
|
|
41
41
|
args: ['install', ...packages, '--save-dev', '--dir', installDir],
|
|
42
42
|
}),
|
|
43
43
|
},
|
|
44
44
|
bun: {
|
|
45
|
-
|
|
45
|
+
dependencies: (packages, installDir) => ({
|
|
46
46
|
command: 'bun',
|
|
47
47
|
args: ['add', ...packages, '--cwd', installDir],
|
|
48
48
|
}),
|
|
49
|
-
|
|
49
|
+
devDependencies: (packages, installDir) => ({
|
|
50
50
|
command: 'bun',
|
|
51
51
|
args: ['add', '-d', ...packages, '--cwd', installDir],
|
|
52
52
|
}),
|
|
@@ -55,10 +55,9 @@ const packageManagerCommands = {
|
|
|
55
55
|
export default async function installDependencies({ log, installDir, dependencies, devDependencies, options, }) {
|
|
56
56
|
const packageManager = getPackageManager(options);
|
|
57
57
|
// Ensure commandName is typed as CommandName
|
|
58
|
-
const installPackages = async (type, packages
|
|
58
|
+
const installPackages = async (type, packages) => {
|
|
59
59
|
if (packages.length > 0) {
|
|
60
|
-
|
|
61
|
-
const installCommand = packageManagerCommands[packageManager][commandName](packages, installDir);
|
|
60
|
+
const installCommand = packageManagerCommands[packageManager][type](packages, installDir);
|
|
62
61
|
const { command, args } = installCommand;
|
|
63
62
|
await new Promise((resolve, reject) => {
|
|
64
63
|
const child = spawn(command, args, {
|
|
@@ -79,6 +78,11 @@ export default async function installDependencies({ log, installDir, dependencie
|
|
|
79
78
|
});
|
|
80
79
|
}
|
|
81
80
|
};
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
if (dependencies.length === 0 && devDependencies.length === 0) {
|
|
82
|
+
log.warn('No dependencies or devDependencies to install');
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
log.info(`Installing dependencies and devDependencies at ${installDir} using ${packageManager}...`);
|
|
86
|
+
await installPackages('dependencies', dependencies);
|
|
87
|
+
await installPackages('devDependencies', devDependencies);
|
|
84
88
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function updateDependenciesWithoutInstalling(): Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default async function updateDependenciesWithoutInstalling() { }
|
package/dist/types.d.mts
CHANGED
|
@@ -13,6 +13,8 @@ export type VovkEnv = {
|
|
|
13
13
|
VOVK_API_ENTRY_POINT?: string;
|
|
14
14
|
VOVK_ROOT_SEGMENT_MODULES_DIR_NAME?: string;
|
|
15
15
|
VOVK_LOG_LEVEL?: LogLevelNames;
|
|
16
|
+
VOVK_PRETTIFY_CLIENT?: string;
|
|
17
|
+
VOVK_DEV_HTTPS?: string;
|
|
16
18
|
__VOVK_START_WATCHER_IN_STANDALONE_MODE__?: 'true';
|
|
17
19
|
};
|
|
18
20
|
export type VovkConfig = {
|
|
@@ -27,6 +29,7 @@ export type VovkConfig = {
|
|
|
27
29
|
rootSegmentModulesDirName?: string;
|
|
28
30
|
logLevel?: LogLevelNames;
|
|
29
31
|
prettifyClient?: boolean;
|
|
32
|
+
devHttps?: boolean;
|
|
30
33
|
templates?: {
|
|
31
34
|
service?: string;
|
|
32
35
|
controller?: string;
|
package/dist/watcher/index.mjs
CHANGED
|
@@ -13,6 +13,7 @@ import isEmpty from 'lodash/isEmpty.js';
|
|
|
13
13
|
import formatLoggedSegmentName from '../utils/formatLoggedSegmentName.mjs';
|
|
14
14
|
import keyBy from 'lodash/keyBy.js';
|
|
15
15
|
import capitalize from 'lodash/capitalize.js';
|
|
16
|
+
import { Agent, setGlobalDispatcher } from 'undici';
|
|
16
17
|
export class VovkCLIWatcher {
|
|
17
18
|
#projectInfo;
|
|
18
19
|
#segments = [];
|
|
@@ -195,8 +196,9 @@ export class VovkCLIWatcher {
|
|
|
195
196
|
}
|
|
196
197
|
};
|
|
197
198
|
#requestSchema = debounceWithArgs(async (segmentName) => {
|
|
198
|
-
const { apiEntryPoint, log, port } = this.#projectInfo;
|
|
199
|
-
const
|
|
199
|
+
const { apiEntryPoint, log, port, config } = this.#projectInfo;
|
|
200
|
+
const { devHttps } = config;
|
|
201
|
+
const endpoint = `${apiEntryPoint.startsWith(`http${devHttps ? 's' : ''}://`) ? apiEntryPoint : `http${devHttps ? 's' : ''}://localhost:${port}${apiEntryPoint}`}/${segmentName ? `${segmentName}/` : ''}_schema_`;
|
|
200
202
|
log.debug(`Requesting schema for ${formatLoggedSegmentName(segmentName)} at ${endpoint}`);
|
|
201
203
|
const resp = await fetch(endpoint);
|
|
202
204
|
if (resp.status !== 200) {
|
|
@@ -218,11 +220,11 @@ export class VovkCLIWatcher {
|
|
|
218
220
|
}, 500);
|
|
219
221
|
async #handleSchema(schema) {
|
|
220
222
|
const { log, config, cwd } = this.#projectInfo;
|
|
221
|
-
log.debug(`Handling received schema`);
|
|
222
223
|
if (!schema) {
|
|
223
224
|
log.warn('Segment schema is null');
|
|
224
225
|
return;
|
|
225
226
|
}
|
|
227
|
+
log.debug(`Handling received schema from ${formatLoggedSegmentName(schema.segmentName)}`);
|
|
226
228
|
const schemaOutAbsolutePath = path.join(cwd, config.schemaOutDir);
|
|
227
229
|
const segment = this.#segments.find((s) => s.segmentName === schema.segmentName);
|
|
228
230
|
if (!segment) {
|
|
@@ -254,6 +256,14 @@ export class VovkCLIWatcher {
|
|
|
254
256
|
async start({ clientOutDir } = {}) {
|
|
255
257
|
this.#projectInfo = await getProjectInfo({ clientOutDir });
|
|
256
258
|
const { log, config, cwd, apiDir } = this.#projectInfo;
|
|
259
|
+
if (config.devHttps) {
|
|
260
|
+
const agent = new Agent({
|
|
261
|
+
connect: {
|
|
262
|
+
rejectUnauthorized: false,
|
|
263
|
+
},
|
|
264
|
+
});
|
|
265
|
+
setGlobalDispatcher(agent);
|
|
266
|
+
}
|
|
257
267
|
process.on('uncaughtException', (err) => {
|
|
258
268
|
log.error(`Uncaught Exception: ${err.message}`);
|
|
259
269
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vovk-cli",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.33",
|
|
4
4
|
"bin": {
|
|
5
5
|
"vovk": "./dist/index.mjs"
|
|
6
6
|
},
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"prefix": ".",
|
|
11
11
|
"scripts": {
|
|
12
12
|
"build": "rm -rf dist tsconfig.build.tsbuildinfo && tsc -P tsconfig.build.json",
|
|
13
|
-
"test": "npm run build && chmod +x ./dist/index.mjs && NODE_OPTIONS=\"--loader ts-node/esm\" TS_NODE_PROJECT=./tsconfig.test.json node --test test/**.mts",
|
|
13
|
+
"test": "npm run build && chmod +x ./dist/index.mjs && NODE_OPTIONS=\"--loader ts-node/esm\" TS_NODE_PROJECT=./tsconfig.test.json node --test --test-only test/**.mts",
|
|
14
14
|
"ncu": "npm-check-updates -u",
|
|
15
15
|
"npm-publish": "npm publish"
|
|
16
16
|
},
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"homepage": "https://vovk.dev",
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"vovk": "^3.0.0-beta.
|
|
34
|
+
"vovk": "^3.0.0-beta.33"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@inquirer/prompts": "^5.5.0",
|
|
@@ -49,7 +49,8 @@
|
|
|
49
49
|
"pluralize": "^8.0.0",
|
|
50
50
|
"prettier": "^3.3.3",
|
|
51
51
|
"tar-stream": "^3.1.7",
|
|
52
|
-
"ts-morph": "^23.0.0"
|
|
52
|
+
"ts-morph": "^23.0.0",
|
|
53
|
+
"undici": "^6.19.8"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|
|
55
56
|
"@types/ejs": "^3.1.5",
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"next": "14.2.13",
|
|
12
12
|
"react": "^18",
|
|
13
13
|
"react-dom": "^18",
|
|
14
|
-
"vovk": "^3.0.0-beta.
|
|
15
|
-
"vovk-zod": "^1.0.0-beta.
|
|
14
|
+
"vovk": "^3.0.0-beta.33",
|
|
15
|
+
"vovk-zod": "^1.0.0-beta.10",
|
|
16
16
|
"zod": "^3.23.8"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"@types/react": "^18",
|
|
21
21
|
"@types/react-dom": "^18",
|
|
22
22
|
"typescript": "^5",
|
|
23
|
-
"vovk-cli": "^0.0.1-beta.
|
|
23
|
+
"vovk-cli": "^0.0.1-beta.32"
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
"node_modules/@babel/runtime": {
|
|
@@ -105,9 +105,9 @@
|
|
|
105
105
|
}
|
|
106
106
|
},
|
|
107
107
|
"node_modules/@inquirer/core/node_modules/@types/node": {
|
|
108
|
-
"version": "22.7.
|
|
109
|
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.
|
|
110
|
-
"integrity": "sha512-
|
|
108
|
+
"version": "22.7.4",
|
|
109
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.4.tgz",
|
|
110
|
+
"integrity": "sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==",
|
|
111
111
|
"dev": true,
|
|
112
112
|
"license": "MIT",
|
|
113
113
|
"dependencies": {
|
|
@@ -650,9 +650,9 @@
|
|
|
650
650
|
}
|
|
651
651
|
},
|
|
652
652
|
"node_modules/@types/node": {
|
|
653
|
-
"version": "20.16.
|
|
654
|
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.
|
|
655
|
-
"integrity": "sha512-
|
|
653
|
+
"version": "20.16.10",
|
|
654
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.10.tgz",
|
|
655
|
+
"integrity": "sha512-vQUKgWTjEIRFCvK6CyriPH3MZYiYlNy0fKiEYHWbcoWLEgs4opurGGKlebrTLqdSMIbXImH6XExNiIyNUv3WpA==",
|
|
656
656
|
"dev": true,
|
|
657
657
|
"license": "MIT",
|
|
658
658
|
"dependencies": {
|
|
@@ -667,9 +667,9 @@
|
|
|
667
667
|
"license": "MIT"
|
|
668
668
|
},
|
|
669
669
|
"node_modules/@types/react": {
|
|
670
|
-
"version": "18.3.
|
|
671
|
-
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.
|
|
672
|
-
"integrity": "sha512
|
|
670
|
+
"version": "18.3.10",
|
|
671
|
+
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.10.tgz",
|
|
672
|
+
"integrity": "sha512-02sAAlBnP39JgXwkAq3PeU9DVaaGpZyF3MGcC0MKgQVkZor5IiiDAipVaxQHtDJAmO4GIy/rVBy/LzVj76Cyqg==",
|
|
673
673
|
"dev": true,
|
|
674
674
|
"license": "MIT",
|
|
675
675
|
"dependencies": {
|
|
@@ -800,6 +800,13 @@
|
|
|
800
800
|
"dev": true,
|
|
801
801
|
"license": "MIT"
|
|
802
802
|
},
|
|
803
|
+
"node_modules/b4a": {
|
|
804
|
+
"version": "1.6.7",
|
|
805
|
+
"resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz",
|
|
806
|
+
"integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==",
|
|
807
|
+
"dev": true,
|
|
808
|
+
"license": "Apache-2.0"
|
|
809
|
+
},
|
|
803
810
|
"node_modules/balanced-match": {
|
|
804
811
|
"version": "1.0.2",
|
|
805
812
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
|
@@ -807,6 +814,14 @@
|
|
|
807
814
|
"dev": true,
|
|
808
815
|
"license": "MIT"
|
|
809
816
|
},
|
|
817
|
+
"node_modules/bare-events": {
|
|
818
|
+
"version": "2.5.0",
|
|
819
|
+
"resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz",
|
|
820
|
+
"integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==",
|
|
821
|
+
"dev": true,
|
|
822
|
+
"license": "Apache-2.0",
|
|
823
|
+
"optional": true
|
|
824
|
+
},
|
|
810
825
|
"node_modules/binary-extensions": {
|
|
811
826
|
"version": "2.3.0",
|
|
812
827
|
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
|
|
@@ -1249,6 +1264,13 @@
|
|
|
1249
1264
|
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
|
|
1250
1265
|
"license": "MIT"
|
|
1251
1266
|
},
|
|
1267
|
+
"node_modules/fast-fifo": {
|
|
1268
|
+
"version": "1.3.2",
|
|
1269
|
+
"resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
|
|
1270
|
+
"integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
|
|
1271
|
+
"dev": true,
|
|
1272
|
+
"license": "MIT"
|
|
1273
|
+
},
|
|
1252
1274
|
"node_modules/fast-glob": {
|
|
1253
1275
|
"version": "3.3.2",
|
|
1254
1276
|
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
|
|
@@ -2130,6 +2152,13 @@
|
|
|
2130
2152
|
],
|
|
2131
2153
|
"license": "MIT"
|
|
2132
2154
|
},
|
|
2155
|
+
"node_modules/queue-tick": {
|
|
2156
|
+
"version": "1.0.1",
|
|
2157
|
+
"resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
|
|
2158
|
+
"integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
|
|
2159
|
+
"dev": true,
|
|
2160
|
+
"license": "MIT"
|
|
2161
|
+
},
|
|
2133
2162
|
"node_modules/react": {
|
|
2134
2163
|
"version": "18.3.1",
|
|
2135
2164
|
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
|
|
@@ -2404,6 +2433,21 @@
|
|
|
2404
2433
|
"node": ">=10.0.0"
|
|
2405
2434
|
}
|
|
2406
2435
|
},
|
|
2436
|
+
"node_modules/streamx": {
|
|
2437
|
+
"version": "2.20.1",
|
|
2438
|
+
"resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz",
|
|
2439
|
+
"integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==",
|
|
2440
|
+
"dev": true,
|
|
2441
|
+
"license": "MIT",
|
|
2442
|
+
"dependencies": {
|
|
2443
|
+
"fast-fifo": "^1.3.2",
|
|
2444
|
+
"queue-tick": "^1.0.1",
|
|
2445
|
+
"text-decoder": "^1.1.0"
|
|
2446
|
+
},
|
|
2447
|
+
"optionalDependencies": {
|
|
2448
|
+
"bare-events": "^2.2.0"
|
|
2449
|
+
}
|
|
2450
|
+
},
|
|
2407
2451
|
"node_modules/string-width": {
|
|
2408
2452
|
"version": "5.1.2",
|
|
2409
2453
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
|
|
@@ -2550,6 +2594,28 @@
|
|
|
2550
2594
|
"url": "https://github.com/chalk/supports-color?sponsor=1"
|
|
2551
2595
|
}
|
|
2552
2596
|
},
|
|
2597
|
+
"node_modules/tar-stream": {
|
|
2598
|
+
"version": "3.1.7",
|
|
2599
|
+
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
|
|
2600
|
+
"integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
|
|
2601
|
+
"dev": true,
|
|
2602
|
+
"license": "MIT",
|
|
2603
|
+
"dependencies": {
|
|
2604
|
+
"b4a": "^1.6.4",
|
|
2605
|
+
"fast-fifo": "^1.2.0",
|
|
2606
|
+
"streamx": "^2.15.0"
|
|
2607
|
+
}
|
|
2608
|
+
},
|
|
2609
|
+
"node_modules/text-decoder": {
|
|
2610
|
+
"version": "1.2.0",
|
|
2611
|
+
"resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.0.tgz",
|
|
2612
|
+
"integrity": "sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==",
|
|
2613
|
+
"dev": true,
|
|
2614
|
+
"license": "Apache-2.0",
|
|
2615
|
+
"dependencies": {
|
|
2616
|
+
"b4a": "^1.6.4"
|
|
2617
|
+
}
|
|
2618
|
+
},
|
|
2553
2619
|
"node_modules/tmp": {
|
|
2554
2620
|
"version": "0.0.33",
|
|
2555
2621
|
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
|
|
@@ -2659,18 +2725,18 @@
|
|
|
2659
2725
|
}
|
|
2660
2726
|
},
|
|
2661
2727
|
"node_modules/vovk": {
|
|
2662
|
-
"version": "3.0.0-beta.
|
|
2663
|
-
"resolved": "https://registry.npmjs.org/vovk/-/vovk-3.0.0-beta.
|
|
2664
|
-
"integrity": "sha512-
|
|
2728
|
+
"version": "3.0.0-beta.33",
|
|
2729
|
+
"resolved": "https://registry.npmjs.org/vovk/-/vovk-3.0.0-beta.33.tgz",
|
|
2730
|
+
"integrity": "sha512-Idrrn5NZz4uYf84GUq6Rm31AeytUejxCNDqORwMezM2omTEVKPaH65tcifOlVBbd3/9N5a13YWoE36T5PBR3mg==",
|
|
2665
2731
|
"license": "MIT",
|
|
2666
2732
|
"peerDependencies": {
|
|
2667
2733
|
"next": "*"
|
|
2668
2734
|
}
|
|
2669
2735
|
},
|
|
2670
2736
|
"node_modules/vovk-cli": {
|
|
2671
|
-
"version": "0.0.1-beta.
|
|
2672
|
-
"resolved": "https://registry.npmjs.org/vovk-cli/-/vovk-cli-0.0.1-beta.
|
|
2673
|
-
"integrity": "sha512-
|
|
2737
|
+
"version": "0.0.1-beta.32",
|
|
2738
|
+
"resolved": "https://registry.npmjs.org/vovk-cli/-/vovk-cli-0.0.1-beta.32.tgz",
|
|
2739
|
+
"integrity": "sha512-GPVO4NmCYUUH733PP2q91wevTyVJ3bEzmLqXhwaT3fuoyHOrpl5TSHrwGn6HGIxcAqCKUnGNIAEK9pXvcCkVbw==",
|
|
2674
2740
|
"dev": true,
|
|
2675
2741
|
"license": "MIT",
|
|
2676
2742
|
"dependencies": {
|
|
@@ -2688,39 +2754,40 @@
|
|
|
2688
2754
|
"loglevel": "^1.9.2",
|
|
2689
2755
|
"pluralize": "^8.0.0",
|
|
2690
2756
|
"prettier": "^3.3.3",
|
|
2757
|
+
"tar-stream": "^3.1.7",
|
|
2691
2758
|
"ts-morph": "^23.0.0"
|
|
2692
2759
|
},
|
|
2693
2760
|
"bin": {
|
|
2694
2761
|
"vovk": "dist/index.mjs"
|
|
2695
2762
|
},
|
|
2696
2763
|
"peerDependencies": {
|
|
2697
|
-
"vovk": "^3.0.0-beta.
|
|
2764
|
+
"vovk": "^3.0.0-beta.33"
|
|
2698
2765
|
}
|
|
2699
2766
|
},
|
|
2700
2767
|
"node_modules/vovk-validate-client-ajv": {
|
|
2701
|
-
"version": "0.0.0-beta.
|
|
2702
|
-
"resolved": "https://registry.npmjs.org/vovk-validate-client-ajv/-/vovk-validate-client-ajv-0.0.0-beta.
|
|
2703
|
-
"integrity": "sha512-
|
|
2768
|
+
"version": "0.0.0-beta.12",
|
|
2769
|
+
"resolved": "https://registry.npmjs.org/vovk-validate-client-ajv/-/vovk-validate-client-ajv-0.0.0-beta.12.tgz",
|
|
2770
|
+
"integrity": "sha512-cFb3pa6+7XxBh0W7iEflD1RYPOqXjE7p+zDIonjefDj+0gEQV/3YhQSTwUwuOqUw0TGsy7NohD6n4TcbIBHlQA==",
|
|
2704
2771
|
"license": "MIT",
|
|
2705
2772
|
"dependencies": {
|
|
2706
2773
|
"ajv": "^8.17.1",
|
|
2707
2774
|
"ajv-formats": "^3.0.1"
|
|
2708
2775
|
},
|
|
2709
2776
|
"peerDependencies": {
|
|
2710
|
-
"vovk": "^3.0.0-beta.
|
|
2777
|
+
"vovk": "^3.0.0-beta.33"
|
|
2711
2778
|
}
|
|
2712
2779
|
},
|
|
2713
2780
|
"node_modules/vovk-zod": {
|
|
2714
|
-
"version": "1.0.0-beta.
|
|
2715
|
-
"resolved": "https://registry.npmjs.org/vovk-zod/-/vovk-zod-1.0.0-beta.
|
|
2716
|
-
"integrity": "sha512-
|
|
2781
|
+
"version": "1.0.0-beta.10",
|
|
2782
|
+
"resolved": "https://registry.npmjs.org/vovk-zod/-/vovk-zod-1.0.0-beta.10.tgz",
|
|
2783
|
+
"integrity": "sha512-Kg8g9QsEbipVk961qj2OUQws2OT5XTWQ/LNmXSC0985Ym7fNXjJzs5zJbYQck51yrswoM+3ek8QP7vRuRnjiRw==",
|
|
2717
2784
|
"license": "MIT",
|
|
2718
2785
|
"dependencies": {
|
|
2719
|
-
"vovk-validate-client-ajv": "^0.0.0-beta.
|
|
2786
|
+
"vovk-validate-client-ajv": "^0.0.0-beta.12",
|
|
2720
2787
|
"zod-to-json-schema": "^3.23.2"
|
|
2721
2788
|
},
|
|
2722
2789
|
"peerDependencies": {
|
|
2723
|
-
"vovk": "^3.0.0-beta.
|
|
2790
|
+
"vovk": "^3.0.0-beta.33",
|
|
2724
2791
|
"zod": "*"
|
|
2725
2792
|
}
|
|
2726
2793
|
},
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"next": "14.2.13",
|
|
11
11
|
"react": "^18",
|
|
12
12
|
"react-dom": "^18",
|
|
13
|
-
"vovk": "^3.0.0-beta.
|
|
14
|
-
"vovk-zod": "^1.0.0-beta.
|
|
13
|
+
"vovk": "^3.0.0-beta.33",
|
|
14
|
+
"vovk-zod": "^1.0.0-beta.10",
|
|
15
15
|
"zod": "^3.23.8"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
@@ -19,6 +19,6 @@
|
|
|
19
19
|
"@types/react": "^18",
|
|
20
20
|
"@types/react-dom": "^18",
|
|
21
21
|
"typescript": "^5",
|
|
22
|
-
"vovk-cli": "^0.0.1-beta.
|
|
22
|
+
"vovk-cli": "^0.0.1-beta.32"
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -3,8 +3,8 @@ const config = {
|
|
|
3
3
|
validationLibrary: 'vovk-zod',
|
|
4
4
|
validateOnClient: 'vovk-zod/validateOnClient',
|
|
5
5
|
templates: {
|
|
6
|
-
controller: 'vovk-
|
|
7
|
-
service: 'vovk-
|
|
6
|
+
controller: 'vovk-zod/templates/controller.ejs',
|
|
7
|
+
service: 'vovk-zod/templates/service.ejs',
|
|
8
8
|
worker: 'vovk-cli/templates/worker.ejs',
|
|
9
9
|
},
|
|
10
10
|
};
|