From 86c57fd35b82e15ffcb510ba098efef0968fc46b Mon Sep 17 00:00:00 2001 From: Yiming Date: Mon, 8 May 2023 12:01:35 -0700 Subject: [PATCH] chore: remove dep to chevrotain and upgrade langium to 1.2.0 (#406) --- package.json | 2 +- packages/language/package.json | 6 +-- packages/language/src/generated/ast.ts | 36 +++++++++++++++++- packages/language/src/generated/grammar.ts | 2 +- packages/language/src/generated/module.ts | 2 +- packages/next/package.json | 2 +- packages/plugins/openapi/package.json | 2 +- packages/plugins/react/package.json | 2 +- packages/plugins/trpc/package.json | 2 +- packages/runtime/package.json | 2 +- packages/schema/package.json | 5 +-- packages/sdk/package.json | 2 +- packages/server/package.json | 2 +- packages/testtools/package.json | 2 +- pnpm-lock.yaml | 40 ++++++-------------- tests/integration/test-run/package-lock.json | 10 ++--- 16 files changed, 65 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index 7d04946c5..acfeb088d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zenstack-monorepo", - "version": "1.0.0-alpha.115", + "version": "1.0.0-alpha.116", "description": "", "scripts": { "build": "pnpm -r build", diff --git a/packages/language/package.json b/packages/language/package.json index f90bf0dc0..31e3a8e24 100644 --- a/packages/language/package.json +++ b/packages/language/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/language", - "version": "1.0.0-alpha.115", + "version": "1.0.0-alpha.116", "displayName": "ZenStack modeling language compiler", "description": "ZenStack modeling language compiler", "homepage": "https://zenstack.dev", @@ -22,11 +22,11 @@ "devDependencies": { "concurrently": "^7.4.0", "copyfiles": "^2.4.1", - "langium-cli": "1.1.0", + "langium-cli": "1.2.0", "rimraf": "^3.0.2", "typescript": "^4.9.4" }, "dependencies": { - "langium": "1.1.0" + "langium": "1.2.0" } } diff --git a/packages/language/src/generated/ast.ts b/packages/language/src/generated/ast.ts index d570b4963..e63fa013c 100644 --- a/packages/language/src/generated/ast.ts +++ b/packages/language/src/generated/ast.ts @@ -1,5 +1,5 @@ /****************************************************************************** - * This file was generated by langium-cli 1.1.0. + * This file was generated by langium-cli 1.2.0. * DO NOT EDIT MANUALLY! ******************************************************************************/ @@ -16,14 +16,34 @@ export function isAbstractDeclaration(item: unknown): item is AbstractDeclaratio export type AttributeAttributeName = string; +export function isAttributeAttributeName(item: unknown): item is AttributeAttributeName { + return typeof item === 'string'; +} + export type AttributeName = AttributeAttributeName | DataModelAttributeName | DataModelFieldAttributeName; +export function isAttributeName(item: unknown): item is AttributeName { + return isDataModelAttributeName(item) || isDataModelFieldAttributeName(item) || isAttributeAttributeName(item); +} + export type BuiltinType = 'BigInt' | 'Boolean' | 'Bytes' | 'DateTime' | 'Decimal' | 'Float' | 'Int' | 'Json' | 'String'; +export function isBuiltinType(item: unknown): item is BuiltinType { + return item === 'String' || item === 'Boolean' || item === 'Int' || item === 'BigInt' || item === 'Float' || item === 'Decimal' || item === 'DateTime' || item === 'Json' || item === 'Bytes'; +} + export type DataModelAttributeName = string; +export function isDataModelAttributeName(item: unknown): item is DataModelAttributeName { + return typeof item === 'string'; +} + export type DataModelFieldAttributeName = string; +export function isDataModelFieldAttributeName(item: unknown): item is DataModelFieldAttributeName { + return typeof item === 'string'; +} + export type Expression = ArrayExpr | BinaryExpr | InvocationExpr | LiteralExpr | MemberAccessExpr | NullExpr | ObjectExpr | ReferenceExpr | ThisExpr | UnaryExpr; export const Expression = 'Expression'; @@ -34,8 +54,16 @@ export function isExpression(item: unknown): item is Expression { export type ExpressionType = 'Any' | 'Boolean' | 'DateTime' | 'Float' | 'Int' | 'Null' | 'Object' | 'String' | 'Unsupported'; +export function isExpressionType(item: unknown): item is ExpressionType { + return item === 'String' || item === 'Int' || item === 'Float' || item === 'Boolean' || item === 'DateTime' || item === 'Null' || item === 'Object' || item === 'Any' || item === 'Unsupported'; +} + export type QualifiedName = string; +export function isQualifiedName(item: unknown): item is QualifiedName { + return typeof item === 'string'; +} + export type ReferenceTarget = DataModelField | EnumField | FunctionParam; export const ReferenceTarget = 'ReferenceTarget'; @@ -46,6 +74,10 @@ export function isReferenceTarget(item: unknown): item is ReferenceTarget { export type RegularID = 'abstract' | 'attribute' | 'datasource' | 'enum' | 'in' | 'model' | 'plugin' | 'sort' | string; +export function isRegularID(item: unknown): item is RegularID { + return item === 'model' || item === 'enum' || item === 'attribute' || item === 'datasource' || item === 'plugin' || item === 'abstract' || item === 'in' || item === 'sort' || (typeof item === 'string' && (/[_a-zA-Z][\w_]*/.test(item))); +} + export type TypeDeclaration = DataModel | Enum; export const TypeDeclaration = 'TypeDeclaration'; @@ -548,7 +580,7 @@ export function isUnsupportedFieldType(item: unknown): item is UnsupportedFieldT return reflection.isInstance(item, UnsupportedFieldType); } -export interface ZModelAstType { +export type ZModelAstType = { AbstractDeclaration: AbstractDeclaration Argument: Argument ArrayExpr: ArrayExpr diff --git a/packages/language/src/generated/grammar.ts b/packages/language/src/generated/grammar.ts index a812e45e7..96b8840ea 100644 --- a/packages/language/src/generated/grammar.ts +++ b/packages/language/src/generated/grammar.ts @@ -1,5 +1,5 @@ /****************************************************************************** - * This file was generated by langium-cli 1.1.0. + * This file was generated by langium-cli 1.2.0. * DO NOT EDIT MANUALLY! ******************************************************************************/ diff --git a/packages/language/src/generated/module.ts b/packages/language/src/generated/module.ts index 95219bee8..ac0995108 100644 --- a/packages/language/src/generated/module.ts +++ b/packages/language/src/generated/module.ts @@ -1,5 +1,5 @@ /****************************************************************************** - * This file was generated by langium-cli 1.1.0. + * This file was generated by langium-cli 1.2.0. * DO NOT EDIT MANUALLY! ******************************************************************************/ diff --git a/packages/next/package.json b/packages/next/package.json index 8008ac997..07b4a488d 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/next", - "version": "1.0.0-alpha.115", + "version": "1.0.0-alpha.116", "displayName": "ZenStack Next.js integration", "description": "ZenStack Next.js integration", "homepage": "https://zenstack.dev", diff --git a/packages/plugins/openapi/package.json b/packages/plugins/openapi/package.json index 49e062720..07afac7b6 100644 --- a/packages/plugins/openapi/package.json +++ b/packages/plugins/openapi/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/openapi", "displayName": "ZenStack Plugin and Runtime for OpenAPI", - "version": "1.0.0-alpha.115", + "version": "1.0.0-alpha.116", "description": "ZenStack plugin and runtime supporting OpenAPI", "main": "index.js", "repository": { diff --git a/packages/plugins/react/package.json b/packages/plugins/react/package.json index 0b03abc31..77e1e2786 100644 --- a/packages/plugins/react/package.json +++ b/packages/plugins/react/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/react", "displayName": "ZenStack plugin and runtime for ReactJS", - "version": "1.0.0-alpha.115", + "version": "1.0.0-alpha.116", "description": "ZenStack plugin and runtime for ReactJS", "main": "index.js", "repository": { diff --git a/packages/plugins/trpc/package.json b/packages/plugins/trpc/package.json index e6b1c4df6..462d4b01c 100644 --- a/packages/plugins/trpc/package.json +++ b/packages/plugins/trpc/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/trpc", "displayName": "ZenStack plugin for tRPC", - "version": "1.0.0-alpha.115", + "version": "1.0.0-alpha.116", "description": "ZenStack plugin for tRPC", "main": "index.js", "repository": { diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 1d512bb11..cc5126d55 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/runtime", "displayName": "ZenStack Runtime Library", - "version": "1.0.0-alpha.115", + "version": "1.0.0-alpha.116", "description": "Runtime of ZenStack for both client-side and server-side environments.", "repository": { "type": "git", diff --git a/packages/schema/package.json b/packages/schema/package.json index 42f5f8eab..e78496cab 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -3,7 +3,7 @@ "publisher": "zenstack", "displayName": "ZenStack Language Tools", "description": "A toolkit for building secure CRUD apps with Next.js + Typescript", - "version": "1.0.0-alpha.115", + "version": "1.0.0-alpha.116", "author": { "name": "ZenStack Team" }, @@ -89,11 +89,10 @@ "@zenstackhq/sdk": "workspace:*", "async-exit-hook": "^2.0.1", "change-case": "^4.1.2", - "chevrotain": "^9.1.0", "colors": "1.4.0", "commander": "^8.3.0", "get-latest-version": "^5.0.1", - "langium": "1.1.0", + "langium": "1.2.0", "lower-case-first": "^2.0.2", "mixpanel": "^0.17.0", "node-machine-id": "^1.1.12", diff --git a/packages/sdk/package.json b/packages/sdk/package.json index e7ff6db38..3527483de 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/sdk", - "version": "1.0.0-alpha.115", + "version": "1.0.0-alpha.116", "description": "ZenStack plugin development SDK", "main": "index.js", "scripts": { diff --git a/packages/server/package.json b/packages/server/package.json index 67524d532..849b61899 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/server", - "version": "1.0.0-alpha.115", + "version": "1.0.0-alpha.116", "displayName": "ZenStack Server-side Adapters", "description": "ZenStack server-side adapters", "homepage": "https://zenstack.dev", diff --git a/packages/testtools/package.json b/packages/testtools/package.json index d72044474..a8e52bb74 100644 --- a/packages/testtools/package.json +++ b/packages/testtools/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/testtools", - "version": "1.0.0-alpha.115", + "version": "1.0.0-alpha.116", "description": "ZenStack Test Tools", "main": "index.js", "publishConfig": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b60762121..e69be0534 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,16 +12,16 @@ importers: specifiers: concurrently: ^7.4.0 copyfiles: ^2.4.1 - langium: 1.1.0 - langium-cli: 1.1.0 + langium: 1.2.0 + langium-cli: 1.2.0 rimraf: ^3.0.2 typescript: ^4.9.4 dependencies: - langium: 1.1.0 + langium: 1.2.0 devDependencies: concurrently: 7.4.0 copyfiles: 2.4.1 - langium-cli: 1.1.0 + langium-cli: 1.2.0 rimraf: 3.0.2 typescript: 4.9.4 publishDirectory: dist @@ -288,7 +288,6 @@ importers: '@zenstackhq/testtools': workspace:* async-exit-hook: ^2.0.1 change-case: ^4.1.2 - chevrotain: ^9.1.0 colors: 1.4.0 commander: ^8.3.0 concurrently: ^7.4.0 @@ -299,7 +298,7 @@ importers: eslint-plugin-jest: ^27.1.7 get-latest-version: ^5.0.1 jest: ^29.5.0 - langium: 1.1.0 + langium: 1.2.0 lower-case-first: ^2.0.2 mixpanel: ^0.17.0 node-machine-id: ^1.1.12 @@ -335,11 +334,10 @@ importers: '@zenstackhq/sdk': link:../sdk/dist async-exit-hook: 2.0.1 change-case: 4.1.2 - chevrotain: 9.1.0 colors: 1.4.0 commander: 8.3.0 get-latest-version: 5.0.1 - langium: 1.1.0 + langium: 1.2.0 lower-case-first: 2.0.2 mixpanel: 0.17.0 node-machine-id: 1.1.12 @@ -1101,17 +1099,9 @@ packages: /@chevrotain/types/10.4.2: resolution: {integrity: sha512-QzSCjg6G4MvIoLeIgOiMR0IgzkGEQqrNJJIr3T5ETRa7l4Av4AMIiEctV99mvDr57iXwwk0/kr3RJxiU36Nevw==} - /@chevrotain/types/9.1.0: - resolution: {integrity: sha512-3hbCD1CThkv9gnaSIPq0GUXwKni68e0ph6jIHwCvcWiQ4JB2xi8bFxBain0RF04qHUWuDjgnZLj4rLgimuGO+g==} - dev: false - /@chevrotain/utils/10.4.2: resolution: {integrity: sha512-V34dacxWLwKcvcy32dx96ADJVdB7kOJLm7LyBkBQw5u5HC9WdEFw2G17zml+U3ivavGTrGPJHl8o9/UJm0PlUw==} - /@chevrotain/utils/9.1.0: - resolution: {integrity: sha512-llLJZ8OAlZrjGlBvamm6Zdo/HmGAcCLq5gx7cSwUX8No+n/8ip+oaC4x33IdZIif8+Rh5dQUIZXmfbSghiOmNQ==} - dev: false - /@cspotcode/source-map-support/0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -3582,14 +3572,6 @@ packages: lodash: 4.17.21 regexp-to-ast: 0.5.0 - /chevrotain/9.1.0: - resolution: {integrity: sha512-A86/55so63HCfu0dgGg3j9u8uuuBOrSqly1OhBZxRu2x6sAKILLzfVjbGMw45kgier6lz45EzcjjWtTRgoT84Q==} - dependencies: - '@chevrotain/types': 9.1.0 - '@chevrotain/utils': 9.1.0 - regexp-to-ast: 0.5.0 - dev: false - /chokidar/3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -6744,8 +6726,8 @@ packages: engines: {node: '>=6'} dev: true - /langium-cli/1.1.0: - resolution: {integrity: sha512-vnv037FHqXqMeNiNF90v47VrJGiJPzH721UIbbHcu6Nfx0C1UC6SmQhGHtZIDRovT5qJsiXRIPDTZYrIkm4KJQ==} + /langium-cli/1.2.0: + resolution: {integrity: sha512-DPyJUd4Hj8+OBNEcAQyJtW6e38+UPd758gTI7Ep0r/sDogrwJ/GJHx5nGA+r0ygpNcDPG+mS9Hw8Y05uCNNcoQ==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -6753,12 +6735,12 @@ packages: commander: 10.0.0 fs-extra: 11.1.0 jsonschema: 1.4.1 - langium: 1.1.0 + langium: 1.2.0 lodash: 4.17.21 dev: true - /langium/1.1.0: - resolution: {integrity: sha512-TsWY/DIOR73se9/YaMQZpvfFWWrhWP0FQS9MrpxWEnMJR0FoKVpMF1thPWXZexLSfyEm1pn2oYzCdW4KUBqXxA==} + /langium/1.2.0: + resolution: {integrity: sha512-jFSptpFljYo9ZTHrq/GZflMUXiKo5KBNtsaIJtnIzDm9zC2FxsxejEFAtNL09262RVQt+zFeF/2iLAShFTGitw==} engines: {node: '>=14.0.0'} dependencies: chevrotain: 10.4.2 diff --git a/tests/integration/test-run/package-lock.json b/tests/integration/test-run/package-lock.json index d4b00e702..feb174b35 100644 --- a/tests/integration/test-run/package-lock.json +++ b/tests/integration/test-run/package-lock.json @@ -126,7 +126,7 @@ }, "../../../packages/runtime/dist": { "name": "@zenstackhq/runtime", - "version": "1.0.0-alpha.115", + "version": "1.0.0-alpha.116", "license": "MIT", "dependencies": { "@paralleldrive/cuid2": "^2.2.0", @@ -160,7 +160,7 @@ }, "../../../packages/schema/dist": { "name": "zenstack", - "version": "1.0.0-alpha.115", + "version": "1.0.0-alpha.116", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -171,11 +171,10 @@ "@zenstackhq/sdk": "workspace:*", "async-exit-hook": "^2.0.1", "change-case": "^4.1.2", - "chevrotain": "^9.1.0", "colors": "1.4.0", "commander": "^8.3.0", "get-latest-version": "^5.0.1", - "langium": "1.1.0", + "langium": "1.2.0", "lower-case-first": "^2.0.2", "mixpanel": "^0.17.0", "node-machine-id": "^1.1.12", @@ -432,7 +431,6 @@ "@zenstackhq/testtools": "workspace:*", "async-exit-hook": "^2.0.1", "change-case": "^4.1.2", - "chevrotain": "^9.1.0", "colors": "1.4.0", "commander": "^8.3.0", "concurrently": "^7.4.0", @@ -443,7 +441,7 @@ "eslint-plugin-jest": "^27.1.7", "get-latest-version": "^5.0.1", "jest": "^29.5.0", - "langium": "1.1.0", + "langium": "1.2.0", "lower-case-first": "^2.0.2", "mixpanel": "^0.17.0", "node-machine-id": "^1.1.12",