zenstack 1.0.0-alpha.23 → 1.0.0-alpha.24

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.
Files changed (84) hide show
  1. package/README.md +79 -9
  2. package/cli/cli-error.js +3 -5
  3. package/cli/cli-error.js.map +1 -1
  4. package/cli/cli-util.js +123 -105
  5. package/cli/cli-util.js.map +1 -1
  6. package/cli/index.js +105 -63
  7. package/cli/index.js.map +1 -1
  8. package/cli/plugin-runner.js +130 -127
  9. package/cli/plugin-runner.js.map +1 -1
  10. package/language-server/constants.js +5 -13
  11. package/language-server/constants.js.map +1 -1
  12. package/language-server/main.js +8 -15
  13. package/language-server/main.js.map +1 -1
  14. package/language-server/types.js +3 -1
  15. package/language-server/types.js.map +1 -1
  16. package/language-server/utils.js +13 -16
  17. package/language-server/utils.js.map +1 -1
  18. package/language-server/validator/attribute-validator.js +3 -7
  19. package/language-server/validator/attribute-validator.js.map +1 -1
  20. package/language-server/validator/datamodel-validator.js +293 -347
  21. package/language-server/validator/datamodel-validator.js.map +1 -1
  22. package/language-server/validator/datasource-validator.js +61 -71
  23. package/language-server/validator/datasource-validator.js.map +1 -1
  24. package/language-server/validator/enum-validator.js +6 -10
  25. package/language-server/validator/enum-validator.js.map +1 -1
  26. package/language-server/validator/expression-validator.js +25 -31
  27. package/language-server/validator/expression-validator.js.map +1 -1
  28. package/language-server/validator/schema-validator.js +18 -25
  29. package/language-server/validator/schema-validator.js.map +1 -1
  30. package/language-server/validator/utils.js +86 -85
  31. package/language-server/validator/utils.js.map +1 -1
  32. package/language-server/validator/zmodel-validator.js +55 -58
  33. package/language-server/validator/zmodel-validator.js.map +1 -1
  34. package/language-server/zmodel-formatter.js +40 -21
  35. package/language-server/zmodel-formatter.js.map +1 -1
  36. package/language-server/zmodel-linker.js +328 -331
  37. package/language-server/zmodel-linker.js.map +1 -1
  38. package/language-server/zmodel-module.js +50 -59
  39. package/language-server/zmodel-module.js.map +1 -1
  40. package/language-server/zmodel-scope.js +35 -25
  41. package/language-server/zmodel-scope.js.map +1 -1
  42. package/language-server/zmodel-workspace-manager.js +30 -18
  43. package/language-server/zmodel-workspace-manager.js.map +1 -1
  44. package/package.json +8 -12
  45. package/plugins/access-policy/expression-writer.js +301 -292
  46. package/plugins/access-policy/expression-writer.js.map +1 -1
  47. package/plugins/access-policy/index.js +20 -11
  48. package/plugins/access-policy/index.js.map +1 -1
  49. package/plugins/access-policy/policy-guard-generator.js +327 -321
  50. package/plugins/access-policy/policy-guard-generator.js.map +1 -1
  51. package/plugins/access-policy/typescript-expression-transformer.js +94 -95
  52. package/plugins/access-policy/typescript-expression-transformer.js.map +1 -1
  53. package/plugins/access-policy/utils.js +7 -9
  54. package/plugins/access-policy/utils.js.map +1 -1
  55. package/plugins/access-policy/zod-schema-generator.js +143 -159
  56. package/plugins/access-policy/zod-schema-generator.js.map +1 -1
  57. package/plugins/model-meta/index.js +97 -102
  58. package/plugins/model-meta/index.js.map +1 -1
  59. package/plugins/plugin-utils.js +34 -40
  60. package/plugins/plugin-utils.js.map +1 -1
  61. package/plugins/prisma/indent-string.js +4 -8
  62. package/plugins/prisma/indent-string.js.map +1 -1
  63. package/plugins/prisma/index.js +20 -11
  64. package/plugins/prisma/index.js.map +1 -1
  65. package/plugins/prisma/prisma-builder.js +235 -213
  66. package/plugins/prisma/prisma-builder.js.map +1 -1
  67. package/plugins/prisma/schema-generator.js +205 -192
  68. package/plugins/prisma/schema-generator.js.map +1 -1
  69. package/plugins/prisma/zmodel-code-generator.js +109 -114
  70. package/plugins/prisma/zmodel-code-generator.js.map +1 -1
  71. package/telemetry.js +107 -90
  72. package/telemetry.js.map +1 -1
  73. package/types.js +3 -1
  74. package/types.js.map +1 -1
  75. package/utils/ast-utils.js +67 -67
  76. package/utils/ast-utils.js.map +1 -1
  77. package/utils/exec-utils.js +6 -15
  78. package/utils/exec-utils.js.map +1 -1
  79. package/utils/pkg-utils.js +38 -35
  80. package/utils/pkg-utils.js.map +1 -1
  81. package/utils/version-utils.js +9 -10
  82. package/utils/version-utils.js.map +1 -1
  83. package/global.d.js +0 -1
  84. package/global.d.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"zmodel-linker.js","names":["ZModelLinker","DefaultLinker","constructor","services","descriptions","workspace","AstNodeDescriptionProvider","link","document","cancelToken","CancellationToken","None","parseResult","lexerErrors","length","parserErrors","node","streamContents","value","interruptAndCheck","resolve","state","DocumentState","Linked","linkReference","container","property","extraScopes","resolveFromScopeProviders","reference","doLink","providers","provider","target","$refText","_ref","_nodeDescription","createDescription","name","$type","LiteralExpr","resolveLiteral","InvocationExpr","resolveInvocation","ArrayExpr","resolveArray","ReferenceExpr","resolveReference","MemberAccessExpr","resolveMemberAccess","UnaryExpr","resolveUnary","BinaryExpr","resolveBinary","ThisExpr","resolveThis","NullExpr","resolveNull","AttributeArg","resolveAttributeArg","resolveDefault","operator","left","right","resolveToBuiltinTypeOrDecl","resolveCollectionPredicate","Error","operand","$resolvedType","args","forEach","arg","ref","EnumField","$container","resolveToDeclaredType","type","items","item","itemType","decl","function","funcDecl","isFromStdlib","model","getContainingModel","userModel","declarations","find","d","isDataModel","getContainingDataModel","returnType","curr","undefined","operandResolved","array","modelDecl","fields","f","member","resolvedType","dataModelDecl","attrParam","findAttrParamForArg","attrAppliedOn","isDataModelField","transtiveDataModel","scopeProvider","isArrayExpr","isReferenceExpr","resolved","createLinkingError","attr","params","p","index","findIndex","a","Object","entries","startsWith","isReference","child","mappedType","mapBuiltinTypeToExpressionType"],"sources":["../../src/language-server/zmodel-linker.ts"],"sourcesContent":["import {\n ArrayExpr,\n AttributeArg,\n AttributeParam,\n BinaryExpr,\n DataModel,\n DataModelField,\n DataModelFieldType,\n EnumField,\n Expression,\n FunctionDecl,\n FunctionParam,\n FunctionParamType,\n InvocationExpr,\n LiteralExpr,\n MemberAccessExpr,\n NullExpr,\n ReferenceExpr,\n ReferenceTarget,\n ResolvedShape,\n ThisExpr,\n UnaryExpr,\n isArrayExpr,\n isDataModel,\n isDataModelField,\n isReferenceExpr,\n} from '@zenstackhq/language/ast';\nimport {\n AstNode,\n AstNodeDescription,\n AstNodeDescriptionProvider,\n DefaultLinker,\n DocumentState,\n LangiumDocument,\n LangiumServices,\n LinkingError,\n Reference,\n interruptAndCheck,\n isReference,\n streamContents,\n} from 'langium';\nimport { CancellationToken } from 'vscode-jsonrpc';\nimport { getContainingModel, isFromStdlib } from './utils';\nimport { mapBuiltinTypeToExpressionType } from './validator/utils';\n\ninterface DefaultReference extends Reference {\n _ref?: AstNode | LinkingError;\n _nodeDescription?: AstNodeDescription;\n}\n\ntype ScopeProvider = (name: string) => ReferenceTarget | undefined;\n\n/**\n * Langium linker implementation which links references and resolves expression types\n */\nexport class ZModelLinker extends DefaultLinker {\n private readonly descriptions: AstNodeDescriptionProvider;\n\n constructor(services: LangiumServices) {\n super(services);\n this.descriptions = services.workspace.AstNodeDescriptionProvider;\n }\n\n //#region Reference linking\n\n async link(document: LangiumDocument, cancelToken = CancellationToken.None): Promise<void> {\n if (document.parseResult.lexerErrors?.length > 0 || document.parseResult.parserErrors?.length > 0) {\n return;\n }\n\n for (const node of streamContents(document.parseResult.value)) {\n await interruptAndCheck(cancelToken);\n this.resolve(node, document);\n }\n document.state = DocumentState.Linked;\n }\n\n private linkReference(\n container: AstNode,\n property: string,\n document: LangiumDocument,\n extraScopes: ScopeProvider[]\n ) {\n if (!this.resolveFromScopeProviders(container, property, document, extraScopes)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const reference: Reference<AstNode> = (container as any)[property];\n this.doLink({ reference, container, property }, document);\n }\n }\n\n //#endregion\n\n //#region Expression type resolving\n\n private resolveFromScopeProviders(\n node: AstNode,\n property: string,\n document: LangiumDocument,\n providers: ScopeProvider[]\n ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const reference: DefaultReference = (node as any)[property];\n for (const provider of providers) {\n const target = provider(reference.$refText);\n if (target) {\n reference._ref = target;\n reference._nodeDescription = this.descriptions.createDescription(target, target.name, document);\n return target;\n }\n }\n return null;\n }\n\n private resolve(node: AstNode, document: LangiumDocument, extraScopes: ScopeProvider[] = []) {\n switch (node.$type) {\n case LiteralExpr:\n this.resolveLiteral(node as LiteralExpr);\n break;\n\n case InvocationExpr:\n this.resolveInvocation(node as InvocationExpr, document, extraScopes);\n break;\n\n case ArrayExpr:\n this.resolveArray(node as ArrayExpr, document, extraScopes);\n break;\n\n case ReferenceExpr:\n this.resolveReference(node as ReferenceExpr, document, extraScopes);\n break;\n\n case MemberAccessExpr:\n this.resolveMemberAccess(node as MemberAccessExpr, document, extraScopes);\n break;\n\n case UnaryExpr:\n this.resolveUnary(node as UnaryExpr, document, extraScopes);\n break;\n\n case BinaryExpr:\n this.resolveBinary(node as BinaryExpr, document, extraScopes);\n break;\n\n case ThisExpr:\n this.resolveThis(node as ThisExpr, document, extraScopes);\n break;\n\n case NullExpr:\n this.resolveNull(node as NullExpr, document, extraScopes);\n break;\n\n case AttributeArg:\n this.resolveAttributeArg(node as AttributeArg, document, extraScopes);\n break;\n\n default:\n this.resolveDefault(node, document, extraScopes);\n break;\n }\n }\n\n private resolveBinary(node: BinaryExpr, document: LangiumDocument<AstNode>, extraScopes: ScopeProvider[]) {\n switch (node.operator) {\n // TODO: support arithmetics?\n // case '+':\n // case '-':\n // case '*':\n // case '/':\n // this.resolve(node.left, document, extraScopes);\n // this.resolve(node.right, document, extraScopes);\n // this.resolveToBuiltinTypeOrDecl(node, 'Int');\n // break;\n\n case '>':\n case '>=':\n case '<':\n case '<=':\n case '==':\n case '!=':\n case '&&':\n case '||':\n this.resolve(node.left, document, extraScopes);\n this.resolve(node.right, document, extraScopes);\n this.resolveToBuiltinTypeOrDecl(node, 'Boolean');\n break;\n\n case '?':\n case '!':\n case '^':\n this.resolveCollectionPredicate(node, document, extraScopes);\n break;\n\n default:\n throw Error(`Unsupported binary operator: ${node.operator}`);\n }\n }\n\n private resolveUnary(node: UnaryExpr, document: LangiumDocument<AstNode>, extraScopes: ScopeProvider[]) {\n this.resolve(node.operand, document, extraScopes);\n node.$resolvedType = node.operand.$resolvedType;\n }\n\n private resolveReference(node: ReferenceExpr, document: LangiumDocument<AstNode>, extraScopes: ScopeProvider[]) {\n this.linkReference(node, 'target', document, extraScopes);\n node.args.forEach((arg) => this.resolve(arg, document, extraScopes));\n\n if (node.target.ref) {\n // resolve type\n if (node.target.ref.$type === EnumField) {\n this.resolveToBuiltinTypeOrDecl(node, node.target.ref.$container);\n } else {\n this.resolveToDeclaredType(node, (node.target.ref as DataModelField | FunctionParam).type);\n }\n }\n }\n\n private resolveArray(node: ArrayExpr, document: LangiumDocument<AstNode>, extraScopes: ScopeProvider[]) {\n node.items.forEach((item) => this.resolve(item, document, extraScopes));\n\n const itemType = node.items[0].$resolvedType;\n if (itemType?.decl) {\n this.resolveToBuiltinTypeOrDecl(node, itemType.decl, true);\n }\n }\n\n private resolveInvocation(node: InvocationExpr, document: LangiumDocument, extraScopes: ScopeProvider[]) {\n this.linkReference(node, 'function', document, extraScopes);\n node.args.forEach((arg) => this.resolve(arg, document, extraScopes));\n if (node.function.ref) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n const funcDecl = node.function.ref as FunctionDecl;\n if (funcDecl.name === 'auth' && isFromStdlib(funcDecl)) {\n // auth() function is resolved to User model in the current document\n const model = getContainingModel(node);\n const userModel = model?.declarations.find((d) => isDataModel(d) && d.name === 'User');\n if (userModel) {\n node.$resolvedType = { decl: userModel };\n }\n } else if (funcDecl.name === 'future' && isFromStdlib(funcDecl)) {\n // future() function is resolved to current model\n node.$resolvedType = { decl: this.getContainingDataModel(node) };\n } else {\n this.resolveToDeclaredType(node, funcDecl.returnType);\n }\n }\n }\n\n private getContainingDataModel(node: Expression): DataModel | undefined {\n let curr: AstNode | undefined = node.$container;\n while (curr) {\n if (isDataModel(curr)) {\n return curr;\n }\n curr = curr.$container;\n }\n return undefined;\n }\n\n private resolveLiteral(node: LiteralExpr) {\n const type =\n typeof node.value === 'string'\n ? 'String'\n : typeof node.value === 'boolean'\n ? 'Boolean'\n : typeof node.value === 'number'\n ? 'Int'\n : undefined;\n\n if (type) {\n this.resolveToBuiltinTypeOrDecl(node, type);\n }\n }\n\n private resolveMemberAccess(\n node: MemberAccessExpr,\n document: LangiumDocument<AstNode>,\n extraScopes: ScopeProvider[]\n ) {\n this.resolve(node.operand, document, extraScopes);\n const operandResolved = node.operand.$resolvedType;\n\n if (operandResolved && !operandResolved.array && isDataModel(operandResolved.decl)) {\n const modelDecl = operandResolved.decl as DataModel;\n const provider = (name: string) => modelDecl.fields.find((f) => f.name === name);\n extraScopes = [provider, ...extraScopes];\n }\n\n this.linkReference(node, 'member', document, extraScopes);\n if (node.member.ref) {\n this.resolveToDeclaredType(node, node.member.ref.type);\n }\n }\n\n private resolveCollectionPredicate(node: BinaryExpr, document: LangiumDocument, extraScopes: ScopeProvider[]) {\n this.resolve(node.left, document, extraScopes);\n\n const resolvedType = node.left.$resolvedType;\n if (resolvedType && isDataModel(resolvedType.decl) && resolvedType.array) {\n const dataModelDecl = resolvedType.decl;\n const provider = (name: string) => dataModelDecl.fields.find((f) => f.name === name);\n extraScopes = [provider, ...extraScopes];\n this.resolve(node.right, document, extraScopes);\n this.resolveToBuiltinTypeOrDecl(node, 'Boolean');\n } else {\n // error is reported in validation pass\n }\n }\n\n private resolveThis(\n node: ThisExpr,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n document: LangiumDocument<AstNode>,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n extraScopes: ScopeProvider[]\n ) {\n let decl: AstNode | undefined = node.$container;\n\n while (decl && !isDataModel(decl)) {\n decl = decl.$container;\n }\n\n if (decl) {\n this.resolveToBuiltinTypeOrDecl(node, decl);\n }\n }\n\n private resolveNull(\n node: NullExpr,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n document: LangiumDocument<AstNode>,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n extraScopes: ScopeProvider[]\n ) {\n // TODO: how to really resolve null?\n this.resolveToBuiltinTypeOrDecl(node, 'Null');\n }\n\n private resolveAttributeArg(node: AttributeArg, document: LangiumDocument<AstNode>, extraScopes: ScopeProvider[]) {\n const attrParam = this.findAttrParamForArg(node);\n const attrAppliedOn = node.$container.$container;\n\n if (attrParam?.type.type === 'TransitiveFieldReference' && isDataModelField(attrAppliedOn)) {\n // \"TransitiveFieldReference\" is resolved in the context of the containing model of the field\n // where the attribute is applied\n //\n // E.g.:\n //\n // model A {\n // myId @id String\n // }\n //\n // model B {\n // id @id String\n // a A @relation(fields: [id], references: [myId])\n // }\n //\n // In model B, the attribute argument \"myId\" is resolved to the field \"myId\" in model A\n\n const transtiveDataModel = attrAppliedOn.type.reference?.ref as DataModel;\n if (transtiveDataModel) {\n // resolve references in the context of the transitive data model\n const scopeProvider = (name: string) => transtiveDataModel.fields.find((f) => f.name === name);\n if (isArrayExpr(node.value)) {\n node.value.items.forEach((item) => {\n if (isReferenceExpr(item)) {\n const resolved = this.resolveFromScopeProviders(item, 'target', document, [scopeProvider]);\n if (resolved) {\n this.resolveToDeclaredType(item, (resolved as DataModelField).type);\n } else {\n // need to clear linked reference, because it's resolved in default scope by default\n const ref = item.target as DefaultReference;\n ref._ref = this.createLinkingError({\n reference: ref,\n container: item,\n property: 'target',\n });\n }\n }\n });\n if (node.value.items[0]?.$resolvedType?.decl) {\n this.resolveToBuiltinTypeOrDecl(node.value, node.value.items[0].$resolvedType.decl, true);\n }\n } else if (isReferenceExpr(node.value)) {\n const resolved = this.resolveFromScopeProviders(node.value, 'target', document, [scopeProvider]);\n if (resolved) {\n this.resolveToDeclaredType(node.value, (resolved as DataModelField).type);\n } else {\n // need to clear linked reference, because it's resolved in default scope by default\n const ref = node.value.target as DefaultReference;\n ref._ref = this.createLinkingError({\n reference: ref,\n container: node.value,\n property: 'target',\n });\n }\n }\n }\n } else {\n this.resolve(node.value, document, extraScopes);\n }\n node.$resolvedType = node.value.$resolvedType;\n }\n\n private findAttrParamForArg(arg: AttributeArg): AttributeParam | undefined {\n const attr = arg.$container.decl.ref;\n if (!attr) {\n return undefined;\n }\n if (arg.name) {\n return attr.params?.find((p) => p.name === arg.name);\n } else {\n const index = arg.$container.args.findIndex((a) => a === arg);\n return attr.params[index];\n }\n }\n\n private resolveDefault(node: AstNode, document: LangiumDocument<AstNode>, extraScopes: ScopeProvider[]) {\n for (const [property, value] of Object.entries(node)) {\n if (!property.startsWith('$')) {\n if (isReference(value)) {\n this.linkReference(node, property, document, extraScopes);\n }\n }\n }\n for (const child of streamContents(node)) {\n this.resolve(child, document, extraScopes);\n }\n }\n\n //#endregion\n\n //#region Utils\n\n private resolveToDeclaredType(node: AstNode, type: FunctionParamType | DataModelFieldType) {\n if (type.type) {\n const mappedType = mapBuiltinTypeToExpressionType(type.type);\n node.$resolvedType = { decl: mappedType, array: type.array };\n } else if (type.reference) {\n node.$resolvedType = {\n decl: type.reference.ref,\n array: type.array,\n };\n }\n }\n\n private resolveToBuiltinTypeOrDecl(node: AstNode, type: ResolvedShape, array = false) {\n node.$resolvedType = { decl: type, array };\n }\n\n //#endregion\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"zmodel-linker.js","sourceRoot":"","sources":["../../src/language-server/zmodel-linker.ts"],"names":[],"mappings":"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"}
@@ -1,63 +1,58 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ZModelModule = void 0;
7
- exports.createSharedModule = createSharedModule;
8
- exports.createZModelServices = createZModelServices;
9
- var _module = require("@zenstackhq/language/module");
10
- var _langium = require("langium");
11
- var _vscodeLanguageserver = require("vscode-languageserver");
12
- var _vscodeLanguageserverTextdocument = require("vscode-languageserver-textdocument");
13
- var _zmodelValidator = require("./validator/zmodel-validator");
14
- var _zmodelFormatter = require("./zmodel-formatter");
15
- var _zmodelLinker = require("./zmodel-linker");
16
- var _zmodelScope = require("./zmodel-scope");
17
- var _zmodelWorkspaceManager = _interopRequireDefault(require("./zmodel-workspace-manager"));
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createZModelServices = exports.createSharedModule = exports.ZModelModule = void 0;
7
+ const module_1 = require("@zenstackhq/language/module");
8
+ const langium_1 = require("langium");
9
+ const vscode_languageserver_1 = require("vscode-languageserver");
10
+ const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
11
+ const zmodel_validator_1 = require("./validator/zmodel-validator");
12
+ const zmodel_formatter_1 = require("./zmodel-formatter");
13
+ const zmodel_linker_1 = require("./zmodel-linker");
14
+ const zmodel_scope_1 = require("./zmodel-scope");
15
+ const zmodel_workspace_manager_1 = __importDefault(require("./zmodel-workspace-manager"));
19
16
  /**
20
17
  * Dependency injection module that overrides Langium default services and contributes the
21
18
  * declared custom services. The Langium defaults can be partially specified to override only
22
19
  * selected services, while the custom services must be fully specified.
23
20
  */
24
- const ZModelModule = {
25
- references: {
26
- ScopeComputation: services => new _zmodelScope.ZModelScopeComputation(services),
27
- Linker: services => new _zmodelLinker.ZModelLinker(services)
28
- },
29
- validation: {
30
- ValidationRegistry: services => new _zmodelValidator.ZModelValidationRegistry(services),
31
- ZModelValidator: () => new _zmodelValidator.ZModelValidator()
32
- },
33
- lsp: {
34
- Formatter: () => new _zmodelFormatter.ZModelFormatter()
35
- }
21
+ exports.ZModelModule = {
22
+ references: {
23
+ ScopeComputation: (services) => new zmodel_scope_1.ZModelScopeComputation(services),
24
+ Linker: (services) => new zmodel_linker_1.ZModelLinker(services),
25
+ },
26
+ validation: {
27
+ ValidationRegistry: (services) => new zmodel_validator_1.ZModelValidationRegistry(services),
28
+ ZModelValidator: () => new zmodel_validator_1.ZModelValidator(),
29
+ },
30
+ lsp: {
31
+ Formatter: () => new zmodel_formatter_1.ZModelFormatter(),
32
+ },
36
33
  };
37
-
38
34
  // this duplicates createDefaultSharedModule except that a custom WorkspaceManager is used
39
- exports.ZModelModule = ZModelModule;
40
35
  function createSharedModule(context) {
41
- return {
42
- ServiceRegistry: () => new _langium.DefaultServiceRegistry(),
43
- lsp: {
44
- Connection: () => context.connection,
45
- LanguageServer: services => new _langium.DefaultLanguageServer(services)
46
- },
47
- workspace: {
48
- LangiumDocuments: services => new _langium.DefaultLangiumDocuments(services),
49
- LangiumDocumentFactory: services => new _langium.DefaultLangiumDocumentFactory(services),
50
- DocumentBuilder: services => new _langium.DefaultDocumentBuilder(services),
51
- TextDocuments: () => new _vscodeLanguageserver.TextDocuments(_vscodeLanguageserverTextdocument.TextDocument),
52
- IndexManager: services => new _langium.DefaultIndexManager(services),
53
- WorkspaceManager: services => new _zmodelWorkspaceManager.default(services),
54
- FileSystemProvider: services => context.fileSystemProvider(services),
55
- MutexLock: () => new _langium.MutexLock(),
56
- ConfigurationProvider: services => new _langium.DefaultConfigurationProvider(services)
57
- }
58
- };
36
+ return {
37
+ ServiceRegistry: () => new langium_1.DefaultServiceRegistry(),
38
+ lsp: {
39
+ Connection: () => context.connection,
40
+ LanguageServer: (services) => new langium_1.DefaultLanguageServer(services),
41
+ },
42
+ workspace: {
43
+ LangiumDocuments: (services) => new langium_1.DefaultLangiumDocuments(services),
44
+ LangiumDocumentFactory: (services) => new langium_1.DefaultLangiumDocumentFactory(services),
45
+ DocumentBuilder: (services) => new langium_1.DefaultDocumentBuilder(services),
46
+ TextDocuments: () => new vscode_languageserver_1.TextDocuments(vscode_languageserver_textdocument_1.TextDocument),
47
+ IndexManager: (services) => new langium_1.DefaultIndexManager(services),
48
+ WorkspaceManager: (services) => new zmodel_workspace_manager_1.default(services),
49
+ FileSystemProvider: (services) => context.fileSystemProvider(services),
50
+ MutexLock: () => new langium_1.MutexLock(),
51
+ ConfigurationProvider: (services) => new langium_1.DefaultConfigurationProvider(services),
52
+ },
53
+ };
59
54
  }
60
-
55
+ exports.createSharedModule = createSharedModule;
61
56
  /**
62
57
  * Create the full set of services required by Langium.
63
58
  *
@@ -74,14 +69,10 @@ function createSharedModule(context) {
74
69
  * @returns An object wrapping the shared services and the language-specific services
75
70
  */
76
71
  function createZModelServices(context) {
77
- const shared = (0, _langium.inject)(createSharedModule(context), _module.ZModelGeneratedSharedModule);
78
- const ZModel = (0, _langium.inject)((0, _langium.createDefaultModule)({
79
- shared
80
- }), _module.ZModelGeneratedModule, ZModelModule);
81
- shared.ServiceRegistry.register(ZModel);
82
- return {
83
- shared,
84
- ZModel
85
- };
72
+ const shared = (0, langium_1.inject)(createSharedModule(context), module_1.ZModelGeneratedSharedModule);
73
+ const ZModel = (0, langium_1.inject)((0, langium_1.createDefaultModule)({ shared }), module_1.ZModelGeneratedModule, exports.ZModelModule);
74
+ shared.ServiceRegistry.register(ZModel);
75
+ return { shared, ZModel };
86
76
  }
77
+ exports.createZModelServices = createZModelServices;
87
78
  //# sourceMappingURL=zmodel-module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zmodel-module.js","names":["ZModelModule","references","ScopeComputation","services","ZModelScopeComputation","Linker","ZModelLinker","validation","ValidationRegistry","ZModelValidationRegistry","ZModelValidator","lsp","Formatter","ZModelFormatter","createSharedModule","context","ServiceRegistry","DefaultServiceRegistry","Connection","connection","LanguageServer","DefaultLanguageServer","workspace","LangiumDocuments","DefaultLangiumDocuments","LangiumDocumentFactory","DefaultLangiumDocumentFactory","DocumentBuilder","DefaultDocumentBuilder","TextDocuments","TextDocument","IndexManager","DefaultIndexManager","WorkspaceManager","ZModelWorkspaceManager","FileSystemProvider","fileSystemProvider","MutexLock","ConfigurationProvider","DefaultConfigurationProvider","createZModelServices","shared","inject","ZModelGeneratedSharedModule","ZModel","createDefaultModule","ZModelGeneratedModule","register"],"sources":["../../src/language-server/zmodel-module.ts"],"sourcesContent":["import { ZModelGeneratedModule, ZModelGeneratedSharedModule } from '@zenstackhq/language/module';\nimport {\n createDefaultModule,\n DefaultConfigurationProvider,\n DefaultDocumentBuilder,\n DefaultIndexManager,\n DefaultLangiumDocumentFactory,\n DefaultLangiumDocuments,\n DefaultLanguageServer,\n DefaultServiceRegistry,\n DefaultSharedModuleContext,\n inject,\n LangiumDefaultSharedServices,\n LangiumServices,\n LangiumSharedServices,\n Module,\n MutexLock,\n PartialLangiumServices,\n} from 'langium';\nimport { TextDocuments } from 'vscode-languageserver';\nimport { TextDocument } from 'vscode-languageserver-textdocument';\nimport { ZModelValidationRegistry, ZModelValidator } from './validator/zmodel-validator';\nimport { ZModelFormatter } from './zmodel-formatter';\nimport { ZModelLinker } from './zmodel-linker';\nimport { ZModelScopeComputation } from './zmodel-scope';\nimport ZModelWorkspaceManager from './zmodel-workspace-manager';\n\n/**\n * Declaration of custom services - add your own service classes here.\n */\nexport type ZModelAddedServices = {\n validation: {\n ZModelValidator: ZModelValidator;\n };\n};\n\n/**\n * Union of Langium default services and your custom services - use this as constructor parameter\n * of custom service classes.\n */\nexport type ZModelServices = LangiumServices & ZModelAddedServices;\n\n/**\n * Dependency injection module that overrides Langium default services and contributes the\n * declared custom services. The Langium defaults can be partially specified to override only\n * selected services, while the custom services must be fully specified.\n */\nexport const ZModelModule: Module<ZModelServices, PartialLangiumServices & ZModelAddedServices> = {\n references: {\n ScopeComputation: (services) => new ZModelScopeComputation(services),\n Linker: (services) => new ZModelLinker(services),\n },\n validation: {\n ValidationRegistry: (services) => new ZModelValidationRegistry(services),\n ZModelValidator: () => new ZModelValidator(),\n },\n lsp: {\n Formatter: () => new ZModelFormatter(),\n },\n};\n\n// this duplicates createDefaultSharedModule except that a custom WorkspaceManager is used\nexport function createSharedModule(\n context: DefaultSharedModuleContext\n): Module<LangiumSharedServices, LangiumDefaultSharedServices> {\n return {\n ServiceRegistry: () => new DefaultServiceRegistry(),\n lsp: {\n Connection: () => context.connection,\n LanguageServer: (services) => new DefaultLanguageServer(services),\n },\n workspace: {\n LangiumDocuments: (services) => new DefaultLangiumDocuments(services),\n LangiumDocumentFactory: (services) => new DefaultLangiumDocumentFactory(services),\n DocumentBuilder: (services) => new DefaultDocumentBuilder(services),\n TextDocuments: () => new TextDocuments(TextDocument),\n IndexManager: (services) => new DefaultIndexManager(services),\n WorkspaceManager: (services) => new ZModelWorkspaceManager(services),\n FileSystemProvider: (services) => context.fileSystemProvider(services),\n MutexLock: () => new MutexLock(),\n ConfigurationProvider: (services) => new DefaultConfigurationProvider(services),\n },\n };\n}\n\n/**\n * Create the full set of services required by Langium.\n *\n * First inject the shared services by merging two modules:\n * - Langium default shared services\n * - Services generated by langium-cli\n *\n * Then inject the language-specific services by merging three modules:\n * - Langium default language-specific services\n * - Services generated by langium-cli\n * - Services specified in this file\n *\n * @param context Optional module context with the LSP connection\n * @returns An object wrapping the shared services and the language-specific services\n */\nexport function createZModelServices(context: DefaultSharedModuleContext): {\n shared: LangiumSharedServices;\n ZModel: ZModelServices;\n} {\n const shared = inject(createSharedModule(context), ZModelGeneratedSharedModule);\n\n const ZModel = inject(createDefaultModule({ shared }), ZModelGeneratedModule, ZModelModule);\n shared.ServiceRegistry.register(ZModel);\n return { shared, ZModel };\n}\n"],"mappings":";;;;;;;;AAAA;AACA;AAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AAAgE;AAiBhE;AACA;AACA;AACA;AACA;AACO,MAAMA,YAAkF,GAAG;EAC9FC,UAAU,EAAE;IACRC,gBAAgB,EAAGC,QAAQ,IAAK,IAAIC,mCAAsB,CAACD,QAAQ,CAAC;IACpEE,MAAM,EAAGF,QAAQ,IAAK,IAAIG,0BAAY,CAACH,QAAQ;EACnD,CAAC;EACDI,UAAU,EAAE;IACRC,kBAAkB,EAAGL,QAAQ,IAAK,IAAIM,yCAAwB,CAACN,QAAQ,CAAC;IACxEO,eAAe,EAAE,MAAM,IAAIA,gCAAe;EAC9C,CAAC;EACDC,GAAG,EAAE;IACDC,SAAS,EAAE,MAAM,IAAIC,gCAAe;EACxC;AACJ,CAAC;;AAED;AAAA;AACO,SAASC,kBAAkB,CAC9BC,OAAmC,EACwB;EAC3D,OAAO;IACHC,eAAe,EAAE,MAAM,IAAIC,+BAAsB,EAAE;IACnDN,GAAG,EAAE;MACDO,UAAU,EAAE,MAAMH,OAAO,CAACI,UAAU;MACpCC,cAAc,EAAGjB,QAAQ,IAAK,IAAIkB,8BAAqB,CAAClB,QAAQ;IACpE,CAAC;IACDmB,SAAS,EAAE;MACPC,gBAAgB,EAAGpB,QAAQ,IAAK,IAAIqB,gCAAuB,CAACrB,QAAQ,CAAC;MACrEsB,sBAAsB,EAAGtB,QAAQ,IAAK,IAAIuB,sCAA6B,CAACvB,QAAQ,CAAC;MACjFwB,eAAe,EAAGxB,QAAQ,IAAK,IAAIyB,+BAAsB,CAACzB,QAAQ,CAAC;MACnE0B,aAAa,EAAE,MAAM,IAAIA,mCAAa,CAACC,8CAAY,CAAC;MACpDC,YAAY,EAAG5B,QAAQ,IAAK,IAAI6B,4BAAmB,CAAC7B,QAAQ,CAAC;MAC7D8B,gBAAgB,EAAG9B,QAAQ,IAAK,IAAI+B,+BAAsB,CAAC/B,QAAQ,CAAC;MACpEgC,kBAAkB,EAAGhC,QAAQ,IAAKY,OAAO,CAACqB,kBAAkB,CAACjC,QAAQ,CAAC;MACtEkC,SAAS,EAAE,MAAM,IAAIA,kBAAS,EAAE;MAChCC,qBAAqB,EAAGnC,QAAQ,IAAK,IAAIoC,qCAA4B,CAACpC,QAAQ;IAClF;EACJ,CAAC;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASqC,oBAAoB,CAACzB,OAAmC,EAGtE;EACE,MAAM0B,MAAM,GAAG,IAAAC,eAAM,EAAC5B,kBAAkB,CAACC,OAAO,CAAC,EAAE4B,mCAA2B,CAAC;EAE/E,MAAMC,MAAM,GAAG,IAAAF,eAAM,EAAC,IAAAG,4BAAmB,EAAC;IAAEJ;EAAO,CAAC,CAAC,EAAEK,6BAAqB,EAAE9C,YAAY,CAAC;EAC3FyC,MAAM,CAACzB,eAAe,CAAC+B,QAAQ,CAACH,MAAM,CAAC;EACvC,OAAO;IAAEH,MAAM;IAAEG;EAAO,CAAC;AAC7B"}
1
+ {"version":3,"file":"zmodel-module.js","sourceRoot":"","sources":["../../src/language-server/zmodel-module.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAiG;AACjG,qCAiBiB;AACjB,iEAAsD;AACtD,2FAAkE;AAClE,mEAAyF;AACzF,yDAAqD;AACrD,mDAA+C;AAC/C,iDAAwD;AACxD,0FAAgE;AAiBhE;;;;GAIG;AACU,QAAA,YAAY,GAAyE;IAC9F,UAAU,EAAE;QACR,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,qCAAsB,CAAC,QAAQ,CAAC;QACpE,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,4BAAY,CAAC,QAAQ,CAAC;KACnD;IACD,UAAU,EAAE;QACR,kBAAkB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,2CAAwB,CAAC,QAAQ,CAAC;QACxE,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,kCAAe,EAAE;KAC/C;IACD,GAAG,EAAE;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,kCAAe,EAAE;KACzC;CACJ,CAAC;AAEF,0FAA0F;AAC1F,SAAgB,kBAAkB,CAC9B,OAAmC;IAEnC,OAAO;QACH,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,gCAAsB,EAAE;QACnD,GAAG,EAAE;YACD,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU;YACpC,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,+BAAqB,CAAC,QAAQ,CAAC;SACpE;QACD,SAAS,EAAE;YACP,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,iCAAuB,CAAC,QAAQ,CAAC;YACrE,sBAAsB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,uCAA6B,CAAC,QAAQ,CAAC;YACjF,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,gCAAsB,CAAC,QAAQ,CAAC;YACnE,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,qCAAa,CAAC,iDAAY,CAAC;YACpD,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,6BAAmB,CAAC,QAAQ,CAAC;YAC7D,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,kCAAsB,CAAC,QAAQ,CAAC;YACpE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YACtE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAS,EAAE;YAChC,qBAAqB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,sCAA4B,CAAC,QAAQ,CAAC;SAClF;KACJ,CAAC;AACN,CAAC;AArBD,gDAqBC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,oBAAoB,CAAC,OAAmC;IAIpE,MAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,oCAA2B,CAAC,CAAC;IAEhF,MAAM,MAAM,GAAG,IAAA,gBAAM,EAAC,IAAA,6BAAmB,EAAC,EAAE,MAAM,EAAE,CAAC,EAAE,8BAAqB,EAAE,oBAAY,CAAC,CAAC;IAC5F,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AATD,oDASC"}
@@ -1,34 +1,44 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
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
+ Object.defineProperty(exports, "__esModule", { value: true });
6
12
  exports.ZModelScopeComputation = void 0;
7
- var _ast = require("@zenstackhq/language/ast");
8
- var _langium = require("langium");
13
+ const ast_1 = require("@zenstackhq/language/ast");
14
+ const langium_1 = require("langium");
9
15
  /**
10
16
  * Custom Langium ScopeComputation implementation which adds enum fields into global scope
11
17
  */
12
- class ZModelScopeComputation extends _langium.DefaultScopeComputation {
13
- constructor(services) {
14
- super(services);
15
- this.services = services;
16
- }
17
- async computeExports(document, cancelToken) {
18
- const result = await super.computeExports(document, cancelToken);
19
-
20
- // add enum fields so they can be globally resolved across modules
21
- for (const node of (0, _langium.streamAllContents)(document.parseResult.value)) {
22
- if (cancelToken) {
23
- await (0, _langium.interruptAndCheck)(cancelToken);
24
- }
25
- if ((0, _ast.isEnumField)(node)) {
26
- const desc = this.services.workspace.AstNodeDescriptionProvider.createDescription(node, node.name, document);
27
- result.push(desc);
28
- }
18
+ class ZModelScopeComputation extends langium_1.DefaultScopeComputation {
19
+ constructor(services) {
20
+ super(services);
21
+ this.services = services;
22
+ }
23
+ computeExports(document, cancelToken) {
24
+ const _super = Object.create(null, {
25
+ computeExports: { get: () => super.computeExports }
26
+ });
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ const result = yield _super.computeExports.call(this, document, cancelToken);
29
+ // add enum fields so they can be globally resolved across modules
30
+ for (const node of (0, langium_1.streamAllContents)(document.parseResult.value)) {
31
+ if (cancelToken) {
32
+ yield (0, langium_1.interruptAndCheck)(cancelToken);
33
+ }
34
+ if ((0, ast_1.isEnumField)(node)) {
35
+ const desc = this.services.workspace.AstNodeDescriptionProvider.createDescription(node, node.name, document);
36
+ result.push(desc);
37
+ }
38
+ }
39
+ return result;
40
+ });
29
41
  }
30
- return result;
31
- }
32
42
  }
33
43
  exports.ZModelScopeComputation = ZModelScopeComputation;
34
44
  //# sourceMappingURL=zmodel-scope.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zmodel-scope.js","names":["ZModelScopeComputation","DefaultScopeComputation","constructor","services","computeExports","document","cancelToken","result","node","streamAllContents","parseResult","value","interruptAndCheck","isEnumField","desc","workspace","AstNodeDescriptionProvider","createDescription","name","push"],"sources":["../../src/language-server/zmodel-scope.ts"],"sourcesContent":["import { isEnumField } from '@zenstackhq/language/ast';\nimport {\n AstNode,\n AstNodeDescription,\n DefaultScopeComputation,\n interruptAndCheck,\n LangiumDocument,\n LangiumServices,\n streamAllContents,\n} from 'langium';\nimport { CancellationToken } from 'vscode-jsonrpc';\n\n/**\n * Custom Langium ScopeComputation implementation which adds enum fields into global scope\n */\nexport class ZModelScopeComputation extends DefaultScopeComputation {\n constructor(private readonly services: LangiumServices) {\n super(services);\n }\n\n async computeExports(\n document: LangiumDocument<AstNode>,\n cancelToken?: CancellationToken | undefined\n ): Promise<AstNodeDescription[]> {\n const result = await super.computeExports(document, cancelToken);\n\n // add enum fields so they can be globally resolved across modules\n for (const node of streamAllContents(document.parseResult.value)) {\n if (cancelToken) {\n await interruptAndCheck(cancelToken);\n }\n if (isEnumField(node)) {\n const desc = this.services.workspace.AstNodeDescriptionProvider.createDescription(\n node,\n node.name,\n document\n );\n result.push(desc);\n }\n }\n\n return result;\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AAWA;AACA;AACA;AACO,MAAMA,sBAAsB,SAASC,gCAAuB,CAAC;EAChEC,WAAW,CAAkBC,QAAyB,EAAE;IACpD,KAAK,CAACA,QAAQ,CAAC;IAAC,KADSA,QAAyB,GAAzBA,QAAyB;EAEtD;EAEA,MAAMC,cAAc,CAChBC,QAAkC,EAClCC,WAA2C,EACd;IAC7B,MAAMC,MAAM,GAAG,MAAM,KAAK,CAACH,cAAc,CAACC,QAAQ,EAAEC,WAAW,CAAC;;IAEhE;IACA,KAAK,MAAME,IAAI,IAAI,IAAAC,0BAAiB,EAACJ,QAAQ,CAACK,WAAW,CAACC,KAAK,CAAC,EAAE;MAC9D,IAAIL,WAAW,EAAE;QACb,MAAM,IAAAM,0BAAiB,EAACN,WAAW,CAAC;MACxC;MACA,IAAI,IAAAO,gBAAW,EAACL,IAAI,CAAC,EAAE;QACnB,MAAMM,IAAI,GAAG,IAAI,CAACX,QAAQ,CAACY,SAAS,CAACC,0BAA0B,CAACC,iBAAiB,CAC7ET,IAAI,EACJA,IAAI,CAACU,IAAI,EACTb,QAAQ,CACX;QACDE,MAAM,CAACY,IAAI,CAACL,IAAI,CAAC;MACrB;IACJ;IAEA,OAAOP,MAAM;EACjB;AACJ;AAAC"}
1
+ {"version":3,"file":"zmodel-scope.js","sourceRoot":"","sources":["../../src/language-server/zmodel-scope.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAAuD;AACvD,qCAQiB;AAGjB;;GAEG;AACH,MAAa,sBAAuB,SAAQ,iCAAuB;IAC/D,YAA6B,QAAyB;QAClD,KAAK,CAAC,QAAQ,CAAC,CAAC;QADS,aAAQ,GAAR,QAAQ,CAAiB;IAEtD,CAAC;IAEK,cAAc,CAChB,QAAkC,EAClC,WAA2C;;;;;YAE3C,MAAM,MAAM,GAAG,MAAM,OAAM,cAAc,YAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAEjE,kEAAkE;YAClE,KAAK,MAAM,IAAI,IAAI,IAAA,2BAAiB,EAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;gBAC9D,IAAI,WAAW,EAAE;oBACb,MAAM,IAAA,2BAAiB,EAAC,WAAW,CAAC,CAAC;iBACxC;gBACD,IAAI,IAAA,iBAAW,EAAC,IAAI,CAAC,EAAE;oBACnB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,0BAA0B,CAAC,iBAAiB,CAC7E,IAAI,EACJ,IAAI,CAAC,IAAI,EACT,QAAQ,CACX,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACrB;aACJ;YAED,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;CACJ;AA5BD,wDA4BC"}
@@ -1,25 +1,37 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _langium = require("langium");
8
- var _path = _interopRequireDefault(require("path"));
9
- var _vscodeUri = require("vscode-uri");
10
- var _constants = require("./constants");
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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
+ const langium_1 = require("langium");
16
+ const path_1 = __importDefault(require("path"));
17
+ const vscode_uri_1 = require("vscode-uri");
18
+ const constants_1 = require("./constants");
12
19
  /**
13
20
  * Custom Langium WorkspaceManager implementation which automatically loads stdlib.zmodel
14
21
  */
15
- class ZModelWorkspaceManager extends _langium.DefaultWorkspaceManager {
16
- async loadAdditionalDocuments(_folders, _collector) {
17
- await super.loadAdditionalDocuments(_folders, _collector);
18
- const stdLibUri = _vscodeUri.URI.file(_path.default.join(__dirname, '../res', _constants.STD_LIB_MODULE_NAME));
19
- console.log(`Adding stdlib document from ${stdLibUri}`);
20
- const stdlib = this.langiumDocuments.getOrCreateDocument(stdLibUri);
21
- _collector(stdlib);
22
- }
22
+ class ZModelWorkspaceManager extends langium_1.DefaultWorkspaceManager {
23
+ loadAdditionalDocuments(_folders, _collector) {
24
+ const _super = Object.create(null, {
25
+ loadAdditionalDocuments: { get: () => super.loadAdditionalDocuments }
26
+ });
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ yield _super.loadAdditionalDocuments.call(this, _folders, _collector);
29
+ const stdLibUri = vscode_uri_1.URI.file(path_1.default.join(__dirname, '../res', constants_1.STD_LIB_MODULE_NAME));
30
+ console.log(`Adding stdlib document from ${stdLibUri}`);
31
+ const stdlib = this.langiumDocuments.getOrCreateDocument(stdLibUri);
32
+ _collector(stdlib);
33
+ });
34
+ }
23
35
  }
24
36
  exports.default = ZModelWorkspaceManager;
25
37
  //# sourceMappingURL=zmodel-workspace-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zmodel-workspace-manager.js","names":["ZModelWorkspaceManager","DefaultWorkspaceManager","loadAdditionalDocuments","_folders","_collector","stdLibUri","URI","file","path","join","__dirname","STD_LIB_MODULE_NAME","console","log","stdlib","langiumDocuments","getOrCreateDocument"],"sources":["../../src/language-server/zmodel-workspace-manager.ts"],"sourcesContent":["import { DefaultWorkspaceManager, LangiumDocument } from 'langium';\nimport path from 'path';\nimport { WorkspaceFolder } from 'vscode-languageserver';\nimport { URI } from 'vscode-uri';\nimport { STD_LIB_MODULE_NAME } from './constants';\n\n/**\n * Custom Langium WorkspaceManager implementation which automatically loads stdlib.zmodel\n */\nexport default class ZModelWorkspaceManager extends DefaultWorkspaceManager {\n protected async loadAdditionalDocuments(\n _folders: WorkspaceFolder[],\n _collector: (document: LangiumDocument) => void\n ): Promise<void> {\n await super.loadAdditionalDocuments(_folders, _collector);\n const stdLibUri = URI.file(path.join(__dirname, '../res', STD_LIB_MODULE_NAME));\n console.log(`Adding stdlib document from ${stdLibUri}`);\n const stdlib = this.langiumDocuments.getOrCreateDocument(stdLibUri);\n _collector(stdlib);\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AAEA;AACA;AAAkD;AAElD;AACA;AACA;AACe,MAAMA,sBAAsB,SAASC,gCAAuB,CAAC;EACxE,MAAgBC,uBAAuB,CACnCC,QAA2B,EAC3BC,UAA+C,EAClC;IACb,MAAM,KAAK,CAACF,uBAAuB,CAACC,QAAQ,EAAEC,UAAU,CAAC;IACzD,MAAMC,SAAS,GAAGC,cAAG,CAACC,IAAI,CAACC,aAAI,CAACC,IAAI,CAACC,SAAS,EAAE,QAAQ,EAAEC,8BAAmB,CAAC,CAAC;IAC/EC,OAAO,CAACC,GAAG,CAAE,+BAA8BR,SAAU,EAAC,CAAC;IACvD,MAAMS,MAAM,GAAG,IAAI,CAACC,gBAAgB,CAACC,mBAAmB,CAACX,SAAS,CAAC;IACnED,UAAU,CAACU,MAAM,CAAC;EACtB;AACJ;AAAC"}
1
+ {"version":3,"file":"zmodel-workspace-manager.js","sourceRoot":"","sources":["../../src/language-server/zmodel-workspace-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,qCAAmE;AACnE,gDAAwB;AAExB,2CAAiC;AACjC,2CAAkD;AAElD;;GAEG;AACH,MAAqB,sBAAuB,SAAQ,iCAAuB;IACvD,uBAAuB,CACnC,QAA2B,EAC3B,UAA+C;;;;;YAE/C,MAAM,OAAM,uBAAuB,YAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC1D,MAAM,SAAS,GAAG,gBAAG,CAAC,IAAI,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,+BAAmB,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;YACpE,UAAU,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;KAAA;CACJ;AAXD,yCAWC"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publisher": "zenstack",
4
4
  "displayName": "ZenStack Language Tools",
5
5
  "description": "A toolkit for building secure CRUD apps with Next.js + Typescript",
6
- "version": "1.0.0-alpha.23",
6
+ "version": "1.0.0-alpha.24",
7
7
  "author": {
8
8
  "name": "ZenStack Team"
9
9
  },
@@ -15,7 +15,7 @@
15
15
  "typescript",
16
16
  "data modeling"
17
17
  ],
18
- "preview": true,
18
+ "preview": false,
19
19
  "icon": "asset/logo-256-bg.png",
20
20
  "repository": {
21
21
  "type": "git",
@@ -90,15 +90,11 @@
90
90
  "vscode-languageserver-textdocument": "^1.0.7",
91
91
  "vscode-uri": "^3.0.6",
92
92
  "zod": "^3.19.1",
93
- "@zenstackhq/language": "1.0.0-alpha.23",
94
- "@zenstackhq/runtime": "1.0.0-alpha.23",
95
- "@zenstackhq/sdk": "1.0.0-alpha.23"
93
+ "@zenstackhq/language": "1.0.0-alpha.24",
94
+ "@zenstackhq/runtime": "1.0.0-alpha.24",
95
+ "@zenstackhq/sdk": "1.0.0-alpha.24"
96
96
  },
97
97
  "devDependencies": {
98
- "@babel/cli": "^7.19.3",
99
- "@babel/core": "^7.20.5",
100
- "@babel/preset-env": "^7.20.2",
101
- "@babel/preset-typescript": "^7.18.6",
102
98
  "@types/async-exit-hook": "^2.0.0",
103
99
  "@types/jest": "^29.2.0",
104
100
  "@types/node": "^14.18.32",
@@ -109,7 +105,6 @@
109
105
  "@types/vscode": "^1.56.0",
110
106
  "@typescript-eslint/eslint-plugin": "^5.42.0",
111
107
  "@typescript-eslint/parser": "^5.42.0",
112
- "babel-plugin-inline-dotenv": "^1.7.0",
113
108
  "concurrently": "^7.4.0",
114
109
  "copyfiles": "^2.4.1",
115
110
  "dotenv": "^16.0.3",
@@ -118,6 +113,7 @@
118
113
  "eslint-plugin-jest": "^27.1.7",
119
114
  "jest": "^29.2.1",
120
115
  "langium-cli": "^1.0.0",
116
+ "renamer": "^4.0.0",
121
117
  "rimraf": "^3.0.2",
122
118
  "tmp": "^0.2.1",
123
119
  "ts-jest": "^29.0.3",
@@ -131,9 +127,9 @@
131
127
  "vscode:prepublish": "pnpm lint && pnpm bundle",
132
128
  "vscode:package": "vsce package --no-dependencies",
133
129
  "clean": "rimraf bundle dist",
134
- "build": "pnpm clean && pnpm lint && tsc && babel src -d dist --extensions '.ts' && copyfiles -F \"bin/*\" ./README.md ./LICENSE ./package.json dist && copyfiles -u 1 \"src/res/*\" dist && node build/post-build.js",
130
+ "build": "pnpm clean && pnpm lint && tsc && copyfiles -F \"bin/*\" dist && copyfiles ./README-global.md ./LICENSE ./package.json dist && renamer --replace \"README.md\" dist/README-global.md && copyfiles -u 1 \"src/res/*\" dist && node build/post-build.js",
135
131
  "bundle": "pnpm clean && pnpm lint && node build/bundle.js --minify",
136
- "watch": "babel src -d dist --extensions '.ts' -w",
132
+ "watch": "tsc --watch",
137
133
  "lint": "eslint src tests --ext ts",
138
134
  "test": "jest",
139
135
  "publish-dev": "pnpm publish --tag dev",