zenstack 1.0.0 → 1.0.2
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/LICENSE +1 -1
- package/README.md +194 -1
- package/bin/cli +3 -0
- package/bin/post-install.js +24 -0
- package/cli/actions/generate.d.ts +13 -0
- package/cli/actions/generate.js +71 -0
- package/cli/actions/generate.js.map +1 -0
- package/cli/actions/index.d.ts +3 -0
- package/cli/actions/index.js +20 -0
- package/cli/actions/index.js.map +1 -0
- package/cli/actions/info.d.ts +4 -0
- package/cli/actions/info.js +63 -0
- package/cli/actions/info.js.map +1 -0
- package/cli/actions/init.d.ts +12 -0
- package/cli/actions/init.js +83 -0
- package/cli/actions/init.js.map +1 -0
- package/cli/cli-error.d.ts +5 -0
- package/cli/cli-error.js +10 -0
- package/cli/cli-error.js.map +1 -0
- package/cli/cli-util.d.ts +21 -0
- package/cli/cli-util.js +211 -0
- package/cli/cli-util.js.map +1 -0
- package/cli/config.d.ts +10 -0
- package/cli/config.js +62 -0
- package/cli/config.js.map +1 -0
- package/cli/index.d.ts +7 -0
- package/cli/index.js +128 -0
- package/cli/index.js.map +1 -0
- package/cli/plugin-runner.d.ts +24 -0
- package/cli/plugin-runner.js +229 -0
- package/cli/plugin-runner.js.map +1 -0
- package/constants.d.ts +1 -0
- package/constants.js +6 -0
- package/constants.js.map +1 -0
- package/language-server/constants.d.ts +22 -0
- package/language-server/constants.js +27 -0
- package/language-server/constants.js.map +1 -0
- package/language-server/main.d.ts +1 -0
- package/language-server/main.js +13 -0
- package/language-server/main.js.map +1 -0
- package/language-server/types.d.ts +10 -0
- package/language-server/types.js +3 -0
- package/language-server/types.js.map +1 -0
- package/language-server/utils.d.ts +5 -0
- package/language-server/utils.js +22 -0
- package/language-server/utils.js.map +1 -0
- package/language-server/validator/attribute-application-validator.d.ts +15 -0
- package/language-server/validator/attribute-application-validator.js +246 -0
- package/language-server/validator/attribute-application-validator.js.map +1 -0
- package/language-server/validator/attribute-validator.d.ts +9 -0
- package/language-server/validator/attribute-validator.js +14 -0
- package/language-server/validator/attribute-validator.js.map +1 -0
- package/language-server/validator/datamodel-validator.d.ts +22 -0
- package/language-server/validator/datamodel-validator.js +329 -0
- package/language-server/validator/datamodel-validator.js.map +1 -0
- package/language-server/validator/datasource-validator.d.ts +12 -0
- package/language-server/validator/datasource-validator.js +66 -0
- package/language-server/validator/datasource-validator.js.map +1 -0
- package/language-server/validator/enum-validator.d.ts +11 -0
- package/language-server/validator/enum-validator.js +25 -0
- package/language-server/validator/enum-validator.js.map +1 -0
- package/language-server/validator/expression-validator.d.ts +10 -0
- package/language-server/validator/expression-validator.js +135 -0
- package/language-server/validator/expression-validator.js.map +1 -0
- package/language-server/validator/function-decl-validator.d.ts +9 -0
- package/language-server/validator/function-decl-validator.js +13 -0
- package/language-server/validator/function-decl-validator.js.map +1 -0
- package/language-server/validator/function-invocation-validator.d.ts +11 -0
- package/language-server/validator/function-invocation-validator.js +135 -0
- package/language-server/validator/function-invocation-validator.js.map +1 -0
- package/language-server/validator/schema-validator.d.ts +13 -0
- package/language-server/validator/schema-validator.js +49 -0
- package/language-server/validator/schema-validator.js.map +1 -0
- package/language-server/validator/utils.d.ts +24 -0
- package/language-server/validator/utils.js +154 -0
- package/language-server/validator/utils.js.map +1 -0
- package/language-server/validator/zmodel-validator.d.ts +25 -0
- package/language-server/validator/zmodel-validator.js +83 -0
- package/language-server/validator/zmodel-validator.js.map +1 -0
- package/language-server/zmodel-code-action.d.ts +15 -0
- package/language-server/zmodel-code-action.js +118 -0
- package/language-server/zmodel-code-action.js.map +1 -0
- 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.d.ts +9 -0
- package/language-server/zmodel-formatter.js +76 -0
- package/language-server/zmodel-formatter.js.map +1 -0
- package/language-server/zmodel-linker.d.ts +32 -0
- package/language-server/zmodel-linker.js +447 -0
- package/language-server/zmodel-linker.js.map +1 -0
- package/language-server/zmodel-module.d.ts +41 -0
- package/language-server/zmodel-module.js +83 -0
- package/language-server/zmodel-module.js.map +1 -0
- package/language-server/zmodel-scope.d.ts +16 -0
- package/language-server/zmodel-scope.js +100 -0
- package/language-server/zmodel-scope.js.map +1 -0
- package/language-server/zmodel-workspace-manager.d.ts +12 -0
- package/language-server/zmodel-workspace-manager.js +138 -0
- package/language-server/zmodel-workspace-manager.js.map +1 -0
- package/package.json +140 -8
- package/plugins/access-policy/expression-writer.d.ts +46 -0
- package/plugins/access-policy/expression-writer.js +580 -0
- package/plugins/access-policy/expression-writer.js.map +1 -0
- package/plugins/access-policy/index.d.ts +4 -0
- package/plugins/access-policy/index.js +22 -0
- package/plugins/access-policy/index.js.map +1 -0
- package/plugins/access-policy/policy-guard-generator.d.ts +22 -0
- package/plugins/access-policy/policy-guard-generator.js +634 -0
- package/plugins/access-policy/policy-guard-generator.js.map +1 -0
- package/plugins/model-meta/index.d.ts +4 -0
- package/plugins/model-meta/index.js +232 -0
- package/plugins/model-meta/index.js.map +1 -0
- package/plugins/plugin-utils.d.ts +17 -0
- package/plugins/plugin-utils.js +80 -0
- package/plugins/plugin-utils.js.map +1 -0
- package/plugins/prisma/indent-string.d.ts +4 -0
- package/plugins/prisma/indent-string.js +12 -0
- package/plugins/prisma/indent-string.js.map +1 -0
- package/plugins/prisma/index.d.ts +4 -0
- package/plugins/prisma/index.js +22 -0
- package/plugins/prisma/index.js.map +1 -0
- package/plugins/prisma/prisma-builder.d.ts +145 -0
- package/plugins/prisma/prisma-builder.js +358 -0
- package/plugins/prisma/prisma-builder.js.map +1 -0
- package/plugins/prisma/schema-generator.d.ts +29 -0
- package/plugins/prisma/schema-generator.js +336 -0
- package/plugins/prisma/schema-generator.js.map +1 -0
- package/plugins/prisma/zmodel-code-generator.d.ts +30 -0
- package/plugins/prisma/zmodel-code-generator.js +124 -0
- package/plugins/prisma/zmodel-code-generator.js.map +1 -0
- package/plugins/zod/generator.d.ts +4 -0
- package/plugins/zod/generator.js +254 -0
- package/plugins/zod/generator.js.map +1 -0
- package/plugins/zod/index.d.ts +4 -0
- package/plugins/zod/index.js +24 -0
- package/plugins/zod/index.js.map +1 -0
- package/plugins/zod/transformer.d.ts +68 -0
- package/plugins/zod/transformer.js +554 -0
- package/plugins/zod/transformer.js.map +1 -0
- package/plugins/zod/types.d.ts +25 -0
- package/plugins/zod/types.js +3 -0
- package/plugins/zod/types.js.map +1 -0
- package/plugins/zod/utils/removeDir.d.ts +1 -0
- package/plugins/zod/utils/removeDir.js +30 -0
- package/plugins/zod/utils/removeDir.js.map +1 -0
- package/plugins/zod/utils/schema-gen.d.ts +3 -0
- package/plugins/zod/utils/schema-gen.js +188 -0
- package/plugins/zod/utils/schema-gen.js.map +1 -0
- package/res/prism-zmodel.js +20 -0
- package/res/starter.zmodel +51 -0
- package/res/stdlib.zmodel +506 -0
- package/telemetry.d.ts +21 -0
- package/telemetry.js +129 -0
- package/telemetry.js.map +1 -0
- package/utils/ast-utils.d.ts +13 -0
- package/utils/ast-utils.js +136 -0
- package/utils/ast-utils.js.map +1 -0
- package/utils/exec-utils.d.ts +6 -0
- package/utils/exec-utils.js +13 -0
- package/utils/exec-utils.js.map +1 -0
- package/utils/pkg-utils.d.ts +3 -0
- package/utils/pkg-utils.js +64 -0
- package/utils/pkg-utils.js.map +1 -0
- package/utils/typescript-expression-transformer.d.ts +54 -0
- package/utils/typescript-expression-transformer.js +326 -0
- package/utils/typescript-expression-transformer.js.map +1 -0
- package/utils/version-utils.d.ts +1 -0
- package/utils/version-utils.js +20 -0
- package/utils/version-utils.js.map +1 -0
- package/.vscode/extensions.json +0 -7
- package/.vscode/launch.json +0 -49
- package/.vscode/settings.json +0 -4
- package/packages/internal/jest.config.ts +0 -32
- package/packages/internal/package.json +0 -42
- package/packages/internal/src/constants.ts +0 -1
- package/packages/internal/src/handler/data/guard-utils.ts +0 -7
- package/packages/internal/src/handler/data/handler.ts +0 -415
- package/packages/internal/src/handler/data/query-processor.ts +0 -504
- package/packages/internal/src/handler/index.ts +0 -1
- package/packages/internal/src/handler/types.ts +0 -20
- package/packages/internal/src/index.ts +0 -3
- package/packages/internal/src/request-handler.ts +0 -27
- package/packages/internal/src/request.ts +0 -101
- package/packages/internal/src/types.ts +0 -40
- package/packages/internal/tests/query-processor.test.ts +0 -172
- package/packages/internal/tsconfig.json +0 -21
- package/packages/runtime/auth.d.ts +0 -1
- package/packages/runtime/auth.js +0 -3
- package/packages/runtime/hooks.d.ts +0 -10
- package/packages/runtime/hooks.js +0 -3
- package/packages/runtime/index.d.ts +0 -3
- package/packages/runtime/index.js +0 -1
- package/packages/runtime/package-lock.json +0 -512
- package/packages/runtime/package.json +0 -16
- package/packages/runtime/server.d.ts +0 -1
- package/packages/runtime/server.js +0 -3
- package/packages/runtime/types.d.ts +0 -1
- package/packages/runtime/types.js +0 -3
- package/packages/schema/.eslintrc.json +0 -13
- package/packages/schema/.vscodeignore +0 -4
- package/packages/schema/asset/logo-dark.png +0 -0
- package/packages/schema/asset/logo-light.png +0 -0
- package/packages/schema/bin/cli +0 -3
- package/packages/schema/jest.config.ts +0 -32
- package/packages/schema/langium-config.json +0 -14
- package/packages/schema/langium-quickstart.md +0 -41
- package/packages/schema/language-configuration.json +0 -30
- package/packages/schema/package.json +0 -96
- package/packages/schema/src/cli/cli-util.ts +0 -80
- package/packages/schema/src/cli/index.ts +0 -64
- package/packages/schema/src/extension.ts +0 -76
- package/packages/schema/src/generator/constants.ts +0 -5
- package/packages/schema/src/generator/index.ts +0 -92
- package/packages/schema/src/generator/next-auth/index.ts +0 -197
- package/packages/schema/src/generator/package.template.json +0 -9
- package/packages/schema/src/generator/prisma/expression-writer.ts +0 -352
- package/packages/schema/src/generator/prisma/index.ts +0 -32
- package/packages/schema/src/generator/prisma/plain-expression-builder.ts +0 -91
- package/packages/schema/src/generator/prisma/prisma-builder.ts +0 -366
- package/packages/schema/src/generator/prisma/query-gard-generator.ts +0 -208
- package/packages/schema/src/generator/prisma/schema-generator.ts +0 -300
- package/packages/schema/src/generator/react-hooks/index.ts +0 -181
- package/packages/schema/src/generator/service/index.ts +0 -107
- package/packages/schema/src/generator/tsconfig.template.json +0 -17
- package/packages/schema/src/generator/types.ts +0 -17
- package/packages/schema/src/generator/utils.ts +0 -9
- package/packages/schema/src/language-server/generated/ast.ts +0 -603
- package/packages/schema/src/language-server/generated/grammar.ts +0 -2190
- package/packages/schema/src/language-server/generated/module.ts +0 -24
- package/packages/schema/src/language-server/main.ts +0 -12
- package/packages/schema/src/language-server/stdlib.zmodel +0 -22
- package/packages/schema/src/language-server/types.ts +0 -9
- package/packages/schema/src/language-server/zmodel-index.ts +0 -33
- package/packages/schema/src/language-server/zmodel-linker.ts +0 -409
- package/packages/schema/src/language-server/zmodel-module.ts +0 -90
- package/packages/schema/src/language-server/zmodel-scope.ts +0 -21
- package/packages/schema/src/language-server/zmodel-validator.ts +0 -35
- package/packages/schema/src/language-server/zmodel.langium +0 -186
- package/packages/schema/src/utils/exec-utils.ts +0 -5
- package/packages/schema/src/utils/indent-string.ts +0 -6
- package/packages/schema/syntaxes/zmodel.json +0 -57
- package/packages/schema/syntaxes/zmodel.tmLanguage.json +0 -57
- package/packages/schema/tests/generator/expression-writer.test.ts +0 -676
- package/packages/schema/tests/generator/prisma-builder.test.ts +0 -138
- package/packages/schema/tests/schema/parser.test.ts +0 -423
- package/packages/schema/tests/schema/sample-todo.test.ts +0 -14
- package/packages/schema/tests/utils.ts +0 -38
- package/packages/schema/tsconfig.json +0 -23
- package/pnpm-workspace.yaml +0 -3
- package/samples/todo/.env +0 -2
- package/samples/todo/.eslintrc.json +0 -3
- package/samples/todo/.vscode/launch.json +0 -11
- package/samples/todo/README.md +0 -34
- package/samples/todo/components/AuthGuard.tsx +0 -17
- package/samples/todo/components/Avatar.tsx +0 -22
- package/samples/todo/components/BreadCrumb.tsx +0 -44
- package/samples/todo/components/ManageMembers.tsx +0 -134
- package/samples/todo/components/NavBar.tsx +0 -57
- package/samples/todo/components/SpaceMembers.tsx +0 -76
- package/samples/todo/components/Spaces.tsx +0 -28
- package/samples/todo/components/TimeInfo.tsx +0 -17
- package/samples/todo/components/Todo.tsx +0 -72
- package/samples/todo/components/TodoList.tsx +0 -77
- package/samples/todo/lib/context.ts +0 -31
- package/samples/todo/next.config.js +0 -10
- package/samples/todo/package-lock.json +0 -7527
- package/samples/todo/package.json +0 -45
- package/samples/todo/pages/_app.tsx +0 -50
- package/samples/todo/pages/api/auth/[...nextauth].ts +0 -83
- package/samples/todo/pages/api/zenstack/[...path].ts +0 -16
- package/samples/todo/pages/create-space.tsx +0 -114
- package/samples/todo/pages/index.tsx +0 -32
- package/samples/todo/pages/space/[slug]/[listId]/index.tsx +0 -88
- package/samples/todo/pages/space/[slug]/index.tsx +0 -169
- package/samples/todo/postcss.config.js +0 -6
- package/samples/todo/public/avatar.jpg +0 -0
- package/samples/todo/public/favicon.ico +0 -0
- package/samples/todo/public/logo.png +0 -0
- package/samples/todo/public/vercel.svg +0 -4
- package/samples/todo/styles/globals.css +0 -7
- package/samples/todo/tailwind.config.js +0 -11
- package/samples/todo/tsconfig.json +0 -28
- package/samples/todo/types/next-auth.d.ts +0 -14
- package/samples/todo/types/next.d.ts +0 -16
- package/samples/todo/zenstack/migrations/20221014084317_init/migration.sql +0 -153
- package/samples/todo/zenstack/migrations/20221020094651_upate_cli/migration.sql +0 -23
- package/samples/todo/zenstack/migrations/migration_lock.toml +0 -3
- package/samples/todo/zenstack/schema.prisma +0 -126
- package/samples/todo/zenstack/schema.zmodel +0 -161
- package/tests/integration/jest.config.ts +0 -16
- package/tests/integration/package-lock.json +0 -1081
- package/tests/integration/package.json +0 -27
- package/tests/integration/tests/operation-coverate.test.ts +0 -563
- package/tests/integration/tests/operations.zmodel +0 -69
- package/tests/integration/tests/todo-e2e.test.ts +0 -577
- package/tests/integration/tests/todo.zmodel +0 -123
- package/tests/integration/tests/tsconfig.template.json +0 -10
- package/tests/integration/tests/utils.ts +0 -133
- package/tests/integration/tsconfig.json +0 -10
package/cli/cli-util.js
ADDED
|
@@ -0,0 +1,211 @@
|
|
|
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.checkNewVersion = exports.checkRequiredPackage = exports.getZenStackPackages = exports.getPluginDocuments = exports.mergeImportsDeclarations = exports.eagerLoadAllImports = exports.loadDocument = exports.requiredPrismaVersion = void 0;
|
|
16
|
+
const ast_1 = require("@zenstackhq/language/ast");
|
|
17
|
+
const sdk_1 = require("@zenstackhq/sdk");
|
|
18
|
+
const colors_1 = __importDefault(require("colors"));
|
|
19
|
+
const fs_1 = __importDefault(require("fs"));
|
|
20
|
+
const get_latest_version_1 = __importDefault(require("get-latest-version"));
|
|
21
|
+
const langium_1 = require("langium");
|
|
22
|
+
const node_1 = require("langium/node");
|
|
23
|
+
const path_1 = __importDefault(require("path"));
|
|
24
|
+
const semver_1 = __importDefault(require("semver"));
|
|
25
|
+
const vscode_uri_1 = require("vscode-uri");
|
|
26
|
+
const constants_1 = require("../language-server/constants");
|
|
27
|
+
const zmodel_module_1 = require("../language-server/zmodel-module");
|
|
28
|
+
const ast_utils_1 = require("../utils/ast-utils");
|
|
29
|
+
const version_utils_1 = require("../utils/version-utils");
|
|
30
|
+
const cli_error_1 = require("./cli-error");
|
|
31
|
+
// required minimal version of Prisma
|
|
32
|
+
exports.requiredPrismaVersion = '4.8.0';
|
|
33
|
+
/**
|
|
34
|
+
* Loads a zmodel document from a file.
|
|
35
|
+
* @param fileName File name
|
|
36
|
+
* @param services Language services
|
|
37
|
+
* @returns Parsed and validated AST
|
|
38
|
+
*/
|
|
39
|
+
function loadDocument(fileName) {
|
|
40
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
const services = (0, zmodel_module_1.createZModelServices)(node_1.NodeFileSystem).ZModel;
|
|
42
|
+
const extensions = services.LanguageMetaData.fileExtensions;
|
|
43
|
+
if (!extensions.includes(path_1.default.extname(fileName))) {
|
|
44
|
+
console.error(colors_1.default.yellow(`Please choose a file with extension: ${extensions}.`));
|
|
45
|
+
throw new cli_error_1.CliError('invalid schema file');
|
|
46
|
+
}
|
|
47
|
+
if (!fs_1.default.existsSync(fileName)) {
|
|
48
|
+
console.error(colors_1.default.red(`File ${fileName} does not exist.`));
|
|
49
|
+
throw new cli_error_1.CliError('schema file does not exist');
|
|
50
|
+
}
|
|
51
|
+
// load standard library
|
|
52
|
+
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))));
|
|
53
|
+
// load documents provided by plugins
|
|
54
|
+
const pluginDocuments = yield getPluginDocuments(services, fileName);
|
|
55
|
+
const langiumDocuments = services.shared.workspace.LangiumDocuments;
|
|
56
|
+
// load the document
|
|
57
|
+
const document = langiumDocuments.getOrCreateDocument(vscode_uri_1.URI.file(path_1.default.resolve(fileName)));
|
|
58
|
+
// load all imports
|
|
59
|
+
const importedURIs = eagerLoadAllImports(document, langiumDocuments);
|
|
60
|
+
const importedDocuments = importedURIs.map((uri) => langiumDocuments.getOrCreateDocument(uri));
|
|
61
|
+
// build the document together with standard library and plugin modules
|
|
62
|
+
yield services.shared.workspace.DocumentBuilder.build([stdLib, ...pluginDocuments, document, ...importedDocuments], {
|
|
63
|
+
validationChecks: 'all',
|
|
64
|
+
});
|
|
65
|
+
const validationErrors = langiumDocuments.all
|
|
66
|
+
.flatMap((d) => { var _a; return (_a = d.diagnostics) !== null && _a !== void 0 ? _a : []; })
|
|
67
|
+
.filter((e) => e.severity === 1)
|
|
68
|
+
.toArray();
|
|
69
|
+
if (validationErrors.length > 0) {
|
|
70
|
+
console.error(colors_1.default.red('Validation errors:'));
|
|
71
|
+
for (const validationError of validationErrors) {
|
|
72
|
+
console.error(colors_1.default.red(`line ${validationError.range.start.line + 1}: ${validationError.message} [${document.textDocument.getText(validationError.range)}]`));
|
|
73
|
+
}
|
|
74
|
+
throw new cli_error_1.CliError('schema validation errors');
|
|
75
|
+
}
|
|
76
|
+
const model = document.parseResult.value;
|
|
77
|
+
mergeImportsDeclarations(langiumDocuments, model);
|
|
78
|
+
validationAfterMerge(model);
|
|
79
|
+
(0, ast_utils_1.mergeBaseModel)(model);
|
|
80
|
+
return model;
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
exports.loadDocument = loadDocument;
|
|
84
|
+
// check global unique thing after merge imports
|
|
85
|
+
function validationAfterMerge(model) {
|
|
86
|
+
const dataSources = model.declarations.filter((d) => (0, ast_1.isDataSource)(d));
|
|
87
|
+
if (dataSources.length == 0) {
|
|
88
|
+
console.error(colors_1.default.red('Validation errors: Model must define a datasource'));
|
|
89
|
+
throw new cli_error_1.CliError('schema validation errors');
|
|
90
|
+
}
|
|
91
|
+
else if (dataSources.length > 1) {
|
|
92
|
+
console.error(colors_1.default.red('Validation errors: Multiple datasource declarations are not allowed'));
|
|
93
|
+
throw new cli_error_1.CliError('schema validation errors');
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function eagerLoadAllImports(document, documents, uris = new Set()) {
|
|
97
|
+
const uriString = document.uri.toString();
|
|
98
|
+
if (!uris.has(uriString)) {
|
|
99
|
+
uris.add(uriString);
|
|
100
|
+
const model = document.parseResult.value;
|
|
101
|
+
for (const imp of model.imports) {
|
|
102
|
+
const importedModel = (0, ast_utils_1.resolveImport)(documents, imp);
|
|
103
|
+
if (importedModel) {
|
|
104
|
+
const importedDoc = (0, langium_1.getDocument)(importedModel);
|
|
105
|
+
eagerLoadAllImports(importedDoc, documents, uris);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return Array.from(uris)
|
|
110
|
+
.filter((x) => uriString != x)
|
|
111
|
+
.map((e) => vscode_uri_1.URI.parse(e));
|
|
112
|
+
}
|
|
113
|
+
exports.eagerLoadAllImports = eagerLoadAllImports;
|
|
114
|
+
function mergeImportsDeclarations(documents, model) {
|
|
115
|
+
const importedModels = (0, ast_utils_1.resolveTransitiveImports)(documents, model);
|
|
116
|
+
const importedDeclarations = importedModels.flatMap((m) => m.declarations);
|
|
117
|
+
importedDeclarations.forEach((d) => {
|
|
118
|
+
const mutable = d;
|
|
119
|
+
// The plugin might use $container to access the model
|
|
120
|
+
// need to make sure it is always resolved to the main model
|
|
121
|
+
mutable.$container = model;
|
|
122
|
+
});
|
|
123
|
+
model.declarations.push(...importedDeclarations);
|
|
124
|
+
}
|
|
125
|
+
exports.mergeImportsDeclarations = mergeImportsDeclarations;
|
|
126
|
+
function getPluginDocuments(services, fileName) {
|
|
127
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
128
|
+
// parse the user document (without validation)
|
|
129
|
+
const parseResult = services.parser.LangiumParser.parse(fs_1.default.readFileSync(fileName, { encoding: 'utf-8' }));
|
|
130
|
+
const parsed = parseResult.value;
|
|
131
|
+
// traverse plugins and collect "plugin.zmodel" documents
|
|
132
|
+
const result = [];
|
|
133
|
+
parsed.declarations.forEach((decl) => {
|
|
134
|
+
if ((0, ast_1.isPlugin)(decl)) {
|
|
135
|
+
const providerField = decl.fields.find((f) => f.name === 'provider');
|
|
136
|
+
if (providerField) {
|
|
137
|
+
const provider = (0, sdk_1.getLiteral)(providerField.value);
|
|
138
|
+
if (provider) {
|
|
139
|
+
try {
|
|
140
|
+
const pluginEntrance = require.resolve(`${provider}`);
|
|
141
|
+
const pluginModelFile = path_1.default.join(path_1.default.dirname(pluginEntrance), constants_1.PLUGIN_MODULE_NAME);
|
|
142
|
+
if (fs_1.default.existsSync(pluginModelFile)) {
|
|
143
|
+
result.push(services.shared.workspace.LangiumDocuments.getOrCreateDocument(vscode_uri_1.URI.file(pluginModelFile)));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch (_a) {
|
|
147
|
+
// noop
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
return result;
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
exports.getPluginDocuments = getPluginDocuments;
|
|
157
|
+
function getZenStackPackages(projectPath) {
|
|
158
|
+
var _a, _b;
|
|
159
|
+
let pkgJson;
|
|
160
|
+
const resolvedPath = path_1.default.resolve(projectPath);
|
|
161
|
+
try {
|
|
162
|
+
pkgJson = require(path_1.default.join(resolvedPath, 'package.json'));
|
|
163
|
+
}
|
|
164
|
+
catch (_c) {
|
|
165
|
+
return undefined;
|
|
166
|
+
}
|
|
167
|
+
const packages = [
|
|
168
|
+
...Object.keys((_a = pkgJson.dependencies) !== null && _a !== void 0 ? _a : {}).filter((p) => p.startsWith('@zenstackhq/')),
|
|
169
|
+
...Object.keys((_b = pkgJson.devDependencies) !== null && _b !== void 0 ? _b : {}).filter((p) => p.startsWith('@zenstackhq/')),
|
|
170
|
+
];
|
|
171
|
+
const result = packages.map((pkg) => {
|
|
172
|
+
try {
|
|
173
|
+
const resolved = require.resolve(`${pkg}/package.json`, { paths: [resolvedPath] });
|
|
174
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
175
|
+
return { pkg, version: require(resolved).version };
|
|
176
|
+
}
|
|
177
|
+
catch (_a) {
|
|
178
|
+
return { pkg, version: undefined };
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
result.splice(0, 0, { pkg: 'zenstack', version: (0, version_utils_1.getVersion)() });
|
|
182
|
+
return result;
|
|
183
|
+
}
|
|
184
|
+
exports.getZenStackPackages = getZenStackPackages;
|
|
185
|
+
function checkRequiredPackage(packageName, minVersion) {
|
|
186
|
+
let packageVersion;
|
|
187
|
+
try {
|
|
188
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
189
|
+
packageVersion = require(`${packageName}/package.json`).version;
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
console.error(colors_1.default.red(`${packageName} not found, please install it`));
|
|
193
|
+
throw new cli_error_1.CliError(`${packageName} not found`);
|
|
194
|
+
}
|
|
195
|
+
if (minVersion && semver_1.default.lt(packageVersion, minVersion)) {
|
|
196
|
+
console.error(colors_1.default.red(`${packageName} needs to be above ${minVersion}, the installed version is ${packageVersion}, please upgrade it`));
|
|
197
|
+
throw new cli_error_1.CliError(`${packageName} version is too low`);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
exports.checkRequiredPackage = checkRequiredPackage;
|
|
201
|
+
function checkNewVersion() {
|
|
202
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
203
|
+
const currVersion = (0, version_utils_1.getVersion)();
|
|
204
|
+
const latestVersion = yield (0, get_latest_version_1.default)('zenstack');
|
|
205
|
+
if (latestVersion && semver_1.default.gt(latestVersion, currVersion)) {
|
|
206
|
+
console.log(`A newer version ${colors_1.default.cyan(latestVersion)} is available.`);
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
exports.checkNewVersion = checkNewVersion;
|
|
211
|
+
//# sourceMappingURL=cli-util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,10 @@
|
|
|
1
|
+
import z from 'zod';
|
|
2
|
+
declare const schema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
3
|
+
export declare type ConfigType = z.infer<typeof schema>;
|
|
4
|
+
export declare let config: ConfigType;
|
|
5
|
+
/**
|
|
6
|
+
* Loads and validates CLI configuration file.
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export declare function loadConfig(filename: string): void;
|
|
10
|
+
export {};
|
package/cli/config.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
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 fs_1 = __importDefault(require("fs"));
|
|
31
|
+
const zod_1 = __importStar(require("zod"));
|
|
32
|
+
const zod_validation_error_1 = require("zod-validation-error");
|
|
33
|
+
const cli_error_1 = require("./cli-error");
|
|
34
|
+
// TODO: future use
|
|
35
|
+
const schema = zod_1.default.object({});
|
|
36
|
+
exports.config = schema.parse({});
|
|
37
|
+
/**
|
|
38
|
+
* Loads and validates CLI configuration file.
|
|
39
|
+
* @returns
|
|
40
|
+
*/
|
|
41
|
+
function loadConfig(filename) {
|
|
42
|
+
try {
|
|
43
|
+
const fileData = fs_1.default.readFileSync(filename, `utf-8`);
|
|
44
|
+
const content = JSON.parse(fileData);
|
|
45
|
+
exports.config = schema.parse(content);
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
if ((err === null || err === void 0 ? void 0 : err.code) === `ENOENT`) {
|
|
50
|
+
throw new cli_error_1.CliError(`Config file could not be found: ${filename}`);
|
|
51
|
+
}
|
|
52
|
+
if (err instanceof SyntaxError) {
|
|
53
|
+
throw new cli_error_1.CliError(`Config is not a valid JSON file: ${filename}`);
|
|
54
|
+
}
|
|
55
|
+
if (err instanceof zod_1.ZodError) {
|
|
56
|
+
throw new cli_error_1.CliError(`Config file ${filename} is not valid: ${(0, zod_validation_error_1.fromZodError)(err)}`);
|
|
57
|
+
}
|
|
58
|
+
throw new cli_error_1.CliError(`Error loading config: ${filename}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.loadConfig = loadConfig;
|
|
62
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,2CAAkC;AAClC,+DAAoD;AACpD,2CAAuC;AAEvC,mBAAmB;AACnB,MAAM,MAAM,GAAG,aAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAIjB,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.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import * as actions from './actions';
|
|
3
|
+
export declare const initAction: (projectPath: string, options: Parameters<typeof actions.init>[1]) => Promise<void>;
|
|
4
|
+
export declare const infoAction: (projectPath: string) => Promise<void>;
|
|
5
|
+
export declare const generateAction: (options: Parameters<typeof actions.generate>[1]) => Promise<void>;
|
|
6
|
+
export declare function createProgram(): Command;
|
|
7
|
+
export default function (): Promise<void>;
|
package/cli/index.js
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.createProgram = exports.generateAction = exports.infoAction = exports.initAction = void 0;
|
|
39
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
40
|
+
const module_1 = require("@zenstackhq/language/module");
|
|
41
|
+
const colors_1 = __importDefault(require("colors"));
|
|
42
|
+
const commander_1 = require("commander");
|
|
43
|
+
const fs_1 = __importDefault(require("fs"));
|
|
44
|
+
const telemetry_1 = __importDefault(require("../telemetry"));
|
|
45
|
+
const version_utils_1 = require("../utils/version-utils");
|
|
46
|
+
const actions = __importStar(require("./actions"));
|
|
47
|
+
const config_1 = require("./config");
|
|
48
|
+
const DEFAULT_CONFIG_FILE = 'zenstack.config.json';
|
|
49
|
+
const initAction = (projectPath, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
+
yield telemetry_1.default.trackSpan('cli:command:start', 'cli:command:complete', 'cli:command:error', { command: 'init' }, () => actions.init(projectPath, options));
|
|
51
|
+
});
|
|
52
|
+
exports.initAction = initAction;
|
|
53
|
+
const infoAction = (projectPath) => __awaiter(void 0, void 0, void 0, function* () {
|
|
54
|
+
yield telemetry_1.default.trackSpan('cli:command:start', 'cli:command:complete', 'cli:command:error', { command: 'info' }, () => actions.info(projectPath));
|
|
55
|
+
});
|
|
56
|
+
exports.infoAction = infoAction;
|
|
57
|
+
const generateAction = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
58
|
+
yield telemetry_1.default.trackSpan('cli:command:start', 'cli:command:complete', 'cli:command:error', { command: 'generate' }, () => actions.generate(process.cwd(), options));
|
|
59
|
+
});
|
|
60
|
+
exports.generateAction = generateAction;
|
|
61
|
+
function createProgram() {
|
|
62
|
+
const program = new commander_1.Command('zenstack');
|
|
63
|
+
program.version((0, version_utils_1.getVersion)(), '-v --version', 'display CLI version');
|
|
64
|
+
const schemaExtensions = module_1.ZModelLanguageMetaData.fileExtensions.join(', ');
|
|
65
|
+
program
|
|
66
|
+
.description(`${colors_1.default.bold.blue('ζ')} ZenStack is a Prisma power pack for building full-stack apps.\n\nDocumentation: https://zenstack.dev.`)
|
|
67
|
+
.showHelpAfterError()
|
|
68
|
+
.showSuggestionAfterError();
|
|
69
|
+
const schemaOption = new commander_1.Option('--schema <file>', `schema file (with extension ${schemaExtensions})`).default('./schema.zmodel');
|
|
70
|
+
const configOption = new commander_1.Option('-c, --config [file]', 'config file');
|
|
71
|
+
const pmOption = new commander_1.Option('-p, --package-manager <pm>', 'package manager to use').choices([
|
|
72
|
+
'npm',
|
|
73
|
+
'yarn',
|
|
74
|
+
'pnpm',
|
|
75
|
+
]);
|
|
76
|
+
const noVersionCheckOption = new commander_1.Option('--no-version-check', 'do not check for new version');
|
|
77
|
+
const noDependencyCheck = new commander_1.Option('--no-dependency-check', 'do not check if dependencies are installed');
|
|
78
|
+
program
|
|
79
|
+
.command('info')
|
|
80
|
+
.description('Get information of installed ZenStack and related packages.')
|
|
81
|
+
.argument('[path]', 'project path', '.')
|
|
82
|
+
.action(exports.infoAction);
|
|
83
|
+
program
|
|
84
|
+
.command('init')
|
|
85
|
+
.description('Initialize an existing project for ZenStack.')
|
|
86
|
+
.addOption(configOption)
|
|
87
|
+
.addOption(pmOption)
|
|
88
|
+
.addOption(new commander_1.Option('--prisma <file>', 'location of Prisma schema file to bootstrap from'))
|
|
89
|
+
.addOption(new commander_1.Option('--tag <tag>', 'the NPM package tag to use when installing dependencies'))
|
|
90
|
+
.addOption(noVersionCheckOption)
|
|
91
|
+
.argument('[path]', 'project path', '.')
|
|
92
|
+
.action(exports.initAction);
|
|
93
|
+
program
|
|
94
|
+
.command('generate')
|
|
95
|
+
.description('Run code generation.')
|
|
96
|
+
.addOption(schemaOption)
|
|
97
|
+
.addOption(new commander_1.Option('-o, --output <path>', 'default output directory for built-in plugins'))
|
|
98
|
+
.addOption(configOption)
|
|
99
|
+
.addOption(new commander_1.Option('--no-default-plugins', 'do not run default plugins'))
|
|
100
|
+
.addOption(new commander_1.Option('--no-compile', 'do not compile the output of built-in plugins'))
|
|
101
|
+
.addOption(noVersionCheckOption)
|
|
102
|
+
.addOption(noDependencyCheck)
|
|
103
|
+
.action(exports.generateAction);
|
|
104
|
+
// make sure config is loaded before actions run
|
|
105
|
+
program.hook('preAction', (_, actionCommand) => __awaiter(this, void 0, void 0, function* () {
|
|
106
|
+
let configFile = actionCommand.opts().config;
|
|
107
|
+
if (!configFile && fs_1.default.existsSync(DEFAULT_CONFIG_FILE)) {
|
|
108
|
+
configFile = DEFAULT_CONFIG_FILE;
|
|
109
|
+
}
|
|
110
|
+
if (configFile) {
|
|
111
|
+
(0, config_1.loadConfig)(configFile);
|
|
112
|
+
}
|
|
113
|
+
}));
|
|
114
|
+
return program;
|
|
115
|
+
}
|
|
116
|
+
exports.createProgram = createProgram;
|
|
117
|
+
function default_1() {
|
|
118
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
119
|
+
yield telemetry_1.default.trackSpan('cli:start', 'cli:complete', 'cli:error', { args: process.argv }, () => __awaiter(this, void 0, void 0, function* () {
|
|
120
|
+
const program = createProgram();
|
|
121
|
+
// handle errors explicitly to ensure telemetry
|
|
122
|
+
program.exitOverride();
|
|
123
|
+
yield program.parseAsync(process.argv);
|
|
124
|
+
}));
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
exports.default = default_1;
|
|
128
|
+
//# sourceMappingURL=index.js.map
|
package/cli/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Model } from '@zenstackhq/language/ast';
|
|
2
|
+
export declare type PluginRunnerOptions = {
|
|
3
|
+
schema: Model;
|
|
4
|
+
schemaPath: string;
|
|
5
|
+
output?: string;
|
|
6
|
+
defaultPlugins: boolean;
|
|
7
|
+
compile: boolean;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* ZenStack plugin runner
|
|
11
|
+
*/
|
|
12
|
+
export declare class PluginRunner {
|
|
13
|
+
/**
|
|
14
|
+
* Runs a series of nested generators
|
|
15
|
+
*/
|
|
16
|
+
run(options: PluginRunnerOptions): Promise<void>;
|
|
17
|
+
private calculateCorePlugins;
|
|
18
|
+
private hasValidation;
|
|
19
|
+
private getPluginName;
|
|
20
|
+
private getPluginDependencies;
|
|
21
|
+
private getPluginProvider;
|
|
22
|
+
private runPlugin;
|
|
23
|
+
private getPluginModulePath;
|
|
24
|
+
}
|