zenstack 1.0.0-alpha.98 → 1.0.0-beta.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/README.md +53 -20
- package/cli/cli-util.d.ts +4 -1
- package/cli/cli-util.js +62 -8
- package/cli/cli-util.js.map +1 -1
- package/cli/config.d.ts +19 -0
- package/cli/config.js +67 -0
- package/cli/config.js.map +1 -0
- package/cli/index.js +16 -0
- package/cli/index.js.map +1 -1
- package/cli/plugin-runner.d.ts +1 -1
- package/cli/plugin-runner.js +24 -19
- package/cli/plugin-runner.js.map +1 -1
- package/language-server/utils.d.ts +1 -5
- package/language-server/utils.js +3 -20
- package/language-server/utils.js.map +1 -1
- package/language-server/validator/datamodel-validator.d.ts +7 -0
- package/language-server/validator/datamodel-validator.js +66 -22
- package/language-server/validator/datamodel-validator.js.map +1 -1
- package/language-server/validator/expression-validator.js +7 -7
- package/language-server/validator/expression-validator.js.map +1 -1
- package/language-server/validator/schema-validator.d.ts +4 -1
- package/language-server/validator/schema-validator.js +25 -5
- package/language-server/validator/schema-validator.js.map +1 -1
- package/language-server/validator/utils.d.ts +1 -1
- package/language-server/validator/utils.js +10 -1
- package/language-server/validator/utils.js.map +1 -1
- package/language-server/validator/zmodel-validator.d.ts +2 -0
- package/language-server/validator/zmodel-validator.js +5 -1
- package/language-server/validator/zmodel-validator.js.map +1 -1
- package/language-server/zmodel-code-action.d.ts +2 -1
- package/language-server/zmodel-code-action.js +19 -10
- package/language-server/zmodel-code-action.js.map +1 -1
- package/language-server/zmodel-definition.d.ts +7 -0
- package/language-server/zmodel-definition.js +31 -0
- package/language-server/zmodel-definition.js.map +1 -0
- package/language-server/zmodel-formatter.js +2 -2
- package/language-server/zmodel-formatter.js.map +1 -1
- package/language-server/zmodel-linker.d.ts +1 -0
- package/language-server/zmodel-linker.js +24 -6
- package/language-server/zmodel-linker.js.map +1 -1
- package/language-server/zmodel-module.js +4 -1
- package/language-server/zmodel-module.js.map +1 -1
- package/language-server/zmodel-scope.d.ts +7 -1
- package/language-server/zmodel-scope.js +57 -1
- package/language-server/zmodel-scope.js.map +1 -1
- package/language-server/zmodel-workspace-manager.d.ts +5 -1
- package/language-server/zmodel-workspace-manager.js +101 -0
- package/language-server/zmodel-workspace-manager.js.map +1 -1
- package/package.json +21 -16
- package/plugins/access-policy/expression-writer.js +37 -12
- package/plugins/access-policy/expression-writer.js.map +1 -1
- package/plugins/access-policy/policy-guard-generator.js +94 -71
- package/plugins/access-policy/policy-guard-generator.js.map +1 -1
- package/plugins/access-policy/typescript-expression-transformer.d.ts +3 -3
- package/plugins/access-policy/typescript-expression-transformer.js +84 -25
- package/plugins/access-policy/typescript-expression-transformer.js.map +1 -1
- package/plugins/access-policy/utils.d.ts +2 -2
- package/plugins/access-policy/utils.js +2 -2
- package/plugins/access-policy/utils.js.map +1 -1
- package/plugins/access-policy/zod-schema-generator.d.ts +1 -1
- package/plugins/access-policy/zod-schema-generator.js +6 -4
- package/plugins/access-policy/zod-schema-generator.js.map +1 -1
- package/plugins/model-meta/index.js +17 -28
- package/plugins/model-meta/index.js.map +1 -1
- package/plugins/plugin-utils.d.ts +0 -5
- package/plugins/plugin-utils.js +13 -19
- package/plugins/plugin-utils.js.map +1 -1
- package/plugins/prisma/index.d.ts +2 -1
- package/plugins/prisma/index.js +2 -2
- package/plugins/prisma/index.js.map +1 -1
- package/plugins/prisma/prisma-builder.d.ts +3 -2
- package/plugins/prisma/prisma-builder.js +20 -5
- package/plugins/prisma/prisma-builder.js.map +1 -1
- package/plugins/prisma/schema-generator.d.ts +4 -1
- package/plugins/prisma/schema-generator.js +128 -29
- package/plugins/prisma/schema-generator.js.map +1 -1
- package/plugins/zod/generator.js +16 -6
- package/plugins/zod/generator.js.map +1 -1
- package/plugins/zod/transformer.d.ts +2 -2
- package/plugins/zod/transformer.js +56 -48
- package/plugins/zod/transformer.js.map +1 -1
- package/res/starter.zmodel +4 -4
- package/res/stdlib.zmodel +74 -61
- package/telemetry.d.ts +1 -1
- package/telemetry.js +2 -2
- package/telemetry.js.map +1 -1
- package/utils/ast-utils.d.ts +9 -2
- package/utils/ast-utils.js +86 -5
- package/utils/ast-utils.js.map +1 -1
- package/utils/version-utils.js +1 -0
- package/utils/version-utils.js.map +1 -1
package/README.md
CHANGED
|
@@ -21,13 +21,17 @@
|
|
|
21
21
|
|
|
22
22
|
## What it is
|
|
23
23
|
|
|
24
|
-
ZenStack is a toolkit that simplifies the development of a web app's backend. It supercharges [Prisma ORM](https://prisma.io) with a powerful access control layer and unleashes its full potential for
|
|
24
|
+
ZenStack is a Node.js/TypeScript toolkit that simplifies the development of a web app's backend. It supercharges [Prisma ORM](https://prisma.io) with a powerful access control layer and unleashes its full potential for full-stack development.
|
|
25
25
|
|
|
26
26
|
Our goal is to let you save time writing boilerplate code and focus on building real features!
|
|
27
27
|
|
|
28
28
|
## How it works
|
|
29
29
|
|
|
30
|
-
ZenStack
|
|
30
|
+
ZenStack incrementally extends Prisma's power with the following four layers:
|
|
31
|
+
|
|
32
|
+
### 1. ZModel - an extended Prisma schema language
|
|
33
|
+
|
|
34
|
+
ZenStack introduces a data modeling language called "ZModel" - a superset of Prisma schema language. It extended Prisma schema with custom attributes and functions and, based on that, implemented a flexible access control layer around Prisma.
|
|
31
35
|
|
|
32
36
|
```prisma
|
|
33
37
|
// schema.zmodel
|
|
@@ -47,34 +51,58 @@ model Post {
|
|
|
47
51
|
}
|
|
48
52
|
```
|
|
49
53
|
|
|
50
|
-
|
|
54
|
+
The `zenstack` CLI transpiles the ZModel into a standard Prisma schema, which you can use with the regular Prisma workflows.
|
|
55
|
+
|
|
56
|
+
### 2. Runtime enhancements to Prisma client
|
|
57
|
+
|
|
58
|
+
At runtime, transparent proxies are created around Prisma clients for intercepting queries and mutations to enforce access policies.
|
|
51
59
|
|
|
52
60
|
```ts
|
|
53
|
-
|
|
61
|
+
import { withPolicy } from '@zenstackhq/runtime';
|
|
62
|
+
|
|
63
|
+
// a regular Prisma client
|
|
64
|
+
const prisma = new PrismaClient();
|
|
65
|
+
|
|
66
|
+
async function getPosts(userId: string) {
|
|
67
|
+
// create an enhanced Prisma client that has access control enabled
|
|
68
|
+
const enhanced = withPolicy(prisma, { user: userId });
|
|
69
|
+
|
|
70
|
+
// only posts that're visible to the user will be returned
|
|
71
|
+
return enhanced.post.findMany();
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 3. Automatic RESTful APIs through server adapters
|
|
76
|
+
|
|
77
|
+
Server adapter packages help you wrap an access-control-enabled Prisma client into backend CRUD APIs that can be safely called from the frontend. Here's an example for Next.js:
|
|
78
|
+
|
|
79
|
+
```ts
|
|
80
|
+
// pages/api/model/[...path].ts
|
|
54
81
|
|
|
55
82
|
import { requestHandler } from '@zenstackhq/next';
|
|
56
83
|
import { withPolicy } from '@zenstackhq/runtime';
|
|
57
84
|
import { getSessionUser } from '@lib/auth';
|
|
58
85
|
import { prisma } from '@lib/db';
|
|
59
86
|
|
|
87
|
+
// Mount Prisma-style APIs: "/api/model/post/findMany", "/api/model/post/create", etc.
|
|
88
|
+
// Can be configured to provide standard RESTful APIs (using JSON:API) instead.
|
|
60
89
|
export default requestHandler({
|
|
61
90
|
getPrisma: (req, res) => withPolicy(prisma, { user: getSessionUser(req, res) }),
|
|
62
91
|
});
|
|
63
92
|
```
|
|
64
93
|
|
|
65
|
-
|
|
94
|
+
### 4. Generated client libraries (hooks) for data access
|
|
95
|
+
|
|
96
|
+
Plugins can generate strong-typed client libraries that talk to the aforementioned APIs. Here's an example for React:
|
|
66
97
|
|
|
67
98
|
```tsx
|
|
68
|
-
//
|
|
99
|
+
// components/MyPosts.tsx
|
|
69
100
|
|
|
70
|
-
import {
|
|
101
|
+
import { useFindManyPost } from '@lib/hooks';
|
|
71
102
|
|
|
72
103
|
const MyPosts = () => {
|
|
73
|
-
// Post CRUD hooks
|
|
74
|
-
const { findMany } = usePost();
|
|
75
|
-
|
|
76
104
|
// list all posts that're visible to the current user, together with their authors
|
|
77
|
-
const { data: posts } =
|
|
105
|
+
const { data: posts } = useFindManyPost({
|
|
78
106
|
include: { author: true },
|
|
79
107
|
orderBy: { createdAt: 'desc' },
|
|
80
108
|
});
|
|
@@ -91,7 +119,9 @@ const MyPosts = () => {
|
|
|
91
119
|
};
|
|
92
120
|
```
|
|
93
121
|
|
|
94
|
-
|
|
122
|
+
## Architecture
|
|
123
|
+
|
|
124
|
+
The following diagram gives a high-level architecture overview of ZenStack.
|
|
95
125
|
|
|
96
126
|

|
|
97
127
|
|
|
@@ -116,33 +146,36 @@ The following diagram gives a high-level overview of how it works.
|
|
|
116
146
|
|
|
117
147
|
- Prisma schema generator
|
|
118
148
|
- Zod schema generator
|
|
119
|
-
-
|
|
149
|
+
- [SWR](https://github.com/vercel/swr) and [TanStack Query](https://github.com/TanStack/query) hooks generator
|
|
120
150
|
- OpenAPI specification generator
|
|
121
151
|
- [tRPC](https://trpc.io) router generator
|
|
122
152
|
- 🙋🏻 [Request for a plugin](https://go.zenstack.dev/chat)
|
|
123
153
|
|
|
124
154
|
### Framework adapters
|
|
125
155
|
|
|
126
|
-
- [Next.js](https://zenstack.dev/docs/reference/server-adapters/next)
|
|
156
|
+
- [Next.js](https://zenstack.dev/docs/reference/server-adapters/next) (including support for the new "app directory" in Next.js 13)
|
|
157
|
+
- [SvelteKit](https://zenstack.dev/docs/reference/server-adapters/sveltekit)
|
|
127
158
|
- [Fastify](https://zenstack.dev/docs/reference/server-adapters/fastify)
|
|
128
159
|
- [ExpressJS](https://zenstack.dev/docs/reference/server-adapters/express)
|
|
129
160
|
- Nuxt.js (Future)
|
|
130
|
-
- SvelteKit (Future)
|
|
131
161
|
- 🙋🏻 [Request for an adapter](https://go.zenstack.dev/chat)
|
|
132
162
|
|
|
133
163
|
### Prisma schema extensions
|
|
134
164
|
|
|
135
165
|
- [Custom attributes and functions](https://zenstack.dev/docs/reference/zmodel-language#custom-attributes-and-functions)
|
|
136
|
-
- Multi-file schema (
|
|
137
|
-
-
|
|
166
|
+
- [Multi-file schema and model inheritance](https://zenstack.dev/docs/guides/multiple-schema)
|
|
167
|
+
- Strong-typed JSON field (coming soon)
|
|
168
|
+
- Polymorphism (future)
|
|
138
169
|
- 🙋🏻 [Request for an extension](https://go.zenstack.dev/chat)
|
|
139
170
|
|
|
140
171
|
## Examples
|
|
141
172
|
|
|
142
|
-
Check out the [Collaborative Todo App](https://zenstack-todo.vercel.app/) for a running example. You can find
|
|
173
|
+
Check out the [Collaborative Todo App](https://zenstack-todo.vercel.app/) for a running example. You can find different implementations below:
|
|
143
174
|
|
|
144
|
-
- [Next.js +
|
|
145
|
-
- [Next.js +
|
|
175
|
+
- [Next.js + SWR hooks](https://github.com/zenstackhq/sample-todo-nextjs)
|
|
176
|
+
- [Next.js + TanStack Query](https://github.com/zenstackhq/sample-todo-nextjs-tanstack)
|
|
177
|
+
- [Next.js + tRPC](https://github.com/zenstackhq/sample-todo-trpc)
|
|
178
|
+
- [SvelteKit + TanStack Query](https://github.com/zenstackhq/sample-todo-sveltekit)
|
|
146
179
|
|
|
147
180
|
## Community
|
|
148
181
|
|
package/cli/cli-util.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Model } from '@zenstackhq/language/ast';
|
|
2
|
-
import { LangiumDocument } from 'langium';
|
|
2
|
+
import { LangiumDocument, LangiumDocuments } from 'langium';
|
|
3
|
+
import { URI } from 'vscode-uri';
|
|
3
4
|
import { ZModelServices } from '../language-server/zmodel-module';
|
|
4
5
|
import { PackageManagers } from '../utils/pkg-utils';
|
|
5
6
|
/**
|
|
@@ -13,6 +14,8 @@ export declare function initProject(projectPath: string, prismaSchema: string |
|
|
|
13
14
|
* @returns Parsed and validated AST
|
|
14
15
|
*/
|
|
15
16
|
export declare function loadDocument(fileName: string): Promise<Model>;
|
|
17
|
+
export declare function eagerLoadAllImports(document: LangiumDocument, documents: LangiumDocuments, uris?: Set<string>): URI[];
|
|
18
|
+
export declare function mergeImportsDeclarations(documents: LangiumDocuments, model: Model): void;
|
|
16
19
|
export declare function getPluginDocuments(services: ZModelServices, fileName: string): Promise<LangiumDocument[]>;
|
|
17
20
|
export declare function runPlugins(options: {
|
|
18
21
|
schema: string;
|
package/cli/cli-util.js
CHANGED
|
@@ -12,12 +12,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.dumpInfo = exports.runPlugins = exports.getPluginDocuments = exports.loadDocument = exports.initProject = void 0;
|
|
15
|
+
exports.dumpInfo = exports.runPlugins = exports.getPluginDocuments = exports.mergeImportsDeclarations = exports.eagerLoadAllImports = exports.loadDocument = exports.initProject = void 0;
|
|
16
16
|
const ast_1 = require("@zenstackhq/language/ast");
|
|
17
17
|
const sdk_1 = require("@zenstackhq/sdk");
|
|
18
18
|
const colors_1 = __importDefault(require("colors"));
|
|
19
19
|
const fs_1 = __importDefault(require("fs"));
|
|
20
20
|
const get_latest_version_1 = __importDefault(require("get-latest-version"));
|
|
21
|
+
const langium_1 = require("langium");
|
|
21
22
|
const node_1 = require("langium/node");
|
|
22
23
|
const ora_1 = __importDefault(require("ora"));
|
|
23
24
|
const path_1 = __importDefault(require("path"));
|
|
@@ -25,6 +26,7 @@ const semver_1 = __importDefault(require("semver"));
|
|
|
25
26
|
const vscode_uri_1 = require("vscode-uri");
|
|
26
27
|
const constants_1 = require("../language-server/constants");
|
|
27
28
|
const zmodel_module_1 = require("../language-server/zmodel-module");
|
|
29
|
+
const ast_utils_1 = require("../utils/ast-utils");
|
|
28
30
|
const pkg_utils_1 = require("../utils/pkg-utils");
|
|
29
31
|
const version_utils_1 = require("../utils/version-utils");
|
|
30
32
|
const cli_error_1 = require("./cli-error");
|
|
@@ -91,7 +93,6 @@ exports.initProject = initProject;
|
|
|
91
93
|
* @returns Parsed and validated AST
|
|
92
94
|
*/
|
|
93
95
|
function loadDocument(fileName) {
|
|
94
|
-
var _a;
|
|
95
96
|
return __awaiter(this, void 0, void 0, function* () {
|
|
96
97
|
const services = (0, zmodel_module_1.createZModelServices)(node_1.NodeFileSystem).ZModel;
|
|
97
98
|
const extensions = services.LanguageMetaData.fileExtensions;
|
|
@@ -107,13 +108,20 @@ function loadDocument(fileName) {
|
|
|
107
108
|
const stdLib = services.shared.workspace.LangiumDocuments.getOrCreateDocument(vscode_uri_1.URI.file(path_1.default.resolve(path_1.default.join(__dirname, '../res', constants_1.STD_LIB_MODULE_NAME))));
|
|
108
109
|
// load documents provided by plugins
|
|
109
110
|
const pluginDocuments = yield getPluginDocuments(services, fileName);
|
|
111
|
+
const langiumDocuments = services.shared.workspace.LangiumDocuments;
|
|
110
112
|
// load the document
|
|
111
|
-
const document =
|
|
113
|
+
const document = langiumDocuments.getOrCreateDocument(vscode_uri_1.URI.file(path_1.default.resolve(fileName)));
|
|
114
|
+
// load all imports
|
|
115
|
+
const importedURIs = eagerLoadAllImports(document, langiumDocuments);
|
|
116
|
+
const importedDocuments = importedURIs.map((uri) => langiumDocuments.getOrCreateDocument(uri));
|
|
112
117
|
// build the document together with standard library and plugin modules
|
|
113
|
-
yield services.shared.workspace.DocumentBuilder.build([stdLib, ...pluginDocuments, document], {
|
|
118
|
+
yield services.shared.workspace.DocumentBuilder.build([stdLib, ...pluginDocuments, document, ...importedDocuments], {
|
|
114
119
|
validationChecks: 'all',
|
|
115
120
|
});
|
|
116
|
-
const validationErrors =
|
|
121
|
+
const validationErrors = langiumDocuments.all
|
|
122
|
+
.flatMap((d) => { var _a; return (_a = d.diagnostics) !== null && _a !== void 0 ? _a : []; })
|
|
123
|
+
.filter((e) => e.severity === 1)
|
|
124
|
+
.toArray();
|
|
117
125
|
if (validationErrors.length > 0) {
|
|
118
126
|
console.error(colors_1.default.red('Validation errors:'));
|
|
119
127
|
for (const validationError of validationErrors) {
|
|
@@ -121,10 +129,56 @@ function loadDocument(fileName) {
|
|
|
121
129
|
}
|
|
122
130
|
throw new cli_error_1.CliError('schema validation errors');
|
|
123
131
|
}
|
|
124
|
-
|
|
132
|
+
const model = document.parseResult.value;
|
|
133
|
+
mergeImportsDeclarations(langiumDocuments, model);
|
|
134
|
+
validationAfterMerge(model);
|
|
135
|
+
(0, ast_utils_1.mergeBaseModel)(model);
|
|
136
|
+
return model;
|
|
125
137
|
});
|
|
126
138
|
}
|
|
127
139
|
exports.loadDocument = loadDocument;
|
|
140
|
+
// check global unique thing after merge imports
|
|
141
|
+
function validationAfterMerge(model) {
|
|
142
|
+
const dataSources = model.declarations.filter((d) => (0, ast_1.isDataSource)(d));
|
|
143
|
+
if (dataSources.length == 0) {
|
|
144
|
+
console.error(colors_1.default.red('Validation errors: Model must define a datasource'));
|
|
145
|
+
throw new cli_error_1.CliError('schema validation errors');
|
|
146
|
+
}
|
|
147
|
+
else if (dataSources.length > 1) {
|
|
148
|
+
console.error(colors_1.default.red('Validation errors: Multiple datasource declarations are not allowed'));
|
|
149
|
+
throw new cli_error_1.CliError('schema validation errors');
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
function eagerLoadAllImports(document, documents, uris = new Set()) {
|
|
153
|
+
const uriString = document.uri.toString();
|
|
154
|
+
if (!uris.has(uriString)) {
|
|
155
|
+
uris.add(uriString);
|
|
156
|
+
const model = document.parseResult.value;
|
|
157
|
+
for (const imp of model.imports) {
|
|
158
|
+
const importedModel = (0, ast_utils_1.resolveImport)(documents, imp);
|
|
159
|
+
if (importedModel) {
|
|
160
|
+
const importedDoc = (0, langium_1.getDocument)(importedModel);
|
|
161
|
+
eagerLoadAllImports(importedDoc, documents, uris);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return Array.from(uris)
|
|
166
|
+
.filter((x) => uriString != x)
|
|
167
|
+
.map((e) => vscode_uri_1.URI.parse(e));
|
|
168
|
+
}
|
|
169
|
+
exports.eagerLoadAllImports = eagerLoadAllImports;
|
|
170
|
+
function mergeImportsDeclarations(documents, model) {
|
|
171
|
+
const importedModels = (0, ast_utils_1.resolveTransitiveImports)(documents, model);
|
|
172
|
+
const importedDeclarations = importedModels.flatMap((m) => m.declarations);
|
|
173
|
+
importedDeclarations.forEach((d) => {
|
|
174
|
+
const mutable = d;
|
|
175
|
+
// The plugin might use $container to access the model
|
|
176
|
+
// need to make sure it is always resolved to the main model
|
|
177
|
+
mutable.$container = model;
|
|
178
|
+
});
|
|
179
|
+
model.declarations.push(...importedDeclarations);
|
|
180
|
+
}
|
|
181
|
+
exports.mergeImportsDeclarations = mergeImportsDeclarations;
|
|
128
182
|
function getPluginDocuments(services, fileName) {
|
|
129
183
|
return __awaiter(this, void 0, void 0, function* () {
|
|
130
184
|
// parse the user document (without validation)
|
|
@@ -146,7 +200,7 @@ function getPluginDocuments(services, fileName) {
|
|
|
146
200
|
}
|
|
147
201
|
}
|
|
148
202
|
catch (_a) {
|
|
149
|
-
|
|
203
|
+
// noop
|
|
150
204
|
}
|
|
151
205
|
}
|
|
152
206
|
}
|
|
@@ -169,7 +223,7 @@ function runPlugins(options) {
|
|
|
169
223
|
}
|
|
170
224
|
catch (err) {
|
|
171
225
|
if (err instanceof sdk_1.PluginError) {
|
|
172
|
-
console.error(colors_1.default.red(err.message));
|
|
226
|
+
console.error(colors_1.default.red(`${err.plugin}: ${err.message}`));
|
|
173
227
|
throw new cli_error_1.CliError(err.message);
|
|
174
228
|
}
|
|
175
229
|
else {
|
package/cli/cli-util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-util.js","sourceRoot":"","sources":["../../src/cli/cli-util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"cli-util.js","sourceRoot":"","sources":["../../src/cli/cli-util.ts"],"names":[],"mappings":"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"}
|
package/cli/config.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
declare const schema: z.ZodObject<{
|
|
3
|
+
guardFieldName: z.ZodDefault<z.ZodString>;
|
|
4
|
+
transactionFieldName: z.ZodDefault<z.ZodString>;
|
|
5
|
+
}, "strict", z.ZodTypeAny, {
|
|
6
|
+
guardFieldName: string;
|
|
7
|
+
transactionFieldName: string;
|
|
8
|
+
}, {
|
|
9
|
+
guardFieldName?: string | undefined;
|
|
10
|
+
transactionFieldName?: string | undefined;
|
|
11
|
+
}>;
|
|
12
|
+
export declare type ConfigType = z.infer<typeof schema>;
|
|
13
|
+
export declare let config: ConfigType;
|
|
14
|
+
/**
|
|
15
|
+
* Loads and validates CLI configuration file.
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
export declare function loadConfig(filename: string): void;
|
|
19
|
+
export {};
|
package/cli/config.js
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.loadConfig = exports.config = void 0;
|
|
30
|
+
const sdk_1 = require("@zenstackhq/sdk");
|
|
31
|
+
const fs_1 = __importDefault(require("fs"));
|
|
32
|
+
const zod_1 = __importStar(require("zod"));
|
|
33
|
+
const zod_validation_error_1 = require("zod-validation-error");
|
|
34
|
+
const cli_error_1 = require("./cli-error");
|
|
35
|
+
const schema = zod_1.default
|
|
36
|
+
.object({
|
|
37
|
+
guardFieldName: zod_1.default.string().default(sdk_1.GUARD_FIELD_NAME),
|
|
38
|
+
transactionFieldName: zod_1.default.string().default(sdk_1.TRANSACTION_FIELD_NAME),
|
|
39
|
+
})
|
|
40
|
+
.strict();
|
|
41
|
+
exports.config = schema.parse({});
|
|
42
|
+
/**
|
|
43
|
+
* Loads and validates CLI configuration file.
|
|
44
|
+
* @returns
|
|
45
|
+
*/
|
|
46
|
+
function loadConfig(filename) {
|
|
47
|
+
try {
|
|
48
|
+
const fileData = fs_1.default.readFileSync(filename, `utf-8`);
|
|
49
|
+
const content = JSON.parse(fileData);
|
|
50
|
+
exports.config = schema.parse(content);
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
if ((err === null || err === void 0 ? void 0 : err.code) === `ENOENT`) {
|
|
55
|
+
throw new cli_error_1.CliError(`Config file could not be found: ${filename}`);
|
|
56
|
+
}
|
|
57
|
+
if (err instanceof SyntaxError) {
|
|
58
|
+
throw new cli_error_1.CliError(`Config is not a valid JSON file: ${filename}`);
|
|
59
|
+
}
|
|
60
|
+
if (err instanceof zod_1.ZodError) {
|
|
61
|
+
throw new cli_error_1.CliError(`Config file ${filename} is not valid: ${(0, zod_validation_error_1.fromZodError)(err)}`);
|
|
62
|
+
}
|
|
63
|
+
throw new cli_error_1.CliError(`Error loading config: ${filename}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.loadConfig = loadConfig;
|
|
67
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA2E;AAC3E,4CAAoB;AACpB,2CAAkC;AAClC,+DAAoD;AACpD,2CAAuC;AAEvC,MAAM,MAAM,GAAG,aAAC;KACX,MAAM,CAAC;IACJ,cAAc,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,sBAAgB,CAAC;IACpD,oBAAoB,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,4BAAsB,CAAC;CACnE,CAAC;KACD,MAAM,EAAE,CAAC;AAIH,QAAA,MAAM,GAAe,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAEjD;;;GAGG;AACH,SAAgB,UAAU,CAAC,QAAgB;IACvC,IAAI;QACA,MAAM,QAAQ,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrC,cAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,8DAA8D;KACjE;IAAC,OAAO,GAAQ,EAAE;QACf,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,MAAK,QAAQ,EAAE;YACxB,MAAM,IAAI,oBAAQ,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;SACrE;QACD,IAAI,GAAG,YAAY,WAAW,EAAE;YAC5B,MAAM,IAAI,oBAAQ,CAAC,oCAAoC,QAAQ,EAAE,CAAC,CAAC;SACtE;QACD,IAAI,GAAG,YAAY,cAAQ,EAAE;YACzB,MAAM,IAAI,oBAAQ,CAAC,eAAe,QAAQ,kBAAkB,IAAA,mCAAY,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACpF;QACD,MAAM,IAAI,oBAAQ,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;KAC3D;AACL,CAAC;AAlBD,gCAkBC"}
|
package/cli/index.js
CHANGED
|
@@ -40,13 +40,16 @@ exports.createProgram = exports.generateAction = exports.infoAction = exports.in
|
|
|
40
40
|
const module_1 = require("@zenstackhq/language/module");
|
|
41
41
|
const colors_1 = __importDefault(require("colors"));
|
|
42
42
|
const commander_1 = require("commander");
|
|
43
|
+
const fs_1 = __importDefault(require("fs"));
|
|
43
44
|
const semver = __importStar(require("semver"));
|
|
44
45
|
const telemetry_1 = __importDefault(require("../telemetry"));
|
|
45
46
|
const version_utils_1 = require("../utils/version-utils");
|
|
46
47
|
const cli_error_1 = require("./cli-error");
|
|
47
48
|
const cli_util_1 = require("./cli-util");
|
|
49
|
+
const config_1 = require("./config");
|
|
48
50
|
// required minimal version of Prisma
|
|
49
51
|
exports.requiredPrismaVersion = '4.0.0';
|
|
52
|
+
const DEFAULT_CONFIG_FILE = 'zenstack.config.json';
|
|
50
53
|
const initAction = (projectPath, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
51
54
|
yield telemetry_1.default.trackSpan('cli:command:start', 'cli:command:complete', 'cli:command:error', { command: 'init' }, () => (0, cli_util_1.initProject)(projectPath, options.prisma, options.packageManager, options.tag));
|
|
52
55
|
});
|
|
@@ -87,6 +90,7 @@ function createProgram() {
|
|
|
87
90
|
.showHelpAfterError()
|
|
88
91
|
.showSuggestionAfterError();
|
|
89
92
|
const schemaOption = new commander_1.Option('--schema <file>', `schema file (with extension ${schemaExtensions})`).default('./schema.zmodel');
|
|
93
|
+
const configOption = new commander_1.Option('-c, --config [file]', 'config file');
|
|
90
94
|
const pmOption = new commander_1.Option('-p, --package-manager <pm>', 'package manager to use').choices([
|
|
91
95
|
'npm',
|
|
92
96
|
'yarn',
|
|
@@ -101,6 +105,7 @@ function createProgram() {
|
|
|
101
105
|
program
|
|
102
106
|
.command('init')
|
|
103
107
|
.description('Initialize an existing project for ZenStack.')
|
|
108
|
+
.addOption(configOption)
|
|
104
109
|
.addOption(pmOption)
|
|
105
110
|
.addOption(new commander_1.Option('--prisma <file>', 'location of Prisma schema file to bootstrap from'))
|
|
106
111
|
.addOption(new commander_1.Option('--tag [tag]', 'the NPM package tag to use when installing dependencies'))
|
|
@@ -110,9 +115,20 @@ function createProgram() {
|
|
|
110
115
|
.command('generate')
|
|
111
116
|
.description('Run code generation.')
|
|
112
117
|
.addOption(schemaOption)
|
|
118
|
+
.addOption(configOption)
|
|
113
119
|
.addOption(pmOption)
|
|
114
120
|
.addOption(noDependencyCheck)
|
|
115
121
|
.action(exports.generateAction);
|
|
122
|
+
// make sure config is loaded before actions run
|
|
123
|
+
program.hook('preAction', (_, actionCommand) => __awaiter(this, void 0, void 0, function* () {
|
|
124
|
+
let configFile = actionCommand.opts().config;
|
|
125
|
+
if (!configFile && fs_1.default.existsSync(DEFAULT_CONFIG_FILE)) {
|
|
126
|
+
configFile = DEFAULT_CONFIG_FILE;
|
|
127
|
+
}
|
|
128
|
+
if (configFile) {
|
|
129
|
+
(0, config_1.loadConfig)(configFile);
|
|
130
|
+
}
|
|
131
|
+
}));
|
|
116
132
|
return program;
|
|
117
133
|
}
|
|
118
134
|
exports.createProgram = createProgram;
|
package/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAuD;AACvD,wDAAqE;AACrE,oDAA4B;AAC5B,yCAA4C;AAC5C,+CAAiC;AACjC,6DAAqC;AAErC,0DAAoD;AACpD,2CAAuC;AACvC,yCAA+D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/cli/plugin-runner.d.ts
CHANGED
package/cli/plugin-runner.js
CHANGED
|
@@ -21,6 +21,8 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
21
21
|
const ora_1 = __importDefault(require("ora"));
|
|
22
22
|
const path_1 = __importDefault(require("path"));
|
|
23
23
|
const telemetry_1 = __importDefault(require("../telemetry"));
|
|
24
|
+
const version_utils_1 = require("../utils/version-utils");
|
|
25
|
+
const config_1 = require("./config");
|
|
24
26
|
/**
|
|
25
27
|
* ZenStack code generator
|
|
26
28
|
*/
|
|
@@ -30,7 +32,7 @@ class PluginRunner {
|
|
|
30
32
|
*/
|
|
31
33
|
run(context) {
|
|
32
34
|
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
-
const version =
|
|
35
|
+
const version = (0, version_utils_1.getVersion)();
|
|
34
36
|
console.log(colors_1.default.bold(`⌛️ ZenStack CLI v${version}, running plugins`));
|
|
35
37
|
const plugins = [];
|
|
36
38
|
const pluginDecls = context.schema.declarations.filter((d) => (0, ast_1.isPlugin)(d));
|
|
@@ -38,19 +40,10 @@ class PluginRunner {
|
|
|
38
40
|
const allPluginProviders = prereqPlugins.concat(pluginDecls
|
|
39
41
|
.map((p) => this.getPluginProvider(p))
|
|
40
42
|
.filter((p) => !!p && !prereqPlugins.includes(p)));
|
|
41
|
-
let prismaOutput = './prisma/schema.prisma';
|
|
43
|
+
let prismaOutput = (0, sdk_1.resolvePath)('./prisma/schema.prisma', { schemaPath: context.schemaPath, name: '' });
|
|
42
44
|
for (const pluginProvider of allPluginProviders) {
|
|
43
45
|
const plugin = pluginDecls.find((p) => this.getPluginProvider(p) === pluginProvider);
|
|
44
46
|
if (plugin) {
|
|
45
|
-
const options = { schemaPath: context.schemaPath };
|
|
46
|
-
plugin.fields.forEach((f) => {
|
|
47
|
-
var _a;
|
|
48
|
-
const value = (_a = (0, sdk_1.getLiteral)(f.value)) !== null && _a !== void 0 ? _a : (0, sdk_1.getLiteralArray)(f.value);
|
|
49
|
-
if (value === undefined) {
|
|
50
|
-
throw new sdk_1.PluginError(`Invalid plugin value for ${f.name}`);
|
|
51
|
-
}
|
|
52
|
-
options[f.name] = value;
|
|
53
|
-
});
|
|
54
47
|
const pluginModulePath = this.getPluginModulePath(pluginProvider);
|
|
55
48
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
49
|
let pluginModule;
|
|
@@ -59,31 +52,42 @@ class PluginRunner {
|
|
|
59
52
|
}
|
|
60
53
|
catch (err) {
|
|
61
54
|
console.error(`Unable to load plugin module ${pluginProvider}: ${pluginModulePath}, ${err}`);
|
|
62
|
-
throw new sdk_1.PluginError(`Unable to load plugin module ${pluginProvider}`);
|
|
55
|
+
throw new sdk_1.PluginError('', `Unable to load plugin module ${pluginProvider}`);
|
|
63
56
|
}
|
|
64
57
|
if (!pluginModule.default || typeof pluginModule.default !== 'function') {
|
|
65
58
|
console.error(`Plugin provider ${pluginProvider} is missing a default function export`);
|
|
66
|
-
throw new sdk_1.PluginError(`Plugin provider ${pluginProvider} is missing a default function export`);
|
|
59
|
+
throw new sdk_1.PluginError('', `Plugin provider ${pluginProvider} is missing a default function export`);
|
|
67
60
|
}
|
|
61
|
+
const pluginName = this.getPluginName(pluginModule, pluginProvider);
|
|
62
|
+
const options = { schemaPath: context.schemaPath, name: pluginName };
|
|
63
|
+
plugin.fields.forEach((f) => {
|
|
64
|
+
var _a;
|
|
65
|
+
const value = (_a = (0, sdk_1.getLiteral)(f.value)) !== null && _a !== void 0 ? _a : (0, sdk_1.getLiteralArray)(f.value);
|
|
66
|
+
if (value === undefined) {
|
|
67
|
+
throw new sdk_1.PluginError(pluginName, `Invalid option value for ${f.name}`);
|
|
68
|
+
}
|
|
69
|
+
options[f.name] = value;
|
|
70
|
+
});
|
|
68
71
|
plugins.push({
|
|
69
|
-
name:
|
|
72
|
+
name: pluginName,
|
|
70
73
|
provider: pluginProvider,
|
|
71
74
|
run: pluginModule.default,
|
|
72
75
|
options,
|
|
73
76
|
});
|
|
74
|
-
if (pluginProvider === '@core/prisma' && options.output) {
|
|
77
|
+
if (pluginProvider === '@core/prisma' && typeof options.output === 'string') {
|
|
75
78
|
// record custom prisma output path
|
|
76
|
-
prismaOutput = options.output;
|
|
79
|
+
prismaOutput = (0, sdk_1.resolvePath)(options.output, options);
|
|
77
80
|
}
|
|
78
81
|
}
|
|
79
82
|
else {
|
|
80
83
|
// synthesize a plugin
|
|
81
84
|
const pluginModule = require(this.getPluginModulePath(pluginProvider));
|
|
85
|
+
const pluginName = this.getPluginName(pluginModule, pluginProvider);
|
|
82
86
|
plugins.push({
|
|
83
|
-
name:
|
|
87
|
+
name: pluginName,
|
|
84
88
|
provider: pluginProvider,
|
|
85
89
|
run: pluginModule.default,
|
|
86
|
-
options: { schemaPath: context.schemaPath },
|
|
90
|
+
options: { schemaPath: context.schemaPath, name: pluginName },
|
|
87
91
|
});
|
|
88
92
|
}
|
|
89
93
|
}
|
|
@@ -116,8 +120,9 @@ class PluginRunner {
|
|
|
116
120
|
try {
|
|
117
121
|
yield telemetry_1.default.trackSpan('cli:plugin:start', 'cli:plugin:complete', 'cli:plugin:error', {
|
|
118
122
|
plugin: name,
|
|
123
|
+
options,
|
|
119
124
|
}, () => __awaiter(this, void 0, void 0, function* () {
|
|
120
|
-
let result = run(context.schema, options, dmmf);
|
|
125
|
+
let result = run(context.schema, options, dmmf, config_1.config);
|
|
121
126
|
if (result instanceof Promise) {
|
|
122
127
|
result = yield result;
|
|
123
128
|
}
|
package/cli/plugin-runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-runner.js","sourceRoot":"","sources":["../../src/cli/plugin-runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,iDAA4C;AAC5C,kDAA4D;AAC5D,
|
|
1
|
+
{"version":3,"file":"plugin-runner.js","sourceRoot":"","sources":["../../src/cli/plugin-runner.ts"],"names":[],"mappings":"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"}
|