zenstack 2.0.0-alpha.4 → 2.0.0-alpha.5
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/package.json +4 -4
- package/plugins/plugin-utils.js +20 -10
- package/plugins/plugin-utils.js.map +1 -1
- package/utils/pkg-utils.d.ts +9 -0
- package/utils/pkg-utils.js +11 -12
- package/utils/pkg-utils.js.map +1 -1
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publisher": "zenstack",
|
|
4
4
|
"displayName": "ZenStack Language Tools",
|
|
5
5
|
"description": "Build scalable web apps with minimum code by defining authorization and validation rules inside the data schema that closer to the database",
|
|
6
|
-
"version": "2.0.0-alpha.
|
|
6
|
+
"version": "2.0.0-alpha.5",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "ZenStack Team"
|
|
9
9
|
},
|
|
@@ -94,8 +94,8 @@
|
|
|
94
94
|
"vscode-uri": "^3.0.6",
|
|
95
95
|
"zod": "^3.22.4",
|
|
96
96
|
"zod-validation-error": "^1.5.0",
|
|
97
|
-
"@zenstackhq/
|
|
98
|
-
"@zenstackhq/
|
|
97
|
+
"@zenstackhq/language": "2.0.0-alpha.5",
|
|
98
|
+
"@zenstackhq/sdk": "2.0.0-alpha.5"
|
|
99
99
|
},
|
|
100
100
|
"devDependencies": {
|
|
101
101
|
"@prisma/client": "^5.7.1",
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
"tmp": "^0.2.1",
|
|
115
115
|
"tsc-alias": "^1.7.0",
|
|
116
116
|
"vitest": "^0.29.7",
|
|
117
|
-
"@zenstackhq/runtime": "2.0.0-alpha.
|
|
117
|
+
"@zenstackhq/runtime": "2.0.0-alpha.5"
|
|
118
118
|
},
|
|
119
119
|
"scripts": {
|
|
120
120
|
"vscode:publish": "vsce publish --no-dependencies",
|
package/plugins/plugin-utils.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.CorePlugins = exports.getDefaultOutputFolder = exports.ensureDefaultOutp
|
|
|
7
7
|
const runtime_1 = require("@zenstackhq/runtime");
|
|
8
8
|
const fs_1 = __importDefault(require("fs"));
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const pkg_utils_1 = require("../utils/pkg-utils");
|
|
10
11
|
exports.ALL_OPERATION_KINDS = ['create', 'update', 'postUpdate', 'read', 'delete'];
|
|
11
12
|
/**
|
|
12
13
|
* Gets the nearest "node_modules" folder by walking up from start path.
|
|
@@ -79,21 +80,30 @@ function getDefaultOutputFolder(globalOptions) {
|
|
|
79
80
|
if (typeof (globalOptions === null || globalOptions === void 0 ? void 0 : globalOptions.output) === 'string') {
|
|
80
81
|
return path_1.default.resolve(globalOptions.output);
|
|
81
82
|
}
|
|
82
|
-
//
|
|
83
|
-
let runtimeModulePath = require.resolve('@zenstackhq/runtime');
|
|
83
|
+
// for testing, use the local node_modules
|
|
84
84
|
if (process.env.ZENSTACK_TEST === '1') {
|
|
85
|
-
|
|
86
|
-
runtimeModulePath = path_1.default.resolve(path_1.default.join(process.cwd(), 'node_modules', '@zenstackhq', 'runtime'));
|
|
85
|
+
return path_1.default.join(process.cwd(), 'node_modules', runtime_1.DEFAULT_RUNTIME_LOAD_PATH);
|
|
87
86
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
87
|
+
const { projectRoot } = (0, pkg_utils_1.getPackageManager)(__dirname);
|
|
88
|
+
if (fs_1.default.existsSync(path_1.default.join(projectRoot, 'node_modules'))) {
|
|
89
|
+
// use the located node_modules folder
|
|
90
|
+
return path_1.default.join(projectRoot, 'node_modules', runtime_1.DEFAULT_RUNTIME_LOAD_PATH);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
// unable to locate a node_modules folder, fallback to where the runtime
|
|
94
|
+
// package resides
|
|
95
|
+
// find the real runtime module path, it might be a symlink in pnpm
|
|
96
|
+
let runtimeModulePath = require.resolve('@zenstackhq/runtime');
|
|
97
|
+
if (runtimeModulePath) {
|
|
98
|
+
// start with the parent folder of @zenstackhq, supposed to be a node_modules folder
|
|
99
|
+
while (!runtimeModulePath.endsWith('@zenstackhq') && runtimeModulePath !== '/') {
|
|
100
|
+
runtimeModulePath = path_1.default.join(runtimeModulePath, '..');
|
|
101
|
+
}
|
|
91
102
|
runtimeModulePath = path_1.default.join(runtimeModulePath, '..');
|
|
92
103
|
}
|
|
93
|
-
|
|
104
|
+
const modulesFolder = getNodeModulesFolder(runtimeModulePath);
|
|
105
|
+
return modulesFolder ? path_1.default.join(modulesFolder, runtime_1.DEFAULT_RUNTIME_LOAD_PATH) : undefined;
|
|
94
106
|
}
|
|
95
|
-
const modulesFolder = getNodeModulesFolder(runtimeModulePath);
|
|
96
|
-
return modulesFolder ? path_1.default.join(modulesFolder, runtime_1.DEFAULT_RUNTIME_LOAD_PATH) : undefined;
|
|
97
107
|
}
|
|
98
108
|
exports.getDefaultOutputFolder = getDefaultOutputFolder;
|
|
99
109
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-utils.js","sourceRoot":"","sources":["../../src/plugins/plugin-utils.ts"],"names":[],"mappings":";;;;;;AAAA,iDAA0F;AAE1F,4CAAoB;AACpB,gDAAwB;
|
|
1
|
+
{"version":3,"file":"plugin-utils.js","sourceRoot":"","sources":["../../src/plugins/plugin-utils.ts"],"names":[],"mappings":"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"}
|
package/utils/pkg-utils.d.ts
CHANGED
|
@@ -23,6 +23,15 @@ export type FindUp<e extends boolean> = e extends true ? string[] | undefined :
|
|
|
23
23
|
* @returns Path(s) to a specific file or folder within the directory or parent directories
|
|
24
24
|
*/
|
|
25
25
|
export declare function findUp<e extends boolean = false>(names: string[], cwd?: string, multiple?: e, result?: string[]): FindUp<e>;
|
|
26
|
+
export declare function getPackageManager(searchStartPath?: string): {
|
|
27
|
+
packageManager: string;
|
|
28
|
+
lockFile: undefined;
|
|
29
|
+
projectRoot: string;
|
|
30
|
+
} | {
|
|
31
|
+
packageManager: string;
|
|
32
|
+
lockFile: string;
|
|
33
|
+
projectRoot: string;
|
|
34
|
+
};
|
|
26
35
|
export declare function installPackage(pkg: string, dev: boolean, pkgManager?: PackageManagers | undefined, tag?: string, projectPath?: string, exactVersion?: boolean): void;
|
|
27
36
|
export declare function ensurePackage(pkg: string, dev: boolean, pkgManager?: PackageManagers | undefined, tag?: string, projectPath?: string, exactVersion?: boolean): void;
|
|
28
37
|
/**
|
package/utils/pkg-utils.js
CHANGED
|
@@ -3,10 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getPackageJson = exports.findPackageJson = exports.ensurePackage = exports.installPackage = exports.findUp = void 0;
|
|
6
|
+
exports.getPackageJson = exports.findPackageJson = exports.ensurePackage = exports.installPackage = exports.getPackageManager = exports.findUp = void 0;
|
|
7
7
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
const exec_utils_1 = require("./exec-utils");
|
|
10
|
+
const ts_pattern_1 = require("ts-pattern");
|
|
10
11
|
/**
|
|
11
12
|
* Find and return file paths by searching parent directories based on the given names list and current working directory (cwd) path.
|
|
12
13
|
* Optionally return a single path or multiple paths.
|
|
@@ -35,21 +36,19 @@ function findUp(names, cwd = process.cwd(), multiple = false, result = []) {
|
|
|
35
36
|
return findUp(names, up, multiple, result);
|
|
36
37
|
}
|
|
37
38
|
exports.findUp = findUp;
|
|
38
|
-
function getPackageManager(
|
|
39
|
-
const lockFile = findUp(['yarn.lock', 'pnpm-lock.yaml', 'package-lock.json'],
|
|
39
|
+
function getPackageManager(searchStartPath = '.') {
|
|
40
|
+
const lockFile = findUp(['yarn.lock', 'pnpm-lock.yaml', 'package-lock.json'], searchStartPath);
|
|
40
41
|
if (!lockFile) {
|
|
41
42
|
// default use npm
|
|
42
|
-
return 'npm';
|
|
43
|
-
}
|
|
44
|
-
switch (node_path_1.default.basename(lockFile)) {
|
|
45
|
-
case 'yarn.lock':
|
|
46
|
-
return 'yarn';
|
|
47
|
-
case 'pnpm-lock.yaml':
|
|
48
|
-
return 'pnpm';
|
|
49
|
-
default:
|
|
50
|
-
return 'npm';
|
|
43
|
+
return { packageManager: 'npm', lockFile: undefined, projectRoot: searchStartPath };
|
|
51
44
|
}
|
|
45
|
+
const packageManager = (0, ts_pattern_1.match)(node_path_1.default.basename(lockFile))
|
|
46
|
+
.with('yarn.lock', () => 'yarn')
|
|
47
|
+
.with('pnpm-lock.yaml', () => 'pnpm')
|
|
48
|
+
.otherwise(() => 'npm');
|
|
49
|
+
return { packageManager, lockFile, projectRoot: node_path_1.default.dirname(lockFile) };
|
|
52
50
|
}
|
|
51
|
+
exports.getPackageManager = getPackageManager;
|
|
53
52
|
function installPackage(pkg, dev, pkgManager = undefined, tag = 'latest', projectPath = '.', exactVersion = true) {
|
|
54
53
|
const manager = pkgManager !== null && pkgManager !== void 0 ? pkgManager : getPackageManager(projectPath);
|
|
55
54
|
console.log(`Installing package "${pkg}@${tag}" with ${manager}`);
|
package/utils/pkg-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pkg-utils.js","sourceRoot":"","sources":["../../src/utils/pkg-utils.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAC7B,6CAAwC;
|
|
1
|
+
{"version":3,"file":"pkg-utils.js","sourceRoot":"","sources":["../../src/utils/pkg-utils.ts"],"names":[],"mappings":"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"}
|