zenstack 1.10.3 → 1.11.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 CHANGED
@@ -16,7 +16,7 @@
16
16
  <a href="https://twitter.com/zenstackhq">
17
17
  <img src="https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Fgithub.com%2Fzenstackhq%2Fzenstack">
18
18
  </a>
19
- <a href="https://go.zenstack.dev/chat">
19
+ <a href="https://discord.gg/Ykhr738dUe">
20
20
  <img src="https://img.shields.io/discord/1035538056146595961">
21
21
  </a>
22
22
  <a href="https://github.com/zenstackhq/zenstack/blob/main/LICENSE">
@@ -142,7 +142,7 @@ The following diagram gives a high-level architecture overview of ZenStack.
142
142
 
143
143
  - [Home](https://zenstack.dev)
144
144
  - [Documentation](https://zenstack.dev/docs)
145
- - [Community chat](https://go.zenstack.dev/chat)
145
+ - [Community chat](https://discord.gg/Ykhr738dUe)
146
146
  - [Twitter](https://twitter.com/zenstackhq)
147
147
  - [Blog](https://zenstack.dev/blog)
148
148
 
@@ -162,7 +162,7 @@ The following diagram gives a high-level architecture overview of ZenStack.
162
162
  - [SWR](https://github.com/vercel/swr) and [TanStack Query](https://github.com/TanStack/query) hooks generator
163
163
  - OpenAPI specification generator
164
164
  - [tRPC](https://trpc.io) router generator
165
- - 🙋🏻 [Request for a plugin](https://go.zenstack.dev/chat)
165
+ - 🙋🏻 [Request for a plugin](https://discord.gg/Ykhr738dUe)
166
166
 
167
167
  ### Framework adapters
168
168
 
@@ -171,7 +171,7 @@ The following diagram gives a high-level architecture overview of ZenStack.
171
171
  - [SvelteKit](https://zenstack.dev/docs/reference/server-adapters/sveltekit)
172
172
  - [Fastify](https://zenstack.dev/docs/reference/server-adapters/fastify)
173
173
  - [ExpressJS](https://zenstack.dev/docs/reference/server-adapters/express)
174
- - 🙋🏻 [Request for an adapter](https://go.zenstack.dev/chat)
174
+ - 🙋🏻 [Request for an adapter](https://discord.gg/Ykhr738dUe)
175
175
 
176
176
  ### Prisma schema extensions
177
177
 
@@ -179,7 +179,7 @@ The following diagram gives a high-level architecture overview of ZenStack.
179
179
  - [Multi-file schema and model inheritance](https://zenstack.dev/docs/guides/multiple-schema)
180
180
  - Strong-typed JSON field (coming soon)
181
181
  - Polymorphism (future)
182
- - 🙋🏻 [Request for an extension](https://go.zenstack.dev/chat)
182
+ - 🙋🏻 [Request for an extension](https://discord.gg/Ykhr738dUe)
183
183
 
184
184
  ## Examples
185
185
 
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": "1.10.3",
6
+ "version": "1.11.0",
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/sdk": "1.10.3",
98
- "@zenstackhq/language": "1.10.3"
97
+ "@zenstackhq/language": "1.11.0",
98
+ "@zenstackhq/sdk": "1.11.0"
99
99
  },
100
100
  "devDependencies": {
101
101
  "@prisma/client": "^4.8.0",
@@ -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": "1.10.3"
117
+ "@zenstackhq/runtime": "1.11.0"
118
118
  },
119
119
  "scripts": {
120
120
  "vscode:publish": "vsce publish --no-dependencies",
@@ -5,6 +5,8 @@ const ast_1 = require("@zenstackhq/language/ast");
5
5
  const sdk_1 = require("@zenstackhq/sdk");
6
6
  const langium_1 = require("langium");
7
7
  const vscode_uri_1 = require("vscode-uri");
8
+ const pkg_utils_1 = require("./pkg-utils");
9
+ const node_path_1 = require("node:path");
8
10
  function extractDataModelsWithAllowRules(model) {
9
11
  return model.declarations.filter((d) => (0, ast_1.isDataModel)(d) && d.attributes.some((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@@allow'; }));
10
12
  }
@@ -76,15 +78,19 @@ function getDataModelFieldReference(expr) {
76
78
  }
77
79
  exports.getDataModelFieldReference = getDataModelFieldReference;
78
80
  function resolveImportUri(imp) {
79
- if (imp.path === undefined || imp.path.length === 0) {
80
- return undefined;
81
+ var _a;
82
+ if (!imp.path)
83
+ return undefined; // This will return true if imp.path is undefined, null, or an empty string ("").
84
+ if (!imp.path.endsWith('.zmodel')) {
85
+ imp.path += '.zmodel';
81
86
  }
82
- const dirUri = vscode_uri_1.Utils.dirname((0, langium_1.getDocument)(imp).uri);
83
- let grammarPath = imp.path;
84
- if (!grammarPath.endsWith('.zmodel')) {
85
- grammarPath += '.zmodel';
87
+ if (!imp.path.startsWith('.') // Respect relative paths
88
+ && !(0, node_path_1.isAbsolute)(imp.path) // Respect Absolute paths
89
+ ) {
90
+ imp.path = (_a = (0, pkg_utils_1.findNodeModulesFile)(imp.path)) !== null && _a !== void 0 ? _a : imp.path;
86
91
  }
87
- return vscode_uri_1.Utils.resolvePath(dirUri, grammarPath);
92
+ const dirUri = vscode_uri_1.Utils.dirname((0, langium_1.getDocument)(imp).uri);
93
+ return vscode_uri_1.Utils.resolvePath(dirUri, imp.path);
88
94
  }
89
95
  exports.resolveImportUri = resolveImportUri;
90
96
  function resolveTransitiveImports(documents, model) {
@@ -1 +1 @@
1
- {"version":3,"file":"ast-utils.js","sourceRoot":"","sources":["../../src/utils/ast-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast-utils.js","sourceRoot":"","sources":["../../src/utils/ast-utils.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,18 @@ 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
+ /**
27
+ * Find a Node module/file given its name in a specific directory, with a fallback to the current working directory.
28
+ * If the name is empty, return undefined.
29
+ * Try to resolve the module/file using require.resolve with the specified directory as the starting point.
30
+ * Return the resolved path if successful, otherwise return undefined.
31
+ *
32
+ * @export
33
+ * @param {string} name The name of the module/file to find
34
+ * @param {string} [cwd=process.cwd()]
35
+ * @returns {*} Finds a specified module or file using require.resolve starting from a specified directory path, or the current working directory if not provided.
36
+ */
37
+ export declare function findNodeModulesFile(name: string, cwd?: string): string | undefined;
26
38
  export declare function installPackage(pkg: string, dev: boolean, pkgManager?: PackageManagers | undefined, tag?: string, projectPath?: string, exactVersion?: boolean): void;
27
39
  export declare function ensurePackage(pkg: string, dev: boolean, pkgManager?: PackageManagers | undefined, tag?: string, projectPath?: string, exactVersion?: boolean): void;
28
40
  /**
@@ -3,7 +3,7 @@ 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.findNodeModulesFile = 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");
@@ -35,6 +35,31 @@ function findUp(names, cwd = process.cwd(), multiple = false, result = []) {
35
35
  return findUp(names, up, multiple, result);
36
36
  }
37
37
  exports.findUp = findUp;
38
+ /**
39
+ * Find a Node module/file given its name in a specific directory, with a fallback to the current working directory.
40
+ * If the name is empty, return undefined.
41
+ * Try to resolve the module/file using require.resolve with the specified directory as the starting point.
42
+ * Return the resolved path if successful, otherwise return undefined.
43
+ *
44
+ * @export
45
+ * @param {string} name The name of the module/file to find
46
+ * @param {string} [cwd=process.cwd()]
47
+ * @returns {*} Finds a specified module or file using require.resolve starting from a specified directory path, or the current working directory if not provided.
48
+ */
49
+ function findNodeModulesFile(name, cwd = process.cwd()) {
50
+ if (!name)
51
+ return undefined;
52
+ try {
53
+ // Use require.resolve to find the module/file. The paths option allows specifying the directory to start from.
54
+ const resolvedPath = require.resolve(name, { paths: [cwd] });
55
+ return resolvedPath;
56
+ }
57
+ catch (error) {
58
+ // If require.resolve fails to find the module/file, it will throw an error.
59
+ return undefined;
60
+ }
61
+ }
62
+ exports.findNodeModulesFile = findNodeModulesFile;
38
63
  function getPackageManager(projectPath = '.') {
39
64
  const lockFile = findUp(['yarn.lock', 'pnpm-lock.yaml', 'package-lock.json'], projectPath);
40
65
  if (!lockFile) {
@@ -1 +1 @@
1
- {"version":3,"file":"pkg-utils.js","sourceRoot":"","sources":["../../src/utils/pkg-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pkg-utils.js","sourceRoot":"","sources":["../../src/utils/pkg-utils.ts"],"names":[],"mappings":"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"}