zenstack 2.0.0-alpha.1 → 2.0.0-alpha.3
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 +29 -1
- package/bin/post-install.js +1 -1
- package/cli/actions/repl.js +31 -4
- package/cli/actions/repl.js.map +1 -1
- package/cli/cli-util.js +1 -1
- package/cli/cli-util.js.map +1 -1
- package/cli/plugin-runner.js +63 -42
- package/cli/plugin-runner.js.map +1 -1
- package/constants.js +1 -1
- package/language-server/validator/datamodel-validator.js +17 -7
- package/language-server/validator/datamodel-validator.js.map +1 -1
- package/language-server/validator/schema-validator.js +2 -1
- package/language-server/validator/schema-validator.js.map +1 -1
- package/package.json +5 -5
- package/plugins/enhancer/enhance/index.d.ts +4 -1
- package/plugins/enhancer/enhance/index.js +245 -111
- package/plugins/enhancer/enhance/index.js.map +1 -1
- package/plugins/enhancer/enhancer-utils.d.ts +5 -0
- package/plugins/enhancer/enhancer-utils.js +22 -0
- package/plugins/enhancer/enhancer-utils.js.map +1 -0
- package/plugins/enhancer/index.js +25 -21
- package/plugins/enhancer/index.js.map +1 -1
- package/plugins/enhancer/model-meta/index.js +3 -0
- package/plugins/enhancer/model-meta/index.js.map +1 -1
- package/plugins/enhancer/policy/policy-guard-generator.d.ts +1 -1
- package/plugins/enhancer/policy/policy-guard-generator.js +7 -2
- package/plugins/enhancer/policy/policy-guard-generator.js.map +1 -1
- package/plugins/plugin-utils.js +3 -0
- package/plugins/plugin-utils.js.map +1 -1
- package/plugins/prisma/index.d.ts +1 -0
- package/plugins/prisma/index.js +92 -2
- package/plugins/prisma/index.js.map +1 -1
- package/plugins/prisma/schema-generator.d.ts +4 -4
- package/plugins/prisma/schema-generator.js +48 -81
- package/plugins/prisma/schema-generator.js.map +1 -1
- package/plugins/zod/generator.d.ts +21 -1
- package/plugins/zod/generator.js +364 -352
- package/plugins/zod/generator.js.map +1 -1
- package/plugins/zod/index.js +2 -1
- package/plugins/zod/index.js.map +1 -1
- package/plugins/zod/transformer.d.ts +7 -5
- package/plugins/zod/transformer.js +18 -14
- package/plugins/zod/transformer.js.map +1 -1
- package/plugins/zod/types.d.ts +0 -2
- package/plugins/zod/utils/schema-gen.js +1 -1
- package/plugins/zod/utils/schema-gen.js.map +1 -1
- package/res/stdlib.zmodel +2 -2
- package/telemetry.d.ts +1 -1
- package/telemetry.js +1 -1
- package/telemetry.js.map +1 -1
- package/utils/exec-utils.d.ts +6 -0
- package/utils/exec-utils.js +10 -1
- package/utils/exec-utils.js.map +1 -1
- package/utils/pkg-utils.d.ts +29 -0
- package/utils/pkg-utils.js +42 -22
- package/utils/pkg-utils.js.map +1 -1
- package/plugins/enhancer/delegate/index.d.ts +0 -4
- package/plugins/enhancer/delegate/index.js +0 -31
- package/plugins/enhancer/delegate/index.js.map +0 -1
package/utils/pkg-utils.js
CHANGED
|
@@ -3,30 +3,45 @@ 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 = void 0;
|
|
7
|
-
const
|
|
8
|
-
const
|
|
6
|
+
exports.getPackageJson = exports.findPackageJson = exports.ensurePackage = exports.installPackage = exports.findUp = void 0;
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
const exec_utils_1 = require("./exec-utils");
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Find and return file paths by searching parent directories based on the given names list and current working directory (cwd) path.
|
|
12
|
+
* Optionally return a single path or multiple paths.
|
|
13
|
+
* If multiple allowed, return all paths found.
|
|
14
|
+
* If no paths are found, return undefined.
|
|
15
|
+
*
|
|
16
|
+
* @export
|
|
17
|
+
* @template [e=false]
|
|
18
|
+
* @param names An array of strings representing names to search for within the directory
|
|
19
|
+
* @param cwd A string representing the current working directory
|
|
20
|
+
* @param [multiple=false as e] A boolean flag indicating whether to search for multiple levels. Useful for finding node_modules directories...
|
|
21
|
+
* @param [result=[]] An array of strings representing the accumulated results used in multiple results
|
|
22
|
+
* @returns Path(s) to a specific file or folder within the directory or parent directories
|
|
23
|
+
*/
|
|
24
|
+
function findUp(names, cwd = process.cwd(), multiple = false, result = []) {
|
|
25
|
+
if (!names.some((name) => !!name))
|
|
26
|
+
return undefined;
|
|
27
|
+
const target = names.find((name) => node_fs_1.default.existsSync(node_path_1.default.join(cwd, name)));
|
|
28
|
+
if (multiple == false && target)
|
|
29
|
+
return node_path_1.default.join(cwd, target);
|
|
30
|
+
if (target)
|
|
31
|
+
result.push(node_path_1.default.join(cwd, target));
|
|
32
|
+
const up = node_path_1.default.resolve(cwd, '..');
|
|
33
|
+
if (up === cwd)
|
|
34
|
+
return (multiple && result.length > 0 ? result : undefined); // it'll fail anyway
|
|
35
|
+
return findUp(names, up, multiple, result);
|
|
22
36
|
}
|
|
37
|
+
exports.findUp = findUp;
|
|
23
38
|
function getPackageManager(projectPath = '.') {
|
|
24
39
|
const lockFile = findUp(['yarn.lock', 'pnpm-lock.yaml', 'package-lock.json'], projectPath);
|
|
25
40
|
if (!lockFile) {
|
|
26
41
|
// default use npm
|
|
27
42
|
return 'npm';
|
|
28
43
|
}
|
|
29
|
-
switch (
|
|
44
|
+
switch (node_path_1.default.basename(lockFile)) {
|
|
30
45
|
case 'yarn.lock':
|
|
31
46
|
return 'yarn';
|
|
32
47
|
case 'pnpm-lock.yaml':
|
|
@@ -52,7 +67,7 @@ function installPackage(pkg, dev, pkgManager = undefined, tag = 'latest', projec
|
|
|
52
67
|
}
|
|
53
68
|
exports.installPackage = installPackage;
|
|
54
69
|
function ensurePackage(pkg, dev, pkgManager = undefined, tag = 'latest', projectPath = '.', exactVersion = false) {
|
|
55
|
-
const resolvePath =
|
|
70
|
+
const resolvePath = node_path_1.default.resolve(projectPath);
|
|
56
71
|
try {
|
|
57
72
|
require.resolve(pkg, { paths: [resolvePath] });
|
|
58
73
|
}
|
|
@@ -61,14 +76,19 @@ function ensurePackage(pkg, dev, pkgManager = undefined, tag = 'latest', project
|
|
|
61
76
|
}
|
|
62
77
|
}
|
|
63
78
|
exports.ensurePackage = ensurePackage;
|
|
79
|
+
/**
|
|
80
|
+
* A function that searches for the nearest package.json file starting from the provided search path or the current working directory if no search path is provided.
|
|
81
|
+
* It iterates through the directory structure going one level up at a time until it finds a package.json file. If no package.json file is found, it returns undefined.
|
|
82
|
+
* @deprecated Use findUp instead @see findUp
|
|
83
|
+
*/
|
|
64
84
|
function findPackageJson(searchPath) {
|
|
65
85
|
let currDir = searchPath !== null && searchPath !== void 0 ? searchPath : process.cwd();
|
|
66
86
|
while (currDir) {
|
|
67
|
-
const pkgJsonPath =
|
|
68
|
-
if (
|
|
87
|
+
const pkgJsonPath = node_path_1.default.join(currDir, 'package.json');
|
|
88
|
+
if (node_fs_1.default.existsSync(pkgJsonPath)) {
|
|
69
89
|
return pkgJsonPath;
|
|
70
90
|
}
|
|
71
|
-
const up =
|
|
91
|
+
const up = node_path_1.default.resolve(currDir, '..');
|
|
72
92
|
if (up === currDir) {
|
|
73
93
|
return undefined;
|
|
74
94
|
}
|
|
@@ -78,9 +98,9 @@ function findPackageJson(searchPath) {
|
|
|
78
98
|
}
|
|
79
99
|
exports.findPackageJson = findPackageJson;
|
|
80
100
|
function getPackageJson(searchPath) {
|
|
81
|
-
const pkgJsonPath =
|
|
101
|
+
const pkgJsonPath = findUp(['package.json'], searchPath !== null && searchPath !== void 0 ? searchPath : process.cwd());
|
|
82
102
|
if (pkgJsonPath) {
|
|
83
|
-
return JSON.parse(
|
|
103
|
+
return JSON.parse(node_fs_1.default.readFileSync(pkgJsonPath, 'utf-8'));
|
|
84
104
|
}
|
|
85
105
|
else {
|
|
86
106
|
return undefined;
|
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,
|
|
1
|
+
{"version":3,"file":"pkg-utils.js","sourceRoot":"","sources":["../../src/utils/pkg-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.generate = void 0;
|
|
16
|
-
const schema_generator_1 = require("../../prisma/schema-generator");
|
|
17
|
-
const path_1 = __importDefault(require("path"));
|
|
18
|
-
function generate(model, options, project, outDir) {
|
|
19
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
-
const prismaGenerator = new schema_generator_1.PrismaSchemaGenerator();
|
|
21
|
-
yield prismaGenerator.generate(model, {
|
|
22
|
-
provider: '@internal',
|
|
23
|
-
schemaPath: options.schemaPath,
|
|
24
|
-
output: path_1.default.join(outDir, 'delegate.prisma'),
|
|
25
|
-
overrideClientGenerationPath: path_1.default.join(outDir, '.delegate'),
|
|
26
|
-
mode: 'logical',
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
exports.generate = generate;
|
|
31
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/enhancer/delegate/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,oEAAsE;AACtE,gDAAwB;AAExB,SAAsB,QAAQ,CAAC,KAAY,EAAE,OAAsB,EAAE,OAAgB,EAAE,MAAc;;QACjG,MAAM,eAAe,GAAG,IAAI,wCAAqB,EAAE,CAAC;QACpD,MAAM,eAAe,CAAC,QAAQ,CAAC,KAAK,EAAE;YAClC,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC;YAC5C,4BAA4B,EAAE,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC;YAC5D,IAAI,EAAE,SAAS;SAClB,CAAC,CAAC;IACP,CAAC;CAAA;AATD,4BASC"}
|