diff --git a/package-lock.json b/package-lock.json index ec14c40062..ac61528abf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1931,9 +1931,8 @@ }, "node_modules/@types/validator": { "version": "13.7.1", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.1.tgz", - "integrity": "sha512-I6OUIZ5cYRk5lp14xSOAiXjWrfVoMZVjDuevBYgQDYzZIjsf2CAISpEcXOkFAtpAHbmWIDLcZObejqny/9xq5Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/ws": { "version": "7.4.7", @@ -2489,6 +2488,26 @@ "dev": true, "license": "Python-2.0" }, + "node_modules/args": { + "version": "5.0.1", + "license": "MIT", + "dependencies": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/args/node_modules/camelcase": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/array-differ": { "version": "3.0.0", "dev": true, @@ -2603,7 +2622,6 @@ }, "node_modules/atomic-sleep": { "version": "1.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8.0.0" @@ -4548,7 +4566,6 @@ }, "node_modules/duplexify": { "version": "4.1.2", - "dev": true, "license": "MIT", "dependencies": { "end-of-stream": "^1.4.1", @@ -4607,7 +4624,6 @@ }, "node_modules/end-of-stream": { "version": "1.4.4", - "dev": true, "license": "MIT", "dependencies": { "once": "^1.4.0" @@ -4742,18 +4758,6 @@ "esbuild-windows-arm64": "0.13.15" } }, - "node_modules/esbuild-darwin-64": { - "version": "0.13.15", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, "node_modules/escalade": { "version": "3.1.1", "dev": true, @@ -5448,6 +5452,10 @@ "node": ">=6" } }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "license": "MIT" + }, "node_modules/fastq": { "version": "1.13.0", "dev": true, @@ -5623,18 +5631,6 @@ "dev": true, "license": "ISC" }, - "node_modules/fsevents": { - "version": "2.3.2", - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.1", "license": "MIT" @@ -6835,7 +6831,6 @@ }, "node_modules/inherits": { "version": "2.0.4", - "dev": true, "license": "ISC" }, "node_modules/ini": { @@ -7400,6 +7395,13 @@ "node": ">=8" } }, + "node_modules/joycon": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "license": "MIT" @@ -7653,6 +7655,13 @@ "node": ">= 10.18.0" } }, + "node_modules/leven": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/levn": { "version": "0.4.1", "dev": true, @@ -8660,6 +8669,13 @@ "node": ">=0.10.0" } }, + "node_modules/mri": { + "version": "1.1.4", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/ms": { "version": "2.1.2", "dev": true, @@ -9228,7 +9244,6 @@ }, "node_modules/once": { "version": "1.4.0", - "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -9699,7 +9714,6 @@ }, "node_modules/pino-abstract-transport": { "version": "0.5.0", - "dev": true, "license": "MIT", "dependencies": { "duplexify": "^4.1.2", @@ -9708,12 +9722,43 @@ }, "node_modules/pino-abstract-transport/node_modules/split2": { "version": "4.1.0", - "dev": true, "license": "ISC", "engines": { "node": ">= 10.x" } }, + "node_modules/pino-pretty": { + "version": "7.3.0", + "license": "MIT", + "dependencies": { + "args": "^5.0.1", + "colorette": "^2.0.7", + "dateformat": "^4.6.3", + "fast-safe-stringify": "^2.0.7", + "joycon": "^3.1.1", + "pino-abstract-transport": "^0.5.0", + "pump": "^3.0.0", + "readable-stream": "^3.6.0", + "rfdc": "^1.3.0", + "secure-json-parse": "^2.4.0", + "sonic-boom": "^2.2.0", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "pino-pretty": "bin.js" + } + }, + "node_modules/pino-pretty/node_modules/colorette": { + "version": "2.0.16", + "license": "MIT" + }, + "node_modules/pino-pretty/node_modules/dateformat": { + "version": "4.6.3", + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/pino-std-serializers": { "version": "4.0.0", "dev": true, @@ -9894,7 +9939,6 @@ }, "node_modules/pump": { "version": "3.0.0", - "dev": true, "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", @@ -10404,7 +10448,6 @@ }, "node_modules/readable-stream": { "version": "3.6.0", - "dev": true, "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -10656,7 +10699,6 @@ }, "node_modules/rfdc": { "version": "1.3.0", - "dev": true, "license": "MIT" }, "node_modules/rimraf": { @@ -10747,6 +10789,10 @@ "dev": true, "license": "MIT" }, + "node_modules/secure-json-parse": { + "version": "2.4.0", + "license": "BSD-3-Clause" + }, "node_modules/semver": { "version": "7.3.5", "license": "ISC", @@ -10981,7 +11027,6 @@ }, "node_modules/sonic-boom": { "version": "2.4.2", - "dev": true, "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0" @@ -11123,7 +11168,6 @@ }, "node_modules/stream-shift": { "version": "1.0.1", - "dev": true, "license": "MIT" }, "node_modules/strict-uri-encode": { @@ -11136,7 +11180,6 @@ }, "node_modules/string_decoder": { "version": "1.3.0", - "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" @@ -11144,7 +11187,6 @@ }, "node_modules/string_decoder/node_modules/safe-buffer": { "version": "5.2.1", - "dev": true, "funding": [ { "type": "github", @@ -11269,7 +11311,6 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -11859,7 +11900,6 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", - "dev": true, "license": "MIT" }, "node_modules/util-promisify": { @@ -12065,7 +12105,6 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "dev": true, "license": "ISC" }, "node_modules/write-file-atomic": { @@ -12334,7 +12373,7 @@ }, "packages/ts/form": { "name": "@vaadin/form", - "version": "0.0.16", + "version": "0.0.17", "license": "Apache-2.0", "dependencies": { "rimraf": "^3.0.2", @@ -14064,18 +14103,6 @@ "version": "1.0.0", "license": "ISC" }, - "packages/ts/form/node_modules/fsevents": { - "version": "2.3.2", - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "packages/ts/form/node_modules/function-bind": { "version": "1.1.1", "dev": true, @@ -16644,7 +16671,7 @@ }, "packages/ts/fusion-frontend": { "name": "@vaadin/fusion-frontend", - "version": "0.0.16", + "version": "0.0.17", "license": "Apache-2.0", "dependencies": { "@vaadin/common-frontend": "^0.0.12", @@ -18773,18 +18800,6 @@ "version": "1.0.0", "license": "ISC" }, - "packages/ts/fusion-frontend/node_modules/fsevents": { - "version": "2.3.2", - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "packages/ts/fusion-frontend/node_modules/function-bind": { "version": "1.1.1", "dev": true, @@ -21440,10 +21455,10 @@ }, "packages/ts/generator-typescript-cli": { "name": "@vaadin/generator-typescript-cli", - "version": "0.0.16", + "version": "0.0.17", "license": "Apache 2.0", "dependencies": { - "@vaadin/generator-typescript-utils": "^0.0.16", + "@vaadin/generator-typescript-utils": "^0.0.17", "meow": "^10.1.1" }, "bin": { @@ -21455,7 +21470,7 @@ "@types/node": "^16.11.1", "@types/sinon": "^10.0.6", "@types/sinon-chai": "^3.2.5", - "@vaadin/generator-typescript-core": "^0.0.16", + "@vaadin/generator-typescript-core": "^0.0.17", "c8": "^7.10.0", "chai": "^4.3.4", "concurrently": "^6.3.0", @@ -21471,25 +21486,23 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/generator-typescript-core": "^0.0.16" + "@vaadin/generator-typescript-core": "^0.0.17" } }, "packages/ts/generator-typescript-cli/node_modules/@types/node": { "version": "16.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.17.tgz", - "integrity": "sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==", - "dev": true + "dev": true, + "license": "MIT" }, "packages/ts/generator-typescript-core": { "name": "@vaadin/generator-typescript-core", - "version": "0.0.16", + "version": "0.0.17", "license": "Apache 2.0", "dependencies": { "@apidevtools/swagger-parser": "^10.0.3", + "@vaadin/generator-typescript-utils": "^0.0.17", "meow": "^10.1.1", "openapi-types": "^9.3.0", - "pino": "^7.0.5", - "pino-pretty": "^7.1.0", "typescript": "^4.5.0-beta" }, "devDependencies": { @@ -21782,83 +21795,6 @@ "version": "2.0.1", "license": "Python-2.0" }, - "packages/ts/generator-typescript-core/node_modules/args": { - "version": "5.0.1", - "license": "MIT", - "dependencies": { - "camelcase": "5.0.0", - "chalk": "2.4.2", - "leven": "2.1.0", - "mri": "1.1.4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "packages/ts/generator-typescript-core/node_modules/args/node_modules/ansi-styles": { - "version": "3.2.1", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "packages/ts/generator-typescript-core/node_modules/args/node_modules/camelcase": { - "version": "5.0.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "packages/ts/generator-typescript-core/node_modules/args/node_modules/chalk": { - "version": "2.4.2", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "packages/ts/generator-typescript-core/node_modules/args/node_modules/color-convert": { - "version": "1.9.3", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "packages/ts/generator-typescript-core/node_modules/args/node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, - "packages/ts/generator-typescript-core/node_modules/args/node_modules/escape-string-regexp": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "packages/ts/generator-typescript-core/node_modules/args/node_modules/has-flag": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "packages/ts/generator-typescript-core/node_modules/args/node_modules/supports-color": { - "version": "5.5.0", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "packages/ts/generator-typescript-core/node_modules/arrify": { "version": "1.0.1", "license": "MIT", @@ -21874,13 +21810,6 @@ "node": "*" } }, - "packages/ts/generator-typescript-core/node_modules/atomic-sleep": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, "packages/ts/generator-typescript-core/node_modules/balanced-match": { "version": "1.0.2", "dev": true, @@ -22080,10 +22009,6 @@ "dev": true, "license": "MIT" }, - "packages/ts/generator-typescript-core/node_modules/colorette": { - "version": "2.0.16", - "license": "MIT" - }, "packages/ts/generator-typescript-core/node_modules/commander": { "version": "2.20.3", "license": "MIT", @@ -22176,13 +22101,6 @@ "url": "https://opencollective.com/date-fns" } }, - "packages/ts/generator-typescript-core/node_modules/dateformat": { - "version": "4.6.3", - "license": "MIT", - "engines": { - "node": "*" - } - }, "packages/ts/generator-typescript-core/node_modules/debug": { "version": "4.3.2", "dev": true, @@ -22258,47 +22176,11 @@ "node": ">=0.3.1" } }, - "packages/ts/generator-typescript-core/node_modules/duplexify": { - "version": "4.1.2", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" - } - }, - "packages/ts/generator-typescript-core/node_modules/duplexify/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "packages/ts/generator-typescript-core/node_modules/duplexify/node_modules/string_decoder": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "packages/ts/generator-typescript-core/node_modules/emoji-regex": { "version": "8.0.0", "dev": true, "license": "MIT" }, - "packages/ts/generator-typescript-core/node_modules/end-of-stream": { - "version": "1.4.4", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, "packages/ts/generator-typescript-core/node_modules/error-ex": { "version": "1.3.2", "license": "MIT", @@ -22325,17 +22207,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/ts/generator-typescript-core/node_modules/fast-redact": { - "version": "3.0.2", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "packages/ts/generator-typescript-core/node_modules/fast-safe-stringify": { - "version": "2.1.1", - "license": "MIT" - }, "packages/ts/generator-typescript-core/node_modules/fill-range": { "version": "7.0.1", "dev": true, @@ -22386,18 +22257,6 @@ "dev": true, "license": "ISC" }, - "packages/ts/generator-typescript-core/node_modules/fsevents": { - "version": "2.3.2", - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "packages/ts/generator-typescript-core/node_modules/function-bind": { "version": "1.1.1", "license": "MIT" @@ -22525,6 +22384,7 @@ }, "packages/ts/generator-typescript-core/node_modules/inherits": { "version": "2.0.4", + "dev": true, "license": "ISC" }, "packages/ts/generator-typescript-core/node_modules/is-arrayish": { @@ -22659,13 +22519,6 @@ "node": ">=8" } }, - "packages/ts/generator-typescript-core/node_modules/joycon": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "packages/ts/generator-typescript-core/node_modules/js-tokens": { "version": "4.0.0", "license": "MIT" @@ -22696,13 +22549,6 @@ "node": ">=0.10.0" } }, - "packages/ts/generator-typescript-core/node_modules/leven": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "packages/ts/generator-typescript-core/node_modules/lines-and-columns": { "version": "1.2.4", "license": "MIT" @@ -22926,13 +22772,6 @@ "node": ">=10" } }, - "packages/ts/generator-typescript-core/node_modules/mri": { - "version": "1.1.4", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "packages/ts/generator-typescript-core/node_modules/ms": { "version": "2.1.3", "dev": true, @@ -23004,12 +22843,9 @@ "node": ">=0.10.0" } }, - "packages/ts/generator-typescript-core/node_modules/on-exit-leak-free": { - "version": "0.2.0", - "license": "MIT" - }, "packages/ts/generator-typescript-core/node_modules/once": { "version": "1.4.0", + "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -23111,98 +22947,11 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "packages/ts/generator-typescript-core/node_modules/pino": { - "version": "7.6.2", - "license": "MIT", - "dependencies": { - "fast-redact": "^3.0.0", - "on-exit-leak-free": "^0.2.0", - "pino-abstract-transport": "v0.5.0", - "pino-std-serializers": "^4.0.0", - "process-warning": "^1.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.1.0", - "safe-stable-stringify": "^2.1.0", - "sonic-boom": "^2.2.1", - "thread-stream": "^0.13.0" - }, - "bin": { - "pino": "bin.js" - } - }, - "packages/ts/generator-typescript-core/node_modules/pino-abstract-transport": { - "version": "0.5.0", - "license": "MIT", - "dependencies": { - "duplexify": "^4.1.2", - "split2": "^4.0.0" - } - }, - "packages/ts/generator-typescript-core/node_modules/pino-pretty": { - "version": "7.3.0", - "license": "MIT", - "dependencies": { - "args": "^5.0.1", - "colorette": "^2.0.7", - "dateformat": "^4.6.3", - "fast-safe-stringify": "^2.0.7", - "joycon": "^3.1.1", - "pino-abstract-transport": "^0.5.0", - "pump": "^3.0.0", - "readable-stream": "^3.6.0", - "rfdc": "^1.3.0", - "secure-json-parse": "^2.4.0", - "sonic-boom": "^2.2.0", - "strip-json-comments": "^3.1.1" - }, - "bin": { - "pino-pretty": "bin.js" - } - }, - "packages/ts/generator-typescript-core/node_modules/pino-pretty/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "packages/ts/generator-typescript-core/node_modules/pino-pretty/node_modules/string_decoder": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "packages/ts/generator-typescript-core/node_modules/pino-std-serializers": { - "version": "4.0.0", - "license": "MIT" - }, "packages/ts/generator-typescript-core/node_modules/process-nextick-args": { "version": "2.0.1", "dev": true, "license": "MIT" }, - "packages/ts/generator-typescript-core/node_modules/process-warning": { - "version": "1.0.0", - "license": "MIT" - }, - "packages/ts/generator-typescript-core/node_modules/pump": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "packages/ts/generator-typescript-core/node_modules/quick-format-unescaped": { - "version": "4.0.4", - "license": "MIT" - }, "packages/ts/generator-typescript-core/node_modules/quick-lru": { "version": "5.1.1", "license": "MIT", @@ -23294,13 +23043,6 @@ "node": ">=8.10.0" } }, - "packages/ts/generator-typescript-core/node_modules/real-require": { - "version": "0.1.0", - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - } - }, "packages/ts/generator-typescript-core/node_modules/redent": { "version": "4.0.0", "license": "MIT", @@ -23323,10 +23065,6 @@ "node": ">=0.10.0" } }, - "packages/ts/generator-typescript-core/node_modules/rfdc": { - "version": "1.3.0", - "license": "MIT" - }, "packages/ts/generator-typescript-core/node_modules/rimraf": { "version": "3.0.2", "dev": true, @@ -23354,6 +23092,7 @@ }, "packages/ts/generator-typescript-core/node_modules/safe-buffer": { "version": "5.2.1", + "dev": true, "funding": [ { "type": "github", @@ -23370,17 +23109,6 @@ ], "license": "MIT" }, - "packages/ts/generator-typescript-core/node_modules/safe-stable-stringify": { - "version": "2.3.1", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "packages/ts/generator-typescript-core/node_modules/secure-json-parse": { - "version": "2.4.0", - "license": "BSD-3-Clause" - }, "packages/ts/generator-typescript-core/node_modules/semver": { "version": "6.3.0", "dev": true, @@ -23458,13 +23186,6 @@ "node": ">=8" } }, - "packages/ts/generator-typescript-core/node_modules/sonic-boom": { - "version": "2.4.2", - "license": "MIT", - "dependencies": { - "atomic-sleep": "^1.0.0" - } - }, "packages/ts/generator-typescript-core/node_modules/source-map": { "version": "0.7.3", "dev": true, @@ -23502,17 +23223,6 @@ "version": "3.0.11", "license": "CC0-1.0" }, - "packages/ts/generator-typescript-core/node_modules/split2": { - "version": "4.1.0", - "license": "ISC", - "engines": { - "node": ">= 10.x" - } - }, - "packages/ts/generator-typescript-core/node_modules/stream-shift": { - "version": "1.0.1", - "license": "MIT" - }, "packages/ts/generator-typescript-core/node_modules/string_decoder": { "version": "0.10.31", "dev": true, @@ -23557,6 +23267,7 @@ }, "packages/ts/generator-typescript-core/node_modules/strip-json-comments": { "version": "3.1.1", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -23592,13 +23303,6 @@ "node": ">=8" } }, - "packages/ts/generator-typescript-core/node_modules/thread-stream": { - "version": "0.13.0", - "license": "MIT", - "dependencies": { - "real-require": "^0.1.0" - } - }, "packages/ts/generator-typescript-core/node_modules/through2": { "version": "2.0.5", "dev": true, @@ -23714,6 +23418,7 @@ }, "packages/ts/generator-typescript-core/node_modules/util-deprecate": { "version": "1.0.2", + "dev": true, "license": "MIT" }, "packages/ts/generator-typescript-core/node_modules/v8-to-istanbul": { @@ -23781,6 +23486,7 @@ }, "packages/ts/generator-typescript-core/node_modules/wrappy": { "version": "1.0.2", + "dev": true, "license": "ISC" }, "packages/ts/generator-typescript-core/node_modules/xtend": { @@ -23890,10 +23596,10 @@ }, "packages/ts/generator-typescript-plugin-backbone": { "name": "@vaadin/generator-typescript-plugin-backbone", - "version": "0.0.16", + "version": "0.0.17", "license": "Apache 2.0", "dependencies": { - "@vaadin/generator-typescript-utils": "^0.0.16", + "@vaadin/generator-typescript-utils": "^0.0.17", "fast-deep-equal": "^3.1.3", "openapi-types": "^9.3.0", "typescript": "^4.5.2" @@ -23904,8 +23610,8 @@ "@types/node": "^16.11.1", "@types/sinon": "^10.0.6", "@types/sinon-chai": "^3.2.5", - "@vaadin/generator-typescript-core": "^0.0.16", - "@vaadin/generator-typescript-plugin-client": "^0.0.16", + "@vaadin/generator-typescript-core": "^0.0.17", + "@vaadin/generator-typescript-plugin-client": "^0.0.17", "c8": "^7.10.0", "chai": "^4.3.4", "concurrently": "^6.4.0", @@ -23921,22 +23627,21 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/generator-typescript-core": "^0.0.16", - "@vaadin/generator-typescript-plugin-client": "^0.0.16" + "@vaadin/generator-typescript-core": "^0.0.17", + "@vaadin/generator-typescript-plugin-client": "^0.0.17" } }, "packages/ts/generator-typescript-plugin-backbone/node_modules/@types/node": { "version": "16.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.17.tgz", - "integrity": "sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==", - "dev": true + "dev": true, + "license": "MIT" }, "packages/ts/generator-typescript-plugin-barrel": { "name": "@vaadin/generator-typescript-plugin-barrel", - "version": "0.0.16", + "version": "0.0.17", "license": "Apache 2.0", "dependencies": { - "@vaadin/generator-typescript-utils": "^0.0.16", + "@vaadin/generator-typescript-utils": "^0.0.17", "typescript": "^4.5.2" }, "devDependencies": { @@ -23945,8 +23650,8 @@ "@types/node": "^16.11.1", "@types/sinon": "^10.0.6", "@types/sinon-chai": "^3.2.5", - "@vaadin/generator-typescript-core": "^0.0.16", - "@vaadin/generator-typescript-plugin-backbone": "^0.0.16", + "@vaadin/generator-typescript-core": "^0.0.17", + "@vaadin/generator-typescript-plugin-backbone": "^0.0.17", "c8": "^7.10.0", "chai": "^4.3.4", "concurrently": "^6.4.0", @@ -23962,22 +23667,21 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/generator-typescript-core": "^0.0.16", - "@vaadin/generator-typescript-plugin-backbone": "^0.0.16" + "@vaadin/generator-typescript-core": "^0.0.17", + "@vaadin/generator-typescript-plugin-backbone": "^0.0.17" } }, "packages/ts/generator-typescript-plugin-barrel/node_modules/@types/node": { "version": "16.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.17.tgz", - "integrity": "sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==", - "dev": true + "dev": true, + "license": "MIT" }, "packages/ts/generator-typescript-plugin-client": { "name": "@vaadin/generator-typescript-plugin-client", - "version": "0.0.16", + "version": "0.0.17", "license": "Apache 2.0", "dependencies": { - "@vaadin/generator-typescript-utils": "^0.0.16", + "@vaadin/generator-typescript-utils": "^0.0.17", "typescript": "^4.5.2" }, "devDependencies": { @@ -23986,7 +23690,7 @@ "@types/node": "^16.11.1", "@types/sinon": "^10.0.6", "@types/sinon-chai": "^3.2.5", - "@vaadin/generator-typescript-core": "^0.0.16", + "@vaadin/generator-typescript-core": "^0.0.17", "c8": "^7.10.0", "chai": "^4.3.4", "concurrently": "^6.4.0", @@ -24002,21 +23706,20 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/generator-typescript-core": "^0.0.16" + "@vaadin/generator-typescript-core": "^0.0.17" } }, "packages/ts/generator-typescript-plugin-client/node_modules/@types/node": { "version": "16.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.17.tgz", - "integrity": "sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==", - "dev": true + "dev": true, + "license": "MIT" }, "packages/ts/generator-typescript-plugin-model": { "name": "@vaadin/generator-typescript-plugin-model", - "version": "0.0.16", + "version": "0.0.17", "license": "Apache 2.0", "dependencies": { - "@vaadin/generator-typescript-utils": "^0.0.16", + "@vaadin/generator-typescript-utils": "^0.0.17", "fast-deep-equal": "^3.1.3", "openapi-types": "^9.3.0", "typescript": "^4.5.2" @@ -24027,8 +23730,8 @@ "@types/node": "^16.11.1", "@types/sinon": "^10.0.6", "@types/sinon-chai": "^3.2.5", - "@vaadin/generator-typescript-core": "^0.0.16", - "@vaadin/generator-typescript-plugin-client": "^0.0.16", + "@vaadin/generator-typescript-core": "^0.0.17", + "@vaadin/generator-typescript-plugin-client": "^0.0.17", "c8": "^7.10.0", "chai": "^4.3.4", "concurrently": "^6.4.0", @@ -24044,23 +23747,23 @@ "node": ">= 16.13" }, "peerDependencies": { - "@vaadin/form": "^0.0.16", - "@vaadin/generator-typescript-core": "^0.0.16", - "@vaadin/generator-typescript-plugin-backbone": "^0.0.16" + "@vaadin/form": "^0.0.17", + "@vaadin/generator-typescript-core": "^0.0.17", + "@vaadin/generator-typescript-plugin-backbone": "^0.0.17" } }, "packages/ts/generator-typescript-plugin-model/node_modules/@types/node": { "version": "16.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.17.tgz", - "integrity": "sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==", - "dev": true + "dev": true, + "license": "MIT" }, "packages/ts/generator-typescript-utils": { "name": "@vaadin/generator-typescript-utils", - "version": "0.0.16", + "version": "0.0.17", "license": "Apache 2.0", "dependencies": { "pino": "^7.0.5", + "pino-pretty": "^7.3.0", "typescript": "^4.5.2" }, "devDependencies": { @@ -24069,7 +23772,6 @@ "@types/node": "^16.11.1", "@types/sinon": "^10.0.6", "@types/sinon-chai": "^3.2.5", - "@vaadin/generator-typescript-core": "^0.0.16", "c8": "^7.10.0", "chai": "^4.3.4", "concurrently": "^6.4.0", @@ -24082,145 +23784,6 @@ }, "engines": { "node": ">= 16.13" - }, - "peerDependencies": { - "@vaadin/generator-typescript-core": "^0.0.16" - } - }, - "packages/ts/generator-typescript-utils/node_modules/@apidevtools/json-schema-ref-parser": { - "version": "9.0.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.6", - "call-me-maybe": "^1.0.1", - "js-yaml": "^4.1.0" - } - }, - "packages/ts/generator-typescript-utils/node_modules/@apidevtools/openapi-schemas": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "packages/ts/generator-typescript-utils/node_modules/@apidevtools/swagger-methods": { - "version": "3.0.2", - "dev": true, - "license": "MIT" - }, - "packages/ts/generator-typescript-utils/node_modules/@apidevtools/swagger-parser": { - "version": "10.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@apidevtools/json-schema-ref-parser": "^9.0.6", - "@apidevtools/openapi-schemas": "^2.0.4", - "@apidevtools/swagger-methods": "^3.0.2", - "@jsdevtools/ono": "^7.1.3", - "call-me-maybe": "^1.0.1", - "z-schema": "^5.0.1" - }, - "peerDependencies": { - "openapi-types": ">=7" - } - }, - "packages/ts/generator-typescript-utils/node_modules/@babel/code-frame": { - "version": "7.16.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "packages/ts/generator-typescript-utils/node_modules/@babel/helper-validator-identifier": { - "version": "7.15.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "packages/ts/generator-typescript-utils/node_modules/@babel/highlight": { - "version": "7.16.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "packages/ts/generator-typescript-utils/node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "packages/ts/generator-typescript-utils/node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "packages/ts/generator-typescript-utils/node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "packages/ts/generator-typescript-utils/node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "packages/ts/generator-typescript-utils/node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "packages/ts/generator-typescript-utils/node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "packages/ts/generator-typescript-utils/node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" } }, "packages/ts/generator-typescript-utils/node_modules/@bcoe/v8-coverage": { @@ -24236,11 +23799,6 @@ "node": ">=8" } }, - "packages/ts/generator-typescript-utils/node_modules/@jsdevtools/ono": { - "version": "7.1.3", - "dev": true, - "license": "MIT" - }, "packages/ts/generator-typescript-utils/node_modules/@sinonjs/commons": { "version": "1.8.3", "dev": true, @@ -24282,16 +23840,6 @@ "dev": true, "license": "MIT" }, - "packages/ts/generator-typescript-utils/node_modules/@types/json-schema": { - "version": "7.0.9", - "dev": true, - "license": "MIT" - }, - "packages/ts/generator-typescript-utils/node_modules/@types/minimist": { - "version": "1.2.2", - "dev": true, - "license": "MIT" - }, "packages/ts/generator-typescript-utils/node_modules/@types/mocha": { "version": "9.0.0", "dev": true, @@ -24302,11 +23850,6 @@ "dev": true, "license": "MIT" }, - "packages/ts/generator-typescript-utils/node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "dev": true, - "license": "MIT" - }, "packages/ts/generator-typescript-utils/node_modules/@types/sinon": { "version": "10.0.6", "dev": true, @@ -24329,22 +23872,6 @@ "dev": true, "license": "ISC" }, - "packages/ts/generator-typescript-utils/node_modules/@vaadin/generator-typescript-core": { - "version": "0.0.16", - "dev": true, - "license": "Apache 2.0", - "dependencies": { - "@apidevtools/swagger-parser": "^10.0.3", - "meow": "^10.1.1", - "openapi-types": "^9.3.0", - "pino": "^7.0.5", - "pino-pretty": "^7.1.0", - "typescript": "^4.5.0-beta" - }, - "engines": { - "node": ">= 16.13" - } - }, "packages/ts/generator-typescript-utils/node_modules/ansi-colors": { "version": "4.1.1", "dev": true, @@ -24392,100 +23919,6 @@ "dev": true, "license": "Python-2.0" }, - "packages/ts/generator-typescript-utils/node_modules/args": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "5.0.0", - "chalk": "2.4.2", - "leven": "2.1.0", - "mri": "1.1.4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "packages/ts/generator-typescript-utils/node_modules/args/node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "packages/ts/generator-typescript-utils/node_modules/args/node_modules/camelcase": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "packages/ts/generator-typescript-utils/node_modules/args/node_modules/chalk": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "packages/ts/generator-typescript-utils/node_modules/args/node_modules/color-convert": { - "version": "1.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "packages/ts/generator-typescript-utils/node_modules/args/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "packages/ts/generator-typescript-utils/node_modules/args/node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "packages/ts/generator-typescript-utils/node_modules/args/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "packages/ts/generator-typescript-utils/node_modules/args/node_modules/supports-color": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "packages/ts/generator-typescript-utils/node_modules/arrify": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "packages/ts/generator-typescript-utils/node_modules/assertion-error": { "version": "1.1.0", "dev": true, @@ -24564,11 +23997,6 @@ "node": ">=10.12.0" } }, - "packages/ts/generator-typescript-utils/node_modules/call-me-maybe": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, "packages/ts/generator-typescript-utils/node_modules/camelcase": { "version": "6.2.1", "dev": true, @@ -24580,34 +24008,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/ts/generator-typescript-utils/node_modules/camelcase-keys": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^6.2.0", - "map-obj": "^4.1.0", - "quick-lru": "^5.1.1", - "type-fest": "^1.2.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/ts/generator-typescript-utils/node_modules/camelcase-keys/node_modules/type-fest": { - "version": "1.4.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "packages/ts/generator-typescript-utils/node_modules/chai": { "version": "4.3.4", "dev": true, @@ -24704,17 +24104,6 @@ "dev": true, "license": "MIT" }, - "packages/ts/generator-typescript-utils/node_modules/colorette": { - "version": "2.0.16", - "dev": true, - "license": "MIT" - }, - "packages/ts/generator-typescript-utils/node_modules/commander": { - "version": "2.20.3", - "dev": true, - "license": "MIT", - "optional": true - }, "packages/ts/generator-typescript-utils/node_modules/concat-map": { "version": "0.0.1", "dev": true, @@ -24802,14 +24191,6 @@ "url": "https://opencollective.com/date-fns" } }, - "packages/ts/generator-typescript-utils/node_modules/dateformat": { - "version": "4.6.3", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, "packages/ts/generator-typescript-utils/node_modules/debug": { "version": "4.3.2", "dev": true, @@ -24831,45 +24212,6 @@ "dev": true, "license": "MIT" }, - "packages/ts/generator-typescript-utils/node_modules/decamelize": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/ts/generator-typescript-utils/node_modules/decamelize-keys": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "packages/ts/generator-typescript-utils/node_modules/decamelize-keys/node_modules/decamelize": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "packages/ts/generator-typescript-utils/node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "packages/ts/generator-typescript-utils/node_modules/deep-eql": { "version": "3.0.1", "dev": true, @@ -24930,14 +24272,6 @@ "once": "^1.4.0" } }, - "packages/ts/generator-typescript-utils/node_modules/error-ex": { - "version": "1.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, "packages/ts/generator-typescript-utils/node_modules/escalade": { "version": "3.1.1", "dev": true, @@ -24964,11 +24298,6 @@ "node": ">=6" } }, - "packages/ts/generator-typescript-utils/node_modules/fast-safe-stringify": { - "version": "2.1.1", - "dev": true, - "license": "MIT" - }, "packages/ts/generator-typescript-utils/node_modules/fill-range": { "version": "7.0.1", "dev": true, @@ -25020,23 +24349,6 @@ "dev": true, "license": "ISC" }, - "packages/ts/generator-typescript-utils/node_modules/fsevents": { - "version": "2.3.2", - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "packages/ts/generator-typescript-utils/node_modules/function-bind": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, "packages/ts/generator-typescript-utils/node_modules/get-caller-file": { "version": "2.0.5", "dev": true, @@ -25091,25 +24403,6 @@ "node": ">=4.x" } }, - "packages/ts/generator-typescript-utils/node_modules/hard-rejection": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "packages/ts/generator-typescript-utils/node_modules/has": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "packages/ts/generator-typescript-utils/node_modules/has-flag": { "version": "4.0.0", "dev": true, @@ -25126,33 +24419,11 @@ "he": "bin/he" } }, - "packages/ts/generator-typescript-utils/node_modules/hosted-git-info": { - "version": "4.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, "packages/ts/generator-typescript-utils/node_modules/html-escaper": { "version": "2.0.2", "dev": true, "license": "MIT" }, - "packages/ts/generator-typescript-utils/node_modules/indent-string": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "packages/ts/generator-typescript-utils/node_modules/inflight": { "version": "1.0.6", "dev": true, @@ -25166,11 +24437,6 @@ "version": "2.0.4", "license": "ISC" }, - "packages/ts/generator-typescript-utils/node_modules/is-arrayish": { - "version": "0.2.1", - "dev": true, - "license": "MIT" - }, "packages/ts/generator-typescript-utils/node_modules/is-binary-path": { "version": "2.1.0", "dev": true, @@ -25182,17 +24448,6 @@ "node": ">=8" } }, - "packages/ts/generator-typescript-utils/node_modules/is-core-module": { - "version": "2.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "packages/ts/generator-typescript-utils/node_modules/is-extglob": { "version": "2.1.1", "dev": true, @@ -25228,14 +24483,6 @@ "node": ">=0.12.0" } }, - "packages/ts/generator-typescript-utils/node_modules/is-plain-obj": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "packages/ts/generator-typescript-utils/node_modules/is-unicode-supported": { "version": "0.1.0", "dev": true, @@ -25301,19 +24548,6 @@ "node": ">=8" } }, - "packages/ts/generator-typescript-utils/node_modules/joycon": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "packages/ts/generator-typescript-utils/node_modules/js-tokens": { - "version": "4.0.0", - "dev": true, - "license": "MIT" - }, "packages/ts/generator-typescript-utils/node_modules/js-yaml": { "version": "4.1.0", "dev": true, @@ -25325,37 +24559,11 @@ "js-yaml": "bin/js-yaml.js" } }, - "packages/ts/generator-typescript-utils/node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true, - "license": "MIT" - }, "packages/ts/generator-typescript-utils/node_modules/just-extend": { "version": "4.2.1", "dev": true, "license": "MIT" }, - "packages/ts/generator-typescript-utils/node_modules/kind-of": { - "version": "6.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "packages/ts/generator-typescript-utils/node_modules/leven": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "packages/ts/generator-typescript-utils/node_modules/lines-and-columns": { - "version": "1.2.4", - "dev": true, - "license": "MIT" - }, "packages/ts/generator-typescript-utils/node_modules/locate-path": { "version": "6.0.0", "dev": true, @@ -25380,11 +24588,6 @@ "dev": true, "license": "MIT" }, - "packages/ts/generator-typescript-utils/node_modules/lodash.isequal": { - "version": "4.5.0", - "dev": true, - "license": "MIT" - }, "packages/ts/generator-typescript-utils/node_modules/log-symbols": { "version": "4.1.0", "dev": true, @@ -25400,17 +24603,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/ts/generator-typescript-utils/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "packages/ts/generator-typescript-utils/node_modules/make-dir": { "version": "3.1.0", "dev": true, @@ -25425,61 +24617,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/ts/generator-typescript-utils/node_modules/map-obj": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/ts/generator-typescript-utils/node_modules/meow": { - "version": "10.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/minimist": "^1.2.2", - "camelcase-keys": "^7.0.0", - "decamelize": "^5.0.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.2", - "read-pkg-up": "^8.0.0", - "redent": "^4.0.0", - "trim-newlines": "^4.0.2", - "type-fest": "^1.2.2", - "yargs-parser": "^20.2.9" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/ts/generator-typescript-utils/node_modules/meow/node_modules/type-fest": { - "version": "1.4.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/ts/generator-typescript-utils/node_modules/min-indent": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "packages/ts/generator-typescript-utils/node_modules/minimatch": { "version": "3.0.4", "dev": true, @@ -25491,19 +24628,6 @@ "node": "*" } }, - "packages/ts/generator-typescript-utils/node_modules/minimist-options": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, "packages/ts/generator-typescript-utils/node_modules/mkdirp": { "version": "1.0.4", "dev": true, @@ -25584,14 +24708,6 @@ "node": ">=10" } }, - "packages/ts/generator-typescript-utils/node_modules/mri": { - "version": "1.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "packages/ts/generator-typescript-utils/node_modules/ms": { "version": "2.1.3", "dev": true, @@ -25629,34 +24745,6 @@ "readable-stream": "~1.0.31" } }, - "packages/ts/generator-typescript-utils/node_modules/normalize-package-data": { - "version": "3.0.3", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "packages/ts/generator-typescript-utils/node_modules/normalize-package-data/node_modules/semver": { - "version": "7.3.5", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "packages/ts/generator-typescript-utils/node_modules/normalize-path": { "version": "3.0.0", "dev": true, @@ -25676,11 +24764,6 @@ "wrappy": "1" } }, - "packages/ts/generator-typescript-utils/node_modules/openapi-types": { - "version": "9.3.1", - "dev": true, - "license": "MIT" - }, "packages/ts/generator-typescript-utils/node_modules/p-limit": { "version": "3.1.0", "dev": true, @@ -25709,23 +24792,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/ts/generator-typescript-utils/node_modules/parse-json": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "packages/ts/generator-typescript-utils/node_modules/path-exists": { "version": "4.0.0", "dev": true, @@ -25804,49 +24870,6 @@ "split2": "^4.0.0" } }, - "packages/ts/generator-typescript-utils/node_modules/pino-pretty": { - "version": "7.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "args": "^5.0.1", - "colorette": "^2.0.7", - "dateformat": "^4.6.3", - "fast-safe-stringify": "^2.0.7", - "joycon": "^3.1.1", - "pino-abstract-transport": "^0.5.0", - "pump": "^3.0.0", - "readable-stream": "^3.6.0", - "rfdc": "^1.3.0", - "secure-json-parse": "^2.4.0", - "sonic-boom": "^2.2.0", - "strip-json-comments": "^3.1.1" - }, - "bin": { - "pino-pretty": "bin.js" - } - }, - "packages/ts/generator-typescript-utils/node_modules/pino-pretty/node_modules/readable-stream": { - "version": "3.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "packages/ts/generator-typescript-utils/node_modules/pino-pretty/node_modules/string_decoder": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "packages/ts/generator-typescript-utils/node_modules/pino-std-serializers": { "version": "4.0.0", "license": "MIT" @@ -25860,30 +24883,10 @@ "version": "1.0.0", "license": "MIT" }, - "packages/ts/generator-typescript-utils/node_modules/pump": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "packages/ts/generator-typescript-utils/node_modules/quick-format-unescaped": { "version": "4.0.4", "license": "MIT" }, - "packages/ts/generator-typescript-utils/node_modules/quick-lru": { - "version": "5.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "packages/ts/generator-typescript-utils/node_modules/randombytes": { "version": "2.1.0", "dev": true, @@ -25892,61 +24895,6 @@ "safe-buffer": "^5.1.0" } }, - "packages/ts/generator-typescript-utils/node_modules/read-pkg": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/ts/generator-typescript-utils/node_modules/read-pkg-up": { - "version": "8.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^5.0.0", - "read-pkg": "^6.0.0", - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/ts/generator-typescript-utils/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "1.4.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/ts/generator-typescript-utils/node_modules/read-pkg/node_modules/type-fest": { - "version": "1.4.0", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "packages/ts/generator-typescript-utils/node_modules/readable-stream": { "version": "1.0.34", "dev": true, @@ -25976,21 +24924,6 @@ "node": ">= 12.13.0" } }, - "packages/ts/generator-typescript-utils/node_modules/redent": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "indent-string": "^5.0.0", - "strip-indent": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "packages/ts/generator-typescript-utils/node_modules/require-directory": { "version": "2.1.1", "dev": true, @@ -25999,11 +24932,6 @@ "node": ">=0.10.0" } }, - "packages/ts/generator-typescript-utils/node_modules/rfdc": { - "version": "1.3.0", - "dev": true, - "license": "MIT" - }, "packages/ts/generator-typescript-utils/node_modules/rimraf": { "version": "3.0.2", "dev": true, @@ -26054,11 +24982,6 @@ "node": ">=10" } }, - "packages/ts/generator-typescript-utils/node_modules/secure-json-parse": { - "version": "2.4.0", - "dev": true, - "license": "BSD-3-Clause" - }, "packages/ts/generator-typescript-utils/node_modules/semver": { "version": "6.3.0", "dev": true, @@ -26156,34 +25079,6 @@ "dev": true, "license": "MIT" }, - "packages/ts/generator-typescript-utils/node_modules/spdx-correct": { - "version": "3.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "packages/ts/generator-typescript-utils/node_modules/spdx-exceptions": { - "version": "2.3.0", - "dev": true, - "license": "CC-BY-3.0" - }, - "packages/ts/generator-typescript-utils/node_modules/spdx-expression-parse": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "packages/ts/generator-typescript-utils/node_modules/spdx-license-ids": { - "version": "3.0.11", - "dev": true, - "license": "CC0-1.0" - }, "packages/ts/generator-typescript-utils/node_modules/split2": { "version": "4.1.0", "license": "ISC", @@ -26224,20 +25119,6 @@ "node": ">=8" } }, - "packages/ts/generator-typescript-utils/node_modules/strip-indent": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "min-indent": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "packages/ts/generator-typescript-utils/node_modules/strip-json-comments": { "version": "3.1.1", "dev": true, @@ -26343,17 +25224,6 @@ "tree-kill": "cli.js" } }, - "packages/ts/generator-typescript-utils/node_modules/trim-newlines": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "packages/ts/generator-typescript-utils/node_modules/tslib": { "version": "1.14.1", "dev": true, @@ -26414,23 +25284,6 @@ "node": ">=10.12.0" } }, - "packages/ts/generator-typescript-utils/node_modules/validate-npm-package-license": { - "version": "3.0.4", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "packages/ts/generator-typescript-utils/node_modules/validator": { - "version": "13.7.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, "packages/ts/generator-typescript-utils/node_modules/which": { "version": "2.0.2", "dev": true, @@ -26486,11 +25339,6 @@ "node": ">=10" } }, - "packages/ts/generator-typescript-utils/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, "packages/ts/generator-typescript-utils/node_modules/yargs": { "version": "16.2.0", "dev": true, @@ -26559,25 +25407,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "packages/ts/generator-typescript-utils/node_modules/z-schema": { - "version": "5.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash.get": "^4.4.2", - "lodash.isequal": "^4.5.0", - "validator": "^13.7.0" - }, - "bin": { - "z-schema": "bin/z-schema" - }, - "engines": { - "node": ">=8.0.0" - }, - "optionalDependencies": { - "commander": "^2.7.1" - } } }, "dependencies": { @@ -27980,8 +26809,6 @@ }, "@types/validator": { "version": "13.7.1", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.1.tgz", - "integrity": "sha512-I6OUIZ5cYRk5lp14xSOAiXjWrfVoMZVjDuevBYgQDYzZIjsf2CAISpEcXOkFAtpAHbmWIDLcZObejqny/9xq5Q==", "dev": true }, "@types/ws": { @@ -29277,11 +28104,6 @@ "fs.realpath": { "version": "1.0.0" }, - "fsevents": { - "version": "2.3.2", - "dev": true, - "optional": true - }, "function-bind": { "version": "1.1.1", "dev": true @@ -32354,11 +31176,6 @@ "fs.realpath": { "version": "1.0.0" }, - "fsevents": { - "version": "2.3.2", - "dev": true, - "optional": true - }, "function-bind": { "version": "1.1.1", "dev": true @@ -34033,8 +32850,8 @@ "@types/node": "^16.11.1", "@types/sinon": "^10.0.6", "@types/sinon-chai": "^3.2.5", - "@vaadin/generator-typescript-core": "^0.0.16", - "@vaadin/generator-typescript-utils": "^0.0.16", + "@vaadin/generator-typescript-core": "^0.0.17", + "@vaadin/generator-typescript-utils": "^0.0.17", "c8": "^7.10.0", "chai": "^4.3.4", "concurrently": "^6.3.0", @@ -34050,8 +32867,6 @@ "dependencies": { "@types/node": { "version": "16.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.17.tgz", - "integrity": "sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==", "dev": true } } @@ -34065,6 +32880,7 @@ "@types/node": "^16.11.1", "@types/sinon": "^10.0.6", "@types/sinon-chai": "^3.2.5", + "@vaadin/generator-typescript-utils": "^0.0.17", "c8": "^7.10.0", "chai": "^4.3.4", "concurrently": "^6.3.0", @@ -34072,8 +32888,6 @@ "meow": "^10.1.1", "mocha": "^9.1.3", "openapi-types": "^9.3.0", - "pino": "^7.0.5", - "pino-pretty": "^7.1.0", "rimraf": "^3.0.2", "sinon": "^11.1.2", "sinon-chai": "^3.7.0", @@ -34161,163 +32975,114 @@ } } }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "dev": true - }, - "@jsdevtools/ono": { - "version": "7.1.3" - }, - "@sinonjs/commons": { - "version": "1.8.3", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "7.1.2", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@sinonjs/samsam": { - "version": "6.0.2", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.6.0", - "lodash.get": "^4.4.2", - "type-detect": "^4.0.8" - } - }, - "@sinonjs/text-encoding": { - "version": "0.7.1", - "dev": true - }, - "@types/chai": { - "version": "4.3.0", - "dev": true - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.9" - }, - "@types/minimist": { - "version": "1.2.2" - }, - "@types/mocha": { - "version": "9.0.0", - "dev": true - }, - "@types/node": { - "version": "16.11.17", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.1" - }, - "@types/sinon": { - "version": "10.0.6", - "dev": true, - "requires": { - "@sinonjs/fake-timers": "^7.1.0" - } - }, - "@types/sinon-chai": { - "version": "3.2.7", - "dev": true, - "requires": { - "@types/chai": "*", - "@types/sinon": "*" - } - }, - "@ungap/promise-all-settled": { - "version": "1.1.2", - "dev": true - }, - "ansi-colors": { - "version": "4.1.1", - "dev": true - }, - "ansi-regex": { - "version": "5.0.1", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "2.0.1" - }, - "args": { - "version": "5.0.1", - "requires": { - "camelcase": "5.0.0", - "chalk": "2.4.2", - "leven": "2.1.0", - "mri": "1.1.4" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "requires": { - "color-convert": "^1.9.0" - } - }, - "camelcase": { - "version": "5.0.0" - }, - "chalk": { - "version": "2.4.2", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3" - }, - "escape-string-regexp": { - "version": "1.0.5" - }, - "has-flag": { - "version": "3.0.0" - }, - "supports-color": { - "version": "5.5.0", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "dev": true + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "dev": true + }, + "@jsdevtools/ono": { + "version": "7.1.3" + }, + "@sinonjs/commons": { + "version": "1.8.3", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "7.1.2", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@sinonjs/samsam": { + "version": "6.0.2", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "@sinonjs/text-encoding": { + "version": "0.7.1", + "dev": true + }, + "@types/chai": { + "version": "4.3.0", + "dev": true + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.9" + }, + "@types/minimist": { + "version": "1.2.2" + }, + "@types/mocha": { + "version": "9.0.0", + "dev": true + }, + "@types/node": { + "version": "16.11.17", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.1" + }, + "@types/sinon": { + "version": "10.0.6", + "dev": true, + "requires": { + "@sinonjs/fake-timers": "^7.1.0" + } + }, + "@types/sinon-chai": { + "version": "3.2.7", + "dev": true, + "requires": { + "@types/chai": "*", + "@types/sinon": "*" + } + }, + "@ungap/promise-all-settled": { + "version": "1.1.2", + "dev": true + }, + "ansi-colors": { + "version": "4.1.1", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "2.0.1" + }, "arrify": { "version": "1.0.1" }, @@ -34325,9 +33090,6 @@ "version": "1.1.0", "dev": true }, - "atomic-sleep": { - "version": "1.0.0" - }, "balanced-match": { "version": "1.0.2", "dev": true @@ -34460,9 +33222,6 @@ "version": "1.1.4", "dev": true }, - "colorette": { - "version": "2.0.16" - }, "commander": { "version": "2.20.3", "optional": true @@ -34528,9 +33287,6 @@ "version": "2.28.0", "dev": true }, - "dateformat": { - "version": "4.6.3" - }, "debug": { "version": "4.3.2", "dev": true, @@ -34573,41 +33329,10 @@ "version": "5.0.0", "dev": true }, - "duplexify": { - "version": "4.1.2", - "requires": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, "emoji-regex": { "version": "8.0.0", "dev": true }, - "end-of-stream": { - "version": "1.4.4", - "requires": { - "once": "^1.4.0" - } - }, "error-ex": { "version": "1.3.2", "requires": { @@ -34622,12 +33347,6 @@ "version": "4.0.0", "dev": true }, - "fast-redact": { - "version": "3.0.2" - }, - "fast-safe-stringify": { - "version": "2.1.1" - }, "fill-range": { "version": "7.0.1", "dev": true, @@ -34658,11 +33377,6 @@ "version": "1.0.0", "dev": true }, - "fsevents": { - "version": "2.3.2", - "dev": true, - "optional": true - }, "function-bind": { "version": "1.1.1" }, @@ -34736,7 +33450,8 @@ } }, "inherits": { - "version": "2.0.4" + "version": "2.0.4", + "dev": true }, "is-arrayish": { "version": "0.2.1" @@ -34818,9 +33533,6 @@ "istanbul-lib-report": "^3.0.0" } }, - "joycon": { - "version": "3.1.1" - }, "js-tokens": { "version": "4.0.0" }, @@ -34840,9 +33552,6 @@ "kind-of": { "version": "6.0.3" }, - "leven": { - "version": "2.1.0" - }, "lines-and-columns": { "version": "1.2.4" }, @@ -34978,9 +33687,6 @@ } } }, - "mri": { - "version": "1.1.4" - }, "ms": { "version": "2.1.3", "dev": true @@ -35029,11 +33735,9 @@ "version": "3.0.0", "dev": true }, - "on-exit-leak-free": { - "version": "0.2.0" - }, "once": { "version": "1.4.0", + "dev": true, "requires": { "wrappy": "1" } @@ -35088,81 +33792,10 @@ "version": "2.3.0", "dev": true }, - "pino": { - "version": "7.6.2", - "requires": { - "fast-redact": "^3.0.0", - "on-exit-leak-free": "^0.2.0", - "pino-abstract-transport": "v0.5.0", - "pino-std-serializers": "^4.0.0", - "process-warning": "^1.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.1.0", - "safe-stable-stringify": "^2.1.0", - "sonic-boom": "^2.2.1", - "thread-stream": "^0.13.0" - } - }, - "pino-abstract-transport": { - "version": "0.5.0", - "requires": { - "duplexify": "^4.1.2", - "split2": "^4.0.0" - } - }, - "pino-pretty": { - "version": "7.3.0", - "requires": { - "args": "^5.0.1", - "colorette": "^2.0.7", - "dateformat": "^4.6.3", - "fast-safe-stringify": "^2.0.7", - "joycon": "^3.1.1", - "pino-abstract-transport": "^0.5.0", - "pump": "^3.0.0", - "readable-stream": "^3.6.0", - "rfdc": "^1.3.0", - "secure-json-parse": "^2.4.0", - "sonic-boom": "^2.2.0", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "pino-std-serializers": { - "version": "4.0.0" - }, "process-nextick-args": { "version": "2.0.1", "dev": true }, - "process-warning": { - "version": "1.0.0" - }, - "pump": { - "version": "3.0.0", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "quick-format-unescaped": { - "version": "4.0.4" - }, "quick-lru": { "version": "5.1.1" }, @@ -35217,9 +33850,6 @@ "picomatch": "^2.2.1" } }, - "real-require": { - "version": "0.1.0" - }, "redent": { "version": "4.0.0", "requires": { @@ -35231,9 +33861,6 @@ "version": "2.1.1", "dev": true }, - "rfdc": { - "version": "1.3.0" - }, "rimraf": { "version": "3.0.2", "dev": true, @@ -35249,13 +33876,8 @@ } }, "safe-buffer": { - "version": "5.2.1" - }, - "safe-stable-stringify": { - "version": "2.3.1" - }, - "secure-json-parse": { - "version": "2.4.0" + "version": "5.2.1", + "dev": true }, "semver": { "version": "6.3.0", @@ -35309,12 +33931,6 @@ "dev": true, "requires": {} }, - "sonic-boom": { - "version": "2.4.2", - "requires": { - "atomic-sleep": "^1.0.0" - } - }, "source-map": { "version": "0.7.3", "dev": true @@ -35343,12 +33959,6 @@ "spdx-license-ids": { "version": "3.0.11" }, - "split2": { - "version": "4.1.0" - }, - "stream-shift": { - "version": "1.0.1" - }, "string_decoder": { "version": "0.10.31", "dev": true @@ -35376,7 +33986,8 @@ } }, "strip-json-comments": { - "version": "3.1.1" + "version": "3.1.1", + "dev": true }, "supports-color": { "version": "8.1.1", @@ -35394,12 +34005,6 @@ "minimatch": "^3.0.4" } }, - "thread-stream": { - "version": "0.13.0", - "requires": { - "real-require": "^0.1.0" - } - }, "through2": { "version": "2.0.5", "dev": true, @@ -35472,7 +34077,8 @@ "dev": true }, "util-deprecate": { - "version": "1.0.2" + "version": "1.0.2", + "dev": true }, "v8-to-istanbul": { "version": "8.1.0", @@ -35514,7 +34120,8 @@ } }, "wrappy": { - "version": "1.0.2" + "version": "1.0.2", + "dev": true }, "xtend": { "version": "4.0.2", @@ -35585,9 +34192,9 @@ "@types/node": "^16.11.1", "@types/sinon": "^10.0.6", "@types/sinon-chai": "^3.2.5", - "@vaadin/generator-typescript-core": "^0.0.16", - "@vaadin/generator-typescript-plugin-client": "^0.0.16", - "@vaadin/generator-typescript-utils": "^0.0.16", + "@vaadin/generator-typescript-core": "^0.0.17", + "@vaadin/generator-typescript-plugin-client": "^0.0.17", + "@vaadin/generator-typescript-utils": "^0.0.17", "c8": "^7.10.0", "chai": "^4.3.4", "concurrently": "^6.4.0", @@ -35605,8 +34212,6 @@ "dependencies": { "@types/node": { "version": "16.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.17.tgz", - "integrity": "sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==", "dev": true } } @@ -35619,9 +34224,9 @@ "@types/node": "^16.11.1", "@types/sinon": "^10.0.6", "@types/sinon-chai": "^3.2.5", - "@vaadin/generator-typescript-core": "^0.0.16", - "@vaadin/generator-typescript-plugin-backbone": "^0.0.16", - "@vaadin/generator-typescript-utils": "^0.0.16", + "@vaadin/generator-typescript-core": "^0.0.17", + "@vaadin/generator-typescript-plugin-backbone": "^0.0.17", + "@vaadin/generator-typescript-utils": "^0.0.17", "c8": "^7.10.0", "chai": "^4.3.4", "concurrently": "^6.4.0", @@ -35637,8 +34242,6 @@ "dependencies": { "@types/node": { "version": "16.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.17.tgz", - "integrity": "sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==", "dev": true } } @@ -35651,8 +34254,8 @@ "@types/node": "^16.11.1", "@types/sinon": "^10.0.6", "@types/sinon-chai": "^3.2.5", - "@vaadin/generator-typescript-core": "^0.0.16", - "@vaadin/generator-typescript-utils": "^0.0.16", + "@vaadin/generator-typescript-core": "^0.0.17", + "@vaadin/generator-typescript-utils": "^0.0.17", "c8": "^7.10.0", "chai": "^4.3.4", "concurrently": "^6.4.0", @@ -35668,8 +34271,6 @@ "dependencies": { "@types/node": { "version": "16.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.17.tgz", - "integrity": "sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==", "dev": true } } @@ -35682,9 +34283,9 @@ "@types/node": "^16.11.1", "@types/sinon": "^10.0.6", "@types/sinon-chai": "^3.2.5", - "@vaadin/generator-typescript-core": "^0.0.16", - "@vaadin/generator-typescript-plugin-client": "^0.0.16", - "@vaadin/generator-typescript-utils": "^0.0.16", + "@vaadin/generator-typescript-core": "^0.0.17", + "@vaadin/generator-typescript-plugin-client": "^0.0.17", + "@vaadin/generator-typescript-utils": "^0.0.17", "c8": "^7.10.0", "chai": "^4.3.4", "concurrently": "^6.4.0", @@ -35702,8 +34303,6 @@ "dependencies": { "@types/node": { "version": "16.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.17.tgz", - "integrity": "sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==", "dev": true } } @@ -35716,13 +34315,13 @@ "@types/node": "^16.11.1", "@types/sinon": "^10.0.6", "@types/sinon-chai": "^3.2.5", - "@vaadin/generator-typescript-core": "^0.0.16", "c8": "^7.10.0", "chai": "^4.3.4", "concurrently": "^6.4.0", "copyfiles": "^2.4.1", "mocha": "^9.1.3", "pino": "^7.0.5", + "pino-pretty": "^7.3.0", "rimraf": "^3.0.2", "sinon": "^11.1.2", "sinon-chai": "^3.7.0", @@ -35730,100 +34329,6 @@ "typescript": "^4.5.2" }, "dependencies": { - "@apidevtools/json-schema-ref-parser": { - "version": "9.0.9", - "dev": true, - "requires": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.6", - "call-me-maybe": "^1.0.1", - "js-yaml": "^4.1.0" - } - }, - "@apidevtools/openapi-schemas": { - "version": "2.1.0", - "dev": true - }, - "@apidevtools/swagger-methods": { - "version": "3.0.2", - "dev": true - }, - "@apidevtools/swagger-parser": { - "version": "10.0.3", - "dev": true, - "requires": { - "@apidevtools/json-schema-ref-parser": "^9.0.6", - "@apidevtools/openapi-schemas": "^2.0.4", - "@apidevtools/swagger-methods": "^3.0.2", - "@jsdevtools/ono": "^7.1.3", - "call-me-maybe": "^1.0.1", - "z-schema": "^5.0.1" - } - }, - "@babel/code-frame": { - "version": "7.16.0", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.0" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "dev": true - }, - "@babel/highlight": { - "version": "7.16.0", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, "@bcoe/v8-coverage": { "version": "0.2.3", "dev": true @@ -35832,10 +34337,6 @@ "version": "0.1.3", "dev": true }, - "@jsdevtools/ono": { - "version": "7.1.3", - "dev": true - }, "@sinonjs/commons": { "version": "1.8.3", "dev": true, @@ -35871,14 +34372,6 @@ "version": "2.0.4", "dev": true }, - "@types/json-schema": { - "version": "7.0.9", - "dev": true - }, - "@types/minimist": { - "version": "1.2.2", - "dev": true - }, "@types/mocha": { "version": "9.0.0", "dev": true @@ -35887,10 +34380,6 @@ "version": "16.11.17", "dev": true }, - "@types/normalize-package-data": { - "version": "2.4.1", - "dev": true - }, "@types/sinon": { "version": "10.0.6", "dev": true, @@ -35910,18 +34399,6 @@ "version": "1.1.2", "dev": true }, - "@vaadin/generator-typescript-core": { - "version": "0.0.16", - "dev": true, - "requires": { - "@apidevtools/swagger-parser": "^10.0.3", - "meow": "^10.1.1", - "openapi-types": "^9.3.0", - "pino": "^7.0.5", - "pino-pretty": "^7.1.0", - "typescript": "^4.5.0-beta" - } - }, "ansi-colors": { "version": "4.1.1", "dev": true @@ -35949,68 +34426,6 @@ "version": "2.0.1", "dev": true }, - "args": { - "version": "5.0.1", - "dev": true, - "requires": { - "camelcase": "5.0.0", - "chalk": "2.4.2", - "leven": "2.1.0", - "mri": "1.1.4" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "camelcase": { - "version": "5.0.0", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "arrify": { - "version": "1.0.1", - "dev": true - }, "assertion-error": { "version": "1.1.0", "dev": true @@ -36063,30 +34478,10 @@ "yargs-parser": "^20.2.7" } }, - "call-me-maybe": { - "version": "1.0.1", - "dev": true - }, "camelcase": { "version": "6.2.1", "dev": true }, - "camelcase-keys": { - "version": "7.0.1", - "dev": true, - "requires": { - "camelcase": "^6.2.0", - "map-obj": "^4.1.0", - "quick-lru": "^5.1.1", - "type-fest": "^1.2.1" - }, - "dependencies": { - "type-fest": { - "version": "1.4.0", - "dev": true - } - } - }, "chai": { "version": "4.3.4", "dev": true, @@ -36154,15 +34549,6 @@ "version": "1.1.4", "dev": true }, - "colorette": { - "version": "2.0.16", - "dev": true - }, - "commander": { - "version": "2.20.3", - "dev": true, - "optional": true - }, "concat-map": { "version": "0.0.1", "dev": true @@ -36224,10 +34610,6 @@ "version": "2.28.0", "dev": true }, - "dateformat": { - "version": "4.6.3", - "dev": true - }, "debug": { "version": "4.3.2", "dev": true, @@ -36241,28 +34623,6 @@ } } }, - "decamelize": { - "version": "5.0.1", - "dev": true - }, - "decamelize-keys": { - "version": "1.1.0", - "dev": true, - "requires": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "decamelize": { - "version": "1.2.0", - "dev": true - }, - "map-obj": { - "version": "1.0.1", - "dev": true - } - } - }, "deep-eql": { "version": "3.0.1", "dev": true, @@ -36309,13 +34669,6 @@ "once": "^1.4.0" } }, - "error-ex": { - "version": "1.3.2", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, "escalade": { "version": "3.1.1", "dev": true @@ -36327,10 +34680,6 @@ "fast-redact": { "version": "3.0.2" }, - "fast-safe-stringify": { - "version": "2.1.1", - "dev": true - }, "fill-range": { "version": "7.0.1", "dev": true, @@ -36362,15 +34711,6 @@ "version": "1.0.0", "dev": true }, - "fsevents": { - "version": "2.3.2", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "dev": true - }, "get-caller-file": { "version": "2.0.5", "dev": true @@ -36402,17 +34742,6 @@ "version": "1.10.5", "dev": true }, - "hard-rejection": { - "version": "2.1.0", - "dev": true - }, - "has": { - "version": "1.0.3", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, "has-flag": { "version": "4.0.0", "dev": true @@ -36421,21 +34750,10 @@ "version": "1.2.0", "dev": true }, - "hosted-git-info": { - "version": "4.0.2", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, "html-escaper": { "version": "2.0.2", "dev": true }, - "indent-string": { - "version": "5.0.0", - "dev": true - }, "inflight": { "version": "1.0.6", "dev": true, @@ -36447,10 +34765,6 @@ "inherits": { "version": "2.0.4" }, - "is-arrayish": { - "version": "0.2.1", - "dev": true - }, "is-binary-path": { "version": "2.1.0", "dev": true, @@ -36458,13 +34772,6 @@ "binary-extensions": "^2.0.0" } }, - "is-core-module": { - "version": "2.8.0", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, "is-extglob": { "version": "2.1.1", "dev": true @@ -36484,10 +34791,6 @@ "version": "7.0.0", "dev": true }, - "is-plain-obj": { - "version": "1.1.0", - "dev": true - }, "is-unicode-supported": { "version": "0.1.0", "dev": true @@ -36530,14 +34833,6 @@ "istanbul-lib-report": "^3.0.0" } }, - "joycon": { - "version": "3.1.1", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "dev": true - }, "js-yaml": { "version": "4.1.0", "dev": true, @@ -36545,26 +34840,10 @@ "argparse": "^2.0.1" } }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true - }, "just-extend": { "version": "4.2.1", "dev": true }, - "kind-of": { - "version": "6.0.3", - "dev": true - }, - "leven": { - "version": "2.1.0", - "dev": true - }, - "lines-and-columns": { - "version": "1.2.4", - "dev": true - }, "locate-path": { "version": "6.0.0", "dev": true, @@ -36580,10 +34859,6 @@ "version": "4.4.2", "dev": true }, - "lodash.isequal": { - "version": "4.5.0", - "dev": true - }, "log-symbols": { "version": "4.1.0", "dev": true, @@ -36592,13 +34867,6 @@ "is-unicode-supported": "^0.1.0" } }, - "lru-cache": { - "version": "6.0.0", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "make-dir": { "version": "3.1.0", "dev": true, @@ -36606,38 +34874,6 @@ "semver": "^6.0.0" } }, - "map-obj": { - "version": "4.3.0", - "dev": true - }, - "meow": { - "version": "10.1.2", - "dev": true, - "requires": { - "@types/minimist": "^1.2.2", - "camelcase-keys": "^7.0.0", - "decamelize": "^5.0.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.2", - "read-pkg-up": "^8.0.0", - "redent": "^4.0.0", - "trim-newlines": "^4.0.2", - "type-fest": "^1.2.2", - "yargs-parser": "^20.2.9" - }, - "dependencies": { - "type-fest": { - "version": "1.4.0", - "dev": true - } - } - }, - "min-indent": { - "version": "1.0.1", - "dev": true - }, "minimatch": { "version": "3.0.4", "dev": true, @@ -36645,15 +34881,6 @@ "brace-expansion": "^1.1.7" } }, - "minimist-options": { - "version": "4.1.0", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - } - }, "mkdirp": { "version": "1.0.4", "dev": true @@ -36706,10 +34933,6 @@ } } }, - "mri": { - "version": "1.1.4", - "dev": true - }, "ms": { "version": "2.1.3", "dev": true @@ -36737,25 +34960,6 @@ "readable-stream": "~1.0.31" } }, - "normalize-package-data": { - "version": "3.0.3", - "dev": true, - "requires": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, "normalize-path": { "version": "3.0.0", "dev": true @@ -36769,10 +34973,6 @@ "wrappy": "1" } }, - "openapi-types": { - "version": "9.3.1", - "dev": true - }, "p-limit": { "version": "3.1.0", "dev": true, @@ -36787,16 +34987,6 @@ "p-limit": "^3.0.2" } }, - "parse-json": { - "version": "5.2.0", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, "path-exists": { "version": "4.0.0", "dev": true @@ -36846,42 +35036,6 @@ "split2": "^4.0.0" } }, - "pino-pretty": { - "version": "7.3.0", - "dev": true, - "requires": { - "args": "^5.0.1", - "colorette": "^2.0.7", - "dateformat": "^4.6.3", - "fast-safe-stringify": "^2.0.7", - "joycon": "^3.1.1", - "pino-abstract-transport": "^0.5.0", - "pump": "^3.0.0", - "readable-stream": "^3.6.0", - "rfdc": "^1.3.0", - "secure-json-parse": "^2.4.0", - "sonic-boom": "^2.2.0", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, "pino-std-serializers": { "version": "4.0.0" }, @@ -36892,21 +35046,9 @@ "process-warning": { "version": "1.0.0" }, - "pump": { - "version": "3.0.0", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "quick-format-unescaped": { "version": "4.0.4" }, - "quick-lru": { - "version": "5.1.1", - "dev": true - }, "randombytes": { "version": "2.1.0", "dev": true, @@ -36914,37 +35056,6 @@ "safe-buffer": "^5.1.0" } }, - "read-pkg": { - "version": "6.0.0", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^1.0.1" - }, - "dependencies": { - "type-fest": { - "version": "1.4.0", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "8.0.0", - "dev": true, - "requires": { - "find-up": "^5.0.0", - "read-pkg": "^6.0.0", - "type-fest": "^1.0.1" - }, - "dependencies": { - "type-fest": { - "version": "1.4.0", - "dev": true - } - } - }, "readable-stream": { "version": "1.0.34", "dev": true, @@ -36965,22 +35076,10 @@ "real-require": { "version": "0.1.0" }, - "redent": { - "version": "4.0.0", - "dev": true, - "requires": { - "indent-string": "^5.0.0", - "strip-indent": "^4.0.0" - } - }, "require-directory": { "version": "2.1.1", "dev": true }, - "rfdc": { - "version": "1.3.0", - "dev": true - }, "rimraf": { "version": "3.0.2", "dev": true, @@ -37001,10 +35100,6 @@ "safe-stable-stringify": { "version": "2.3.1" }, - "secure-json-parse": { - "version": "2.4.0", - "dev": true - }, "semver": { "version": "6.3.0", "dev": true @@ -37071,30 +35166,6 @@ "version": "0.0.2-1", "dev": true }, - "spdx-correct": { - "version": "3.1.1", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.11", - "dev": true - }, "split2": { "version": "4.1.0" }, @@ -37121,13 +35192,6 @@ "ansi-regex": "^5.0.1" } }, - "strip-indent": { - "version": "4.0.0", - "dev": true, - "requires": { - "min-indent": "^1.0.1" - } - }, "strip-json-comments": { "version": "3.1.1", "dev": true @@ -37203,10 +35267,6 @@ "version": "1.2.2", "dev": true }, - "trim-newlines": { - "version": "4.0.2", - "dev": true - }, "tslib": { "version": "1.14.1", "dev": true @@ -37238,18 +35298,6 @@ "source-map": "^0.7.3" } }, - "validate-npm-package-license": { - "version": "3.0.4", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validator": { - "version": "13.7.0", - "dev": true - }, "which": { "version": "2.0.2", "dev": true, @@ -37281,10 +35329,6 @@ "version": "5.0.8", "dev": true }, - "yallist": { - "version": "4.0.0", - "dev": true - }, "yargs": { "version": "16.2.0", "dev": true, @@ -37325,16 +35369,6 @@ "yocto-queue": { "version": "0.1.0", "dev": true - }, - "z-schema": { - "version": "5.0.2", - "dev": true, - "requires": { - "commander": "^2.7.1", - "lodash.get": "^4.4.2", - "lodash.isequal": "^4.5.0", - "validator": "^13.7.0" - } } } }, @@ -37588,6 +35622,20 @@ "version": "2.0.1", "dev": true }, + "args": { + "version": "5.0.1", + "requires": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + }, + "dependencies": { + "camelcase": { + "version": "5.0.0" + } + } + }, "array-differ": { "version": "3.0.0", "dev": true @@ -37655,8 +35703,7 @@ "dev": true }, "atomic-sleep": { - "version": "1.0.0", - "dev": true + "version": "1.0.0" }, "aws-sign2": { "version": "0.7.0", @@ -38897,7 +36944,6 @@ }, "duplexify": { "version": "4.1.2", - "dev": true, "requires": { "end-of-stream": "^1.4.1", "inherits": "^2.0.3", @@ -38945,7 +36991,6 @@ }, "end-of-stream": { "version": "1.4.4", - "dev": true, "requires": { "once": "^1.4.0" } @@ -39041,11 +37086,6 @@ "esbuild-windows-arm64": "0.13.15" } }, - "esbuild-darwin-64": { - "version": "0.13.15", - "dev": true, - "optional": true - }, "escalade": { "version": "3.1.1", "dev": true @@ -39500,6 +37540,9 @@ "version": "3.0.2", "dev": true }, + "fast-safe-stringify": { + "version": "2.1.1" + }, "fastq": { "version": "1.13.0", "dev": true, @@ -39612,11 +37655,6 @@ "version": "1.0.0", "dev": true }, - "fsevents": { - "version": "2.3.2", - "dev": true, - "optional": true - }, "function-bind": { "version": "1.1.1" }, @@ -40368,8 +38406,7 @@ } }, "inherits": { - "version": "2.0.4", - "dev": true + "version": "2.0.4" }, "ini": { "version": "1.3.8", @@ -40704,6 +38741,9 @@ "istanbul-lib-report": "^3.0.0" } }, + "joycon": { + "version": "3.1.1" + }, "js-tokens": { "version": "4.0.0" }, @@ -40890,6 +38930,9 @@ "npmlog": "^4.1.2" } }, + "leven": { + "version": "2.1.0" + }, "levn": { "version": "0.4.1", "dev": true, @@ -41562,6 +39605,9 @@ "version": "1.0.1", "dev": true }, + "mri": { + "version": "1.1.4" + }, "ms": { "version": "2.1.2", "dev": true @@ -41954,7 +40000,6 @@ }, "once": { "version": "1.4.0", - "dev": true, "requires": { "wrappy": "1" } @@ -42256,15 +40301,38 @@ }, "pino-abstract-transport": { "version": "0.5.0", - "dev": true, "requires": { "duplexify": "^4.1.2", "split2": "^4.0.0" }, "dependencies": { "split2": { - "version": "4.1.0", - "dev": true + "version": "4.1.0" + } + } + }, + "pino-pretty": { + "version": "7.3.0", + "requires": { + "args": "^5.0.1", + "colorette": "^2.0.7", + "dateformat": "^4.6.3", + "fast-safe-stringify": "^2.0.7", + "joycon": "^3.1.1", + "pino-abstract-transport": "^0.5.0", + "pump": "^3.0.0", + "readable-stream": "^3.6.0", + "rfdc": "^1.3.0", + "secure-json-parse": "^2.4.0", + "sonic-boom": "^2.2.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "colorette": { + "version": "2.0.16" + }, + "dateformat": { + "version": "4.6.3" } } }, @@ -42389,7 +40457,6 @@ }, "pump": { "version": "3.0.0", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -42718,7 +40785,6 @@ }, "readable-stream": { "version": "3.6.0", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -42880,8 +40946,7 @@ "dev": true }, "rfdc": { - "version": "1.3.0", - "dev": true + "version": "1.3.0" }, "rimraf": { "version": "3.0.2", @@ -42928,6 +40993,9 @@ "version": "2.1.2", "dev": true }, + "secure-json-parse": { + "version": "2.4.0" + }, "semver": { "version": "7.3.5", "requires": { @@ -43078,7 +41146,6 @@ }, "sonic-boom": { "version": "2.4.2", - "dev": true, "requires": { "atomic-sleep": "^1.0.0" } @@ -43173,8 +41240,7 @@ "dev": true }, "stream-shift": { - "version": "1.0.1", - "dev": true + "version": "1.0.1" }, "strict-uri-encode": { "version": "2.0.0", @@ -43182,14 +41248,12 @@ }, "string_decoder": { "version": "1.3.0", - "dev": true, "requires": { "safe-buffer": "~5.2.0" }, "dependencies": { "safe-buffer": { - "version": "5.2.1", - "dev": true + "version": "5.2.1" } } }, @@ -43259,8 +41323,7 @@ } }, "strip-json-comments": { - "version": "3.1.1", - "dev": true + "version": "3.1.1" }, "strong-log-transformer": { "version": "2.1.0", @@ -43643,8 +41706,7 @@ } }, "util-deprecate": { - "version": "1.0.2", - "dev": true + "version": "1.0.2" }, "util-promisify": { "version": "2.1.0", @@ -43784,8 +41846,7 @@ } }, "wrappy": { - "version": "1.0.2", - "dev": true + "version": "1.0.2" }, "write-file-atomic": { "version": "3.0.3", diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/ArrayRelativeTypeSignature.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/ArrayRelativeTypeSignature.java index 731c17adbe..af9e604f45 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/ArrayRelativeTypeSignature.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/ArrayRelativeTypeSignature.java @@ -11,6 +11,8 @@ public final class ArrayRelativeTypeSignature extends AbstractRelative> implements RelativeTypeSignature { + private RelativeTypeSignature nestedType; + ArrayRelativeTypeSignature(ArrayTypeSignature origin, Relative parent) { super(origin, parent); } @@ -22,7 +24,11 @@ public static Stream resolve( } public RelativeTypeSignature getNestedType() { - return RelativeTypeSignature.of(origin.getNestedType(), this); + if (nestedType == null) { + nestedType = RelativeTypeSignature.of(origin.getNestedType(), this); + } + + return nestedType; } @Override diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/BaseRelativeTypeSignature.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/BaseRelativeTypeSignature.java index c37171c0f6..7c200800a4 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/BaseRelativeTypeSignature.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/BaseRelativeTypeSignature.java @@ -33,8 +33,6 @@ public boolean isBoolean() { @Override public boolean isByte() { - var type = origin.getType(); - return origin.getType() == Byte.TYPE; } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/ClassRefRelativeTypeSignature.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/ClassRefRelativeTypeSignature.java index 9c8a6e2250..2960523749 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/ClassRefRelativeTypeSignature.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/ClassRefRelativeTypeSignature.java @@ -17,21 +17,13 @@ public final class ClassRefRelativeTypeSignature extends AbstractRelative> implements RelativeTypeSignature { private final ReflectedClass reflectedClass; - private final List> suffixTypeArguments; - private final List typeArguments; + private List> suffixTypeArguments; + private List typeArguments; ClassRefRelativeTypeSignature(ClassRefTypeSignature origin, Relative parent) { super(origin, parent); reflectedClass = new ReflectedClass(origin); - typeArguments = origin.getTypeArguments().stream() - .map(arg -> new RelativeTypeArgument(arg, this)) - .collect(Collectors.toList()); - suffixTypeArguments = origin.getSuffixTypeArguments().stream() - .map(list -> list.stream() - .map(arg -> new RelativeTypeArgument(arg, this)) - .collect(Collectors.toList())) - .collect(Collectors.toList()); } public static Stream resolve( @@ -50,10 +42,24 @@ public static Stream resolve( } public List> getSuffixTypeArguments() { + if (suffixTypeArguments == null) { + suffixTypeArguments = origin.getSuffixTypeArguments().stream() + .map(list -> list.stream() + .map(arg -> new RelativeTypeArgument(arg, this)) + .collect(Collectors.toList())) + .collect(Collectors.toList()); + } + return suffixTypeArguments; } public List getTypeArguments() { + if (typeArguments == null) { + typeArguments = origin.getTypeArguments().stream() + .map(arg -> new RelativeTypeArgument(arg, this)) + .collect(Collectors.toList()); + } + return typeArguments; } @@ -139,6 +145,6 @@ public boolean isString() { @Override public boolean isSystem() { - return origin.getClassInfo() == null; + return origin.getClassInfo() == null || reflectedClass.isJDKClass(); } } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/ReflectedClass.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/ReflectedClass.java index eb24e12978..9f798832c7 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/ReflectedClass.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/ReflectedClass.java @@ -91,6 +91,10 @@ public boolean isIterable() { return Iterable.class.isAssignableFrom(origin); } + public boolean isJDKClass() { + return ParserUtils.isJDKClass(origin.getName()); + } + public boolean isLong() { return Long.class.isAssignableFrom(origin); } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeClassInfo.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeClassInfo.java index b79c127693..4cc0a0223f 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeClassInfo.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeClassInfo.java @@ -2,11 +2,11 @@ import static com.vaadin.fusion.parser.core.ParserUtils.isJDKClass; +import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Objects; import java.util.Optional; -import java.util.Set; import java.util.function.BiFunction; import java.util.function.Function; import java.util.function.Predicate; @@ -19,13 +19,13 @@ public final class RelativeClassInfo extends AbstractRelative { - private final List annotations; private final InheritanceChain chain; - private final List fields; - private final List innerClasses; - private final List methods; private final RelativeClassInfo superClass; - private final List superClasses; + private List annotations; + private List fields; + private List innerClasses; + private List methods; + private List superClasses; public RelativeClassInfo(@Nonnull ClassInfo origin) { this(origin, null); @@ -35,17 +35,6 @@ public RelativeClassInfo(@Nonnull ClassInfo origin, RelativeClassInfo parent) { super(origin, parent); - annotations = getMembers(ClassInfo::getAnnotationInfo, - RelativeAnnotationInfo::new); - fields = getMembers(ClassInfo::getDeclaredFieldInfo, - RelativeFieldInfo::new); - innerClasses = getMembers(ClassInfo::getInnerClasses, - RelativeClassInfo::new); - methods = getMembers(ClassInfo::getDeclaredMethodInfo, - RelativeMethodInfo::new); - superClasses = getMembers(ClassInfo::getSuperclasses, - (member) -> !isJDKClass(member), RelativeClassInfo::new); - var originSuperClass = origin.getSuperclass(); superClass = originSuperClass != null ? new RelativeClassInfo(originSuperClass) @@ -55,6 +44,19 @@ public RelativeClassInfo(@Nonnull ClassInfo origin, chain = new InheritanceChain(); } + public List getAnnotations() { + if (annotations == null) { + annotations = getMembers(ClassInfo::getAnnotationInfo, + RelativeAnnotationInfo::new); + } + + return annotations; + } + + public Stream getAnnotationsStream() { + return getAnnotations().stream(); + } + @Override public Stream getDependenciesStream() { return Stream @@ -73,11 +75,16 @@ public Stream getFieldDependenciesStream() { } public List getFields() { + if (fields == null) { + fields = getMembers(ClassInfo::getDeclaredFieldInfo, + RelativeFieldInfo::new); + } + return fields; } public Stream getFieldsStream() { - return fields.stream(); + return getFields().stream(); } public InheritanceChain getInheritanceChain() { @@ -94,11 +101,16 @@ public Stream getInnerClassDependenciesStream() { } public List getInnerClasses() { + if (innerClasses == null) { + innerClasses = getMembers(ClassInfo::getInnerClasses, + RelativeClassInfo::new); + } + return innerClasses; } public Stream getInnerClassesStream() { - return innerClasses.stream(); + return getInnerClasses().stream(); } public > List getMemberDependencies( @@ -174,11 +186,16 @@ public Stream getMethodDependenciesStream() { } public List getMethods() { + if (methods == null) { + methods = getMembers(ClassInfo::getDeclaredMethodInfo, + RelativeMethodInfo::new); + } + return methods; } public Stream getMethodsStream() { - return methods.stream(); + return getMethods().stream(); } @Override @@ -191,11 +208,16 @@ public Optional getSuperClass() { } public List getSuperClasses() { + if (superClasses == null) { + superClasses = getMembers(ClassInfo::getSuperclasses, + (member) -> !isJDKClass(member), RelativeClassInfo::new); + } + return superClasses; } public Stream getSuperClassesStream() { - return superClasses.stream(); + return getSuperClasses().stream(); } private boolean defaultFilter(T member) { @@ -203,19 +225,24 @@ private boolean defaultFilter(T member) { } public class InheritanceChain { - private final Set chain = new HashSet<>(); + private Collection chain; private InheritanceChain() { - chain.add(RelativeClassInfo.this); - chain.addAll(superClasses); } - public Set getClasses() { + public Collection getClasses() { + if (chain == null) { + var superClasses = getSuperClasses(); + chain = new HashSet<>(superClasses.size() + 1); + chain.add(RelativeClassInfo.this); + chain.addAll(superClasses); + } + return chain; } public Stream getClassesStream() { - return chain.stream(); + return getClasses().stream(); } public List getDependencies() { @@ -223,7 +250,7 @@ public List getDependencies() { } public Stream getDependenciesStream() { - return chain.stream() + return getClasses().stream() .flatMap(RelativeClassInfo::getDependenciesStream) .distinct(); } @@ -233,7 +260,7 @@ public List getFieldDependencies() { } public Stream getFieldDependenciesStream() { - return chain.stream() + return getClasses().stream() .flatMap(RelativeClassInfo::getFieldDependenciesStream) .distinct(); } @@ -243,8 +270,8 @@ public List getFields() { } public Stream getFieldsStream() { - return chain.stream().flatMap(RelativeClassInfo::getFieldsStream) - .distinct(); + return getClasses().stream() + .flatMap(RelativeClassInfo::getFieldsStream).distinct(); } public List getInnerClassDependencies() { @@ -253,7 +280,7 @@ public List getInnerClassDependencies() { } public Stream getInnerClassDependenciesStream() { - return chain.stream() + return getClasses().stream() .flatMap(RelativeClassInfo::getInnerClassDependenciesStream) .distinct(); } @@ -263,7 +290,7 @@ public List getInnerClasses() { } public Stream getInnerClassesStream() { - return chain.stream() + return getClasses().stream() .flatMap(RelativeClassInfo::getInnerClassesStream) .distinct(); } @@ -299,7 +326,7 @@ public > Stream getMe Objects.requireNonNull(filter); Objects.requireNonNull(selector); - return chain.stream().flatMap( + return getClasses().stream().flatMap( cls -> cls.getMembersStream(selector, filter, wrapper)) .distinct(); } @@ -309,7 +336,7 @@ public List getMethodDependencies() { } public Stream getMethodDependenciesStream() { - return chain.stream() + return getClasses().stream() .flatMap(RelativeClassInfo::getMethodDependenciesStream) .distinct(); } @@ -319,8 +346,8 @@ public List getMethods() { } public Stream getMethodsStream() { - return chain.stream().flatMap(RelativeClassInfo::getMethodsStream) - .distinct(); + return getClasses().stream() + .flatMap(RelativeClassInfo::getMethodsStream).distinct(); } } } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeFieldInfo.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeFieldInfo.java index badc33993c..886560a397 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeFieldInfo.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeFieldInfo.java @@ -9,21 +9,24 @@ public final class RelativeFieldInfo extends AbstractRelative { - private final RelativeTypeSignature type; + private RelativeTypeSignature type; public RelativeFieldInfo(@Nonnull FieldInfo origin, @Nonnull RelativeClassInfo parent) { super(origin, Objects.requireNonNull(parent)); - type = RelativeTypeSignature - .of(origin.getTypeSignatureOrTypeDescriptor(), this); } @Override public Stream getDependenciesStream() { - return type.getDependenciesStream(); + return getType().getDependenciesStream(); } public RelativeTypeSignature getType() { + if (type == null) { + type = RelativeTypeSignature + .of(origin.getTypeSignatureOrTypeDescriptor(), this); + } + return type; } } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeMethodInfo.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeMethodInfo.java index 36f6d35405..55c7666061 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeMethodInfo.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeMethodInfo.java @@ -13,19 +13,12 @@ public final class RelativeMethodInfo extends AbstractRelative { - private final List parameters; - private final RelativeTypeSignature resultType; + private List parameters; + private RelativeTypeSignature resultType; public RelativeMethodInfo(@Nonnull MethodInfo origin, @Nonnull RelativeClassInfo parent) { super(origin, Objects.requireNonNull(parent)); - - parameters = Arrays.stream(origin.getParameterInfo()).map( - parameter -> new RelativeMethodParameterInfo(parameter, this)) - .collect(Collectors.toList()); - resultType = RelativeTypeSignature.of( - origin.getTypeSignatureOrTypeDescriptor().getResultType(), - this); } @Override @@ -41,17 +34,24 @@ public List getParameterDependencies() { } public Stream getParameterDependenciesStream() { - return parameters.stream() + return getParameters().stream() .flatMap(RelativeMethodParameterInfo::getDependenciesStream) .distinct(); } public List getParameters() { + if (parameters == null) { + parameters = Arrays.stream(origin.getParameterInfo()) + .map(parameter -> new RelativeMethodParameterInfo(parameter, + this)) + .collect(Collectors.toList()); + } + return parameters; } public Stream getParametersStream() { - return parameters.stream(); + return getParameters().stream(); } public List getResultDependencies() { @@ -63,6 +63,12 @@ public Stream getResultDependenciesStream() { } public RelativeTypeSignature getResultType() { + if (resultType == null) { + resultType = RelativeTypeSignature.of( + origin.getTypeSignatureOrTypeDescriptor().getResultType(), + this); + } + return resultType; } } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeMethodParameterInfo.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeMethodParameterInfo.java index baed611415..d6494f5178 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeMethodParameterInfo.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeMethodParameterInfo.java @@ -9,14 +9,11 @@ public final class RelativeMethodParameterInfo extends AbstractRelative { - private final RelativeTypeSignature type; + private RelativeTypeSignature type; public RelativeMethodParameterInfo(@Nonnull MethodParameterInfo origin, @Nonnull RelativeMethodInfo parent) { super(origin, Objects.requireNonNull(parent)); - - type = RelativeTypeSignature - .of(origin.getTypeSignatureOrTypeDescriptor(), this); } @Override @@ -25,6 +22,11 @@ public Stream getDependenciesStream() { } public RelativeTypeSignature getType() { + if (type == null) { + type = RelativeTypeSignature + .of(origin.getTypeSignatureOrTypeDescriptor(), this); + } + return type; } } diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeTypeParameter.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeTypeParameter.java index 430d7da1f2..0ffaba536a 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeTypeParameter.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/RelativeTypeParameter.java @@ -15,7 +15,7 @@ public final class RelativeTypeParameter extends AbstractRelative> implements RelativeTypeSignature { private final RelativeTypeSignature classBound; - private final List interfaceBounds; + private List interfaceBounds; public RelativeTypeParameter(@Nonnull TypeParameter origin, @Nonnull Relative parent) { @@ -24,13 +24,10 @@ public RelativeTypeParameter(@Nonnull TypeParameter origin, this.classBound = classBound != null ? RelativeTypeSignature.of(classBound, this) : null; - interfaceBounds = origin.getInterfaceBounds().stream() - .map(signature -> RelativeTypeSignature.of(signature, this)) - .collect(Collectors.toList()); } public Stream getAllBoundsStream() { - return Stream.of(Stream.of(classBound), interfaceBounds.stream()) + return Stream.of(Stream.of(classBound), getInterfaceBounds().stream()) .flatMap(Function.identity()); } @@ -39,11 +36,17 @@ public Optional getClassBound() { } public List getInterfaceBounds() { + if (interfaceBounds == null) { + interfaceBounds = origin.getInterfaceBounds().stream() + .map(signature -> RelativeTypeSignature.of(signature, this)) + .collect(Collectors.toList()); + } + return interfaceBounds; } public Stream getInterfaceBoundsStream() { - return interfaceBounds.stream(); + return getInterfaceBounds().stream(); } @Override diff --git a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/TypeVariableRelativeTypeSignature.java b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/TypeVariableRelativeTypeSignature.java index 4da3ba24b2..1c76133683 100644 --- a/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/TypeVariableRelativeTypeSignature.java +++ b/packages/java/parser-jvm-core/src/main/java/com/vaadin/fusion/parser/core/TypeVariableRelativeTypeSignature.java @@ -8,12 +8,11 @@ public final class TypeVariableRelativeTypeSignature extends AbstractRelative> implements RelativeTypeSignature { - private final RelativeTypeParameter typeParameter; + private RelativeTypeParameter typeParameter; TypeVariableRelativeTypeSignature(TypeVariableSignature origin, Relative parent) { super(origin, parent); - typeParameter = new RelativeTypeParameter(origin.resolve(), this); } public static Stream resolve(TypeVariableSignature signature) { @@ -31,6 +30,10 @@ public boolean isTypeVariable() { } public RelativeTypeParameter resolve() { + if (typeParameter == null) { + typeParameter = new RelativeTypeParameter(origin.resolve(), this); + } + return typeParameter; } } diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/fusion/parser/plugins/backbone/EntityProcessor.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/fusion/parser/plugins/backbone/EntityProcessor.java index 13a4594fd6..c4c85f02c3 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/fusion/parser/plugins/backbone/EntityProcessor.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/fusion/parser/plugins/backbone/EntityProcessor.java @@ -41,7 +41,7 @@ public void process() { private Components prepareComponents() { var components = new Components(); - classes.stream().filter(cls -> { + classes.stream().filter(cls -> !cls.get().isSynthetic()).filter(cls -> { var reflectedClass = new ReflectedClass(cls); return !reflectedClass.isDate() && !reflectedClass.isDateTime() diff --git a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/fusion/parser/plugins/backbone/SchemaProcessor.java b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/fusion/parser/plugins/backbone/SchemaProcessor.java index 3c2eb50981..622dd7f967 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/fusion/parser/plugins/backbone/SchemaProcessor.java +++ b/packages/java/parser-jvm-plugin-backbone/src/main/java/com/vaadin/fusion/parser/plugins/backbone/SchemaProcessor.java @@ -61,6 +61,8 @@ public Schema process() { result = iterableSchema(); } else if (signature.isMap()) { result = mapSchema(); + } else if (signature.isOptional()) { + result = optionalSchema(); } else if (signature.isTypeArgument()) { result = typeArgumentSchema(); } else if (signature.isTypeParameter()) { @@ -152,7 +154,19 @@ private Schema numberSchema() { .format(signature.isDouble() ? "double" : "float"); } + private Schema optionalSchema() { + var typeArguments = ((ClassRefRelativeTypeSignature) signature) + .getTypeArguments(); + + return new SchemaProcessor(typeArguments.get(0), associationMap) + .process(); + } + private Schema refSchema() { + if (signature.isSystem()) { + return anySchema(); + } + var fullyQualifiedName = ((ClassRefRelativeTypeSignature) signature) .get().getFullyQualifiedClassName(); diff --git a/packages/java/parser-jvm-plugin-backbone/src/test/resources/com/vaadin/fusion/parser/plugins/backbone/complexhierarchy/openapi.json b/packages/java/parser-jvm-plugin-backbone/src/test/resources/com/vaadin/fusion/parser/plugins/backbone/complexhierarchy/openapi.json index 36dbe204f9..c0828a297b 100644 --- a/packages/java/parser-jvm-plugin-backbone/src/test/resources/com/vaadin/fusion/parser/plugins/backbone/complexhierarchy/openapi.json +++ b/packages/java/parser-jvm-plugin-backbone/src/test/resources/com/vaadin/fusion/parser/plugins/backbone/complexhierarchy/openapi.json @@ -42,15 +42,6 @@ }, "components": { "schemas": { - "com.vaadin.fusion.parser.plugins.backbone.complexhierarchy.models.ComplexHierarchyGrandParentModel": { - "type": "object", - "properties": { - "build": { - "type": "integer", - "format": "int32" - } - } - }, "com.vaadin.fusion.parser.plugins.backbone.complexhierarchy.models.ComplexHierarchyModel": { "anyOf": [ { @@ -82,6 +73,15 @@ } } ] + }, + "com.vaadin.fusion.parser.plugins.backbone.complexhierarchy.models.ComplexHierarchyGrandParentModel": { + "type": "object", + "properties": { + "build": { + "type": "integer", + "format": "int32" + } + } } } } diff --git a/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/fusion/parser/plugins/nonnull/NonnullPlugin.java b/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/fusion/parser/plugins/nonnull/NonnullPlugin.java index 3d8d8ddaf1..df48744601 100644 --- a/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/fusion/parser/plugins/nonnull/NonnullPlugin.java +++ b/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/fusion/parser/plugins/nonnull/NonnullPlugin.java @@ -1,6 +1,7 @@ package com.vaadin.fusion.parser.plugins.nonnull; import java.util.Collection; +import java.util.Objects; import javax.annotation.Nonnull; @@ -13,7 +14,7 @@ import com.vaadin.fusion.parser.utils.PluginException; public final class NonnullPlugin implements Plugin { - private Collection annotations; + private Collection annotations = NonnullPluginConfig.Processor.defaults; private int order = 100; @Override @@ -29,8 +30,8 @@ public void execute(@Nonnull Collection endpoints, "NonnullPlugin should be run after BackbonePlugin"); } - new NonnullProcessor(annotations, storage.getAssociationMap()) - .process(); + new NonnullProcessor(Objects.requireNonNull(annotations), + storage.getAssociationMap()).process(); } @Override diff --git a/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/fusion/parser/plugins/nonnull/NonnullPluginConfig.java b/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/fusion/parser/plugins/nonnull/NonnullPluginConfig.java index 5cf6007691..2976b5dc65 100644 --- a/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/fusion/parser/plugins/nonnull/NonnullPluginConfig.java +++ b/packages/java/parser-jvm-plugin-nonnull/src/main/java/com/vaadin/fusion/parser/plugins/nonnull/NonnullPluginConfig.java @@ -43,9 +43,9 @@ public boolean shouldAllDefaultsBeDisabled() { } static class Processor extends ConfigList.Processor { - private static final Set defaults = Set.of( - "javax.annotation.Nonnull", "org.jetbrains.annotations.NotNull", - "lombok.NonNull", "androidx.annotation.NonNull", + static final Set defaults = Set.of("javax.annotation.Nonnull", + "org.jetbrains.annotations.NotNull", "lombok.NonNull", + "androidx.annotation.NonNull", "org.eclipse.jdt.annotation.NonNull", "com.vaadin.fusion.Nonnull"); diff --git a/packages/java/parser-jvm-plugin-nonnull/src/test/resources/com/vaadin/fusion/parser/plugins/nonnull/extended/openapi.json b/packages/java/parser-jvm-plugin-nonnull/src/test/resources/com/vaadin/fusion/parser/plugins/nonnull/extended/openapi.json index de8ef77484..c4cd9a61e2 100644 --- a/packages/java/parser-jvm-plugin-nonnull/src/test/resources/com/vaadin/fusion/parser/plugins/nonnull/extended/openapi.json +++ b/packages/java/parser-jvm-plugin-nonnull/src/test/resources/com/vaadin/fusion/parser/plugins/nonnull/extended/openapi.json @@ -16,70 +16,6 @@ } ], "paths": { - "/ExtendedEndpoint/superComplexType": { - "post": { - "tags": ["ExtendedEndpoint"], - "operationId": "ExtendedEndpoint_superComplexType_POST", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "list": { - "type": "array", - "nullable": true, - "items": { - "type": "object", - "additionalProperties": { - "type": "array", - "nullable": true, - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true - } - }, - "nullable": true - } - } - } - } - } - } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "nullable": true, - "items": { - "type": "object", - "additionalProperties": { - "type": "array", - "nullable": true, - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true - } - }, - "nullable": true - } - } - } - } - } - } - } - }, "/BasicEndpoint/complexType": { "post": { "tags": ["BasicEndpoint"], @@ -324,13 +260,74 @@ } } } + }, + "/ExtendedEndpoint/superComplexType": { + "post": { + "tags": ["ExtendedEndpoint"], + "operationId": "ExtendedEndpoint_superComplexType_POST", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "list": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "additionalProperties": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + } + }, + "nullable": true + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "additionalProperties": { + "type": "array", + "nullable": true, + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + } + }, + "nullable": true + } + } + } + } + } + } + } } }, "components": { "schemas": { - "com.vaadin.fusion.parser.plugins.nonnull.basic.BasicEndpoint": { - "type": "object" - }, "com.vaadin.fusion.parser.plugins.nonnull.basic.BasicEndpoint$ExtendedNonNullableModel": { "anyOf": [ { @@ -393,6 +390,9 @@ } } } + }, + "com.vaadin.fusion.parser.plugins.nonnull.basic.BasicEndpoint": { + "type": "object" } } } diff --git a/packages/ts/generator-typescript-cli/package.json b/packages/ts/generator-typescript-cli/package.json index fd56e5e783..892970dd34 100644 --- a/packages/ts/generator-typescript-cli/package.json +++ b/packages/ts/generator-typescript-cli/package.json @@ -42,7 +42,7 @@ "tsgen": "bin/index.js" }, "peerDependencies": { - "@vaadin/generator-typescript-core": "^0.0.16" + "@vaadin/generator-typescript-core": "^0.0.17" }, "dependencies": { "@vaadin/generator-typescript-utils": "^0.0.17", diff --git a/packages/ts/generator-typescript-cli/src/GeneratorIO.ts b/packages/ts/generator-typescript-cli/src/GeneratorIO.ts index 329a2a4781..d2f08d8c64 100644 --- a/packages/ts/generator-typescript-cli/src/GeneratorIO.ts +++ b/packages/ts/generator-typescript-cli/src/GeneratorIO.ts @@ -1,35 +1,35 @@ import type File from '@vaadin/generator-typescript-core/File.js'; import Plugin, { PluginConstructor } from '@vaadin/generator-typescript-core/Plugin.js'; +import type LoggerFactory from '@vaadin/generator-typescript-utils/LoggerFactory.js'; import { mkdir, readFile, rm, writeFile } from 'fs/promises'; import { createRequire } from 'module'; import { dirname, isAbsolute, join, resolve } from 'path'; -import type Pino from 'pino'; import { pathToFileURL } from 'url'; import GeneratorIOException from './GeneratorIOException.js'; export default class GeneratorIO { public readonly cwd: string; - readonly #logger: Pino.Logger; + readonly #logger: LoggerFactory; readonly #outputDir: string; readonly #require: NodeRequire; - public constructor(outputDir: string, logger: Pino.Logger) { + public constructor(outputDir: string, logger: LoggerFactory) { this.cwd = process.cwd(); this.#outputDir = isAbsolute(outputDir) ? outputDir : resolve(this.cwd, outputDir); this.#logger = logger; this.#require = createRequire(import.meta.url); - logger.info(`Output directory: ${this.#outputDir}`); + logger.global.info(`Output directory: ${this.#outputDir}`); } public async cleanOutputDir() { - this.#logger.debug(`Cleaning ${this.#outputDir} up.`); + this.#logger.global.debug(`Cleaning ${this.#outputDir} up.`); await rm(this.#outputDir, { recursive: true, force: true }); await mkdir(this.#outputDir, { recursive: true }); } public async loadPlugin(modulePath: string) { - this.#logger.debug(`Loading plugin: ${modulePath}`); + this.#logger.global.debug(`Loading plugin: ${modulePath}`); const resolved = pathToFileURL(this.#require.resolve(modulePath)); const cls: PluginConstructor = (await import(resolved.toString())).default; @@ -41,13 +41,13 @@ export default class GeneratorIO { } public async read(path: string): Promise { - this.#logger.debug(`Reading file: ${path}`); + this.#logger.global.debug(`Reading file: ${path}`); return readFile(path, 'utf8'); } public async write(file: File): Promise { const filePath = join(this.#outputDir, file.name); - this.#logger.debug(`Writing file ${filePath}.`); + this.#logger.global.debug(`Writing file ${filePath}.`); const dir = dirname(filePath); await mkdir(dir, { recursive: true }); return writeFile(filePath, new Uint8Array(await file.arrayBuffer())); diff --git a/packages/ts/generator-typescript-cli/src/index.ts b/packages/ts/generator-typescript-cli/src/index.ts index afb258c0e2..3b4a081129 100644 --- a/packages/ts/generator-typescript-cli/src/index.ts +++ b/packages/ts/generator-typescript-cli/src/index.ts @@ -1,5 +1,5 @@ import Generator from '@vaadin/generator-typescript-core/Generator.js'; -import createLogger from '@vaadin/generator-typescript-utils/createLogger.js'; +import LoggerFactory from '@vaadin/generator-typescript-utils/LoggerFactory.js'; import meow from 'meow'; import GeneratorIO from './GeneratorIO.js'; import { processInput } from './utils.js'; @@ -41,7 +41,7 @@ Options: }, ); -const logger = createLogger({ verbose }); +const logger = new LoggerFactory({ verbose }); const io = new GeneratorIO(outputDir, logger); diff --git a/packages/ts/generator-typescript-core/package.json b/packages/ts/generator-typescript-core/package.json index 6bf220a72d..0262905b5e 100644 --- a/packages/ts/generator-typescript-core/package.json +++ b/packages/ts/generator-typescript-core/package.json @@ -64,10 +64,9 @@ }, "dependencies": { "@apidevtools/swagger-parser": "^10.0.3", + "@vaadin/generator-typescript-utils": "^0.0.17", "meow": "^10.1.1", "openapi-types": "^9.3.0", - "pino": "^7.0.5", - "pino-pretty": "^7.1.0", "typescript": "^4.5.0-beta" }, "devDependencies": { diff --git a/packages/ts/generator-typescript-core/src/Generator.ts b/packages/ts/generator-typescript-core/src/Generator.ts index 19f9cbddd6..fd19317c85 100644 --- a/packages/ts/generator-typescript-core/src/Generator.ts +++ b/packages/ts/generator-typescript-core/src/Generator.ts @@ -1,6 +1,6 @@ import SwaggerParser from '@apidevtools/swagger-parser'; +import type LoggerFactory from '@vaadin/generator-typescript-utils/LoggerFactory.js'; import type { OpenAPIV3 } from 'openapi-types'; -import type Pino from 'pino'; import type { ReadonlyDeep } from 'type-fest'; import ts from 'typescript'; import File from './File.js'; @@ -10,18 +10,18 @@ import ReferenceResolver from './ReferenceResolver.js'; import type SharedStorage from './SharedStorage.js'; export default class Generator { - readonly #logger: Pino.Logger; + readonly #logger: LoggerFactory; readonly #manager: PluginManager; readonly #parser: SwaggerParser; - public constructor(plugins: readonly PluginConstructor[], logger: Pino.Logger) { + public constructor(plugins: readonly PluginConstructor[], logger: LoggerFactory) { this.#parser = new SwaggerParser(); this.#manager = new PluginManager(plugins, new ReferenceResolver(this.#parser), logger); this.#logger = logger; } public async process(input: string): Promise { - this.#logger.debug('Processing OpenAPI'); + this.#logger.global.debug('Processing OpenAPI'); const api = (await this.#parser.bundle(JSON.parse(input))) as ReadonlyDeep; const storage: SharedStorage = { @@ -31,10 +31,10 @@ export default class Generator { sources: [], }; - this.#logger.debug('Executing plugins'); + this.#logger.global.debug('Executing plugins'); await this.#manager.execute(storage); - this.#logger.debug('Printing files'); + this.#logger.global.debug('Printing files'); const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed }); return storage.sources.map((file) => new File([printer.printFile(file)], file.fileName)); diff --git a/packages/ts/generator-typescript-core/src/Plugin.ts b/packages/ts/generator-typescript-core/src/Plugin.ts index e382ca387d..a7fe20ef5d 100644 --- a/packages/ts/generator-typescript-core/src/Plugin.ts +++ b/packages/ts/generator-typescript-core/src/Plugin.ts @@ -1,14 +1,15 @@ -import type Pino from 'pino'; +import type { Logger } from '@vaadin/generator-typescript-utils/LoggerFactory.js'; +import type LoggerFactory from '@vaadin/generator-typescript-utils/LoggerFactory.js'; import type { Constructor } from 'type-fest'; import type ReferenceResolver from './ReferenceResolver.js'; import type SharedStorage from './SharedStorage.js'; export default abstract class Plugin { - protected readonly logger: Pino.Logger; - protected readonly resolver: ReferenceResolver; + readonly resolver: ReferenceResolver; + readonly logger: Logger; - public constructor(resolver: ReferenceResolver, logger: Pino.Logger) { - this.logger = logger; + public constructor(resolver: ReferenceResolver, logger: LoggerFactory) { + this.logger = logger.for(this.constructor.name); this.resolver = resolver; } diff --git a/packages/ts/generator-typescript-core/src/PluginManager.ts b/packages/ts/generator-typescript-core/src/PluginManager.ts index c94bdee864..1b007dec12 100644 --- a/packages/ts/generator-typescript-core/src/PluginManager.ts +++ b/packages/ts/generator-typescript-core/src/PluginManager.ts @@ -1,28 +1,22 @@ -import type Pino from 'pino'; +import type LoggerFactory from '@vaadin/generator-typescript-utils/LoggerFactory.js'; import type Plugin from './Plugin.js'; import type { PluginConstructor } from './Plugin.js'; import type ReferenceResolver from './ReferenceResolver.js'; import type SharedStorage from './SharedStorage.js'; export default class PluginManager { - readonly #logger: Pino.Logger; readonly #plugins: Plugin[]; - readonly #resolver: ReferenceResolver; - public constructor(plugins: readonly PluginConstructor[], resolver: ReferenceResolver, logger: Pino.Logger) { - this.#logger = logger; - this.#resolver = resolver; - - this.#logger.info(`Plugins: ${plugins.map(({ name }) => name).join(', ')}`); - - this.#plugins = plugins.map((PluginClass) => new PluginClass(this.#resolver, this.#logger)); + public constructor(plugins: readonly PluginConstructor[], resolver: ReferenceResolver, logger: LoggerFactory) { + logger.global.info(`Plugins: ${plugins.map(({ name }) => name).join(', ')}`); + this.#plugins = plugins.map((PluginClass) => new PluginClass(resolver, logger)); } public async execute(storage: SharedStorage): Promise { // We need to run plugins sequentially for (const plugin of this.#plugins) { const { name, path } = plugin; - this.#logger.debug({ name, path }, `Executing plugin '${plugin.name}'`); + plugin.logger.debug({ plugin: { name, path } }, `Executing plugin '${plugin.name}'`); // eslint-disable-next-line no-await-in-loop await plugin.execute(storage); } diff --git a/packages/ts/generator-typescript-plugin-backbone/package.json b/packages/ts/generator-typescript-plugin-backbone/package.json index ec220467c5..922922e1cb 100644 --- a/packages/ts/generator-typescript-plugin-backbone/package.json +++ b/packages/ts/generator-typescript-plugin-backbone/package.json @@ -49,8 +49,8 @@ "access": "public" }, "peerDependencies": { - "@vaadin/generator-typescript-core": "^0.0.16", - "@vaadin/generator-typescript-plugin-client": "^0.0.16" + "@vaadin/generator-typescript-core": "^0.0.17", + "@vaadin/generator-typescript-plugin-client": "^0.0.17" }, "dependencies": { "@vaadin/generator-typescript-utils": "^0.0.17", diff --git a/packages/ts/generator-typescript-plugin-backbone/src/EndpointMethodOperationProcessor.ts b/packages/ts/generator-typescript-plugin-backbone/src/EndpointMethodOperationProcessor.ts index bc36de028f..fb5f412c52 100644 --- a/packages/ts/generator-typescript-plugin-backbone/src/EndpointMethodOperationProcessor.ts +++ b/packages/ts/generator-typescript-plugin-backbone/src/EndpointMethodOperationProcessor.ts @@ -1,3 +1,4 @@ +import type Plugin from '@vaadin/generator-typescript-core/Plugin.js'; import ClientPlugin from '@vaadin/generator-typescript-plugin-client'; import type DependencyManager from '@vaadin/generator-typescript-utils/dependencies/DependencyManager.js'; import equal from 'fast-deep-equal'; @@ -7,7 +8,6 @@ import type { CallExpression, Expression, Statement, TypeNode } from 'typescript import ts from 'typescript'; import EndpointMethodRequestBodyProcessor from './EndpointMethodRequestBodyProcessor.js'; import EndpointMethodResponseProcessor from './EndpointMethodResponseProcessor.js'; -import type { BackbonePluginContext } from './utils.js'; export type EndpointMethodOperation = ReadonlyDeep; @@ -26,7 +26,7 @@ export default abstract class EndpointMethodOperationProcessor { endpointMethodName: string, operation: EndpointMethodOperation, dependencies: DependencyManager, - context: BackbonePluginContext, + owner: Plugin, ): EndpointMethodOperationProcessor | undefined { switch (httpMethod) { case OpenAPIV3.HttpMethods.POST: @@ -36,10 +36,10 @@ export default abstract class EndpointMethodOperationProcessor { endpointMethodName, operation, dependencies, - context, + owner, ); default: - context.logger.warn(`Processing ${httpMethod.toUpperCase()} currently is not supported`); + owner.logger.warn(`Processing ${httpMethod.toUpperCase()} currently is not supported`); return undefined; } } @@ -48,21 +48,21 @@ export default abstract class EndpointMethodOperationProcessor { } class EndpointMethodOperationPOSTProcessor extends EndpointMethodOperationProcessor { - readonly #context: BackbonePluginContext; readonly #dependencies: DependencyManager; readonly #endpointMethodName: string; readonly #endpointName: string; readonly #operation: EndpointMethodOperation; + readonly #owner: Plugin; public constructor( endpointName: string, endpointMethodName: string, operation: EndpointMethodOperation, dependencies: DependencyManager, - context: BackbonePluginContext, + owner: Plugin, ) { super(); - this.#context = context; + this.#owner = owner; this.#dependencies = dependencies; this.#endpointName = endpointName; this.#endpointMethodName = endpointMethodName; @@ -71,12 +71,12 @@ class EndpointMethodOperationPOSTProcessor extends EndpointMethodOperationProces public process(): Statement | undefined { const { exports, imports, paths } = this.#dependencies; - this.#context.logger.debug(`${this.#endpointName}.${this.#endpointMethodName} - processing POST method`); + this.#owner.logger.debug(`${this.#endpointName}.${this.#endpointMethodName} - processing POST method`); const { parameters, packedParameters } = new EndpointMethodRequestBodyProcessor( this.#operation.requestBody, this.#dependencies, - this.#context, + this.#owner, ).process(); const methodIdentifier = exports.named.add(this.#endpointMethodName); @@ -107,11 +107,11 @@ class EndpointMethodOperationPOSTProcessor extends EndpointMethodOperationProces } #prepareResponseType(): TypeNode { - this.#context.logger.debug(`${this.#endpointName}.${this.#endpointMethodName} POST - processing response type`); + this.#owner.logger.debug(`${this.#endpointName}.${this.#endpointMethodName} POST - processing response type`); const responseTypes = Object.entries(this.#operation.responses) .flatMap(([code, response]) => - new EndpointMethodResponseProcessor(code, response, this.#dependencies, this.#context).process(), + new EndpointMethodResponseProcessor(code, response, this.#dependencies, this.#owner).process(), ) .filter((value, index, arr) => arr.findIndex((v) => equal(v, value)) === index); diff --git a/packages/ts/generator-typescript-plugin-backbone/src/EndpointMethodRequestBodyProcessor.ts b/packages/ts/generator-typescript-plugin-backbone/src/EndpointMethodRequestBodyProcessor.ts index f46ae614af..8add516b66 100644 --- a/packages/ts/generator-typescript-plugin-backbone/src/EndpointMethodRequestBodyProcessor.ts +++ b/packages/ts/generator-typescript-plugin-backbone/src/EndpointMethodRequestBodyProcessor.ts @@ -1,3 +1,4 @@ +import type Plugin from '@vaadin/generator-typescript-core/Plugin.js'; import { isEmptyObject, isObjectSchema, @@ -10,7 +11,6 @@ import type { ReadonlyDeep } from 'type-fest'; import type { ObjectLiteralExpression, ParameterDeclaration } from 'typescript'; import ts from 'typescript'; import TypeSchemaProcessor from './TypeSchemaProcessor.js'; -import type { BackbonePluginContext } from './utils.js'; import { defaultMediaType } from './utils.js'; export type EndpointMethodRequestBody = ReadonlyDeep; @@ -21,18 +21,18 @@ export type EndpointMethodRequestBodyProcessingResult = Readonly<{ }>; export default class EndpointMethodRequestBodyProcessor { - readonly #context: BackbonePluginContext; readonly #dependencies: DependencyManager; + readonly #owner: Plugin; readonly #requestBody?: EndpointMethodRequestBody; public constructor( requestBody: ReadonlyDeep | undefined, dependencies: DependencyManager, - context: BackbonePluginContext, + owner: Plugin, ) { - this.#context = context; + this.#owner = owner; this.#dependencies = dependencies; - this.#requestBody = requestBody ? context.resolver.resolve(requestBody) : undefined; + this.#requestBody = requestBody ? owner.resolver.resolve(requestBody) : undefined; } public process(): EndpointMethodRequestBodyProcessingResult { @@ -70,7 +70,7 @@ export default class EndpointMethodRequestBodyProcessor { return []; } - const { resolver, logger } = this.#context; + const { resolver, logger } = this.#owner; const resolvedSchema = resolver.resolve(basicSchema); diff --git a/packages/ts/generator-typescript-plugin-backbone/src/EndpointMethodResponseProcessor.ts b/packages/ts/generator-typescript-plugin-backbone/src/EndpointMethodResponseProcessor.ts index bb4e3041f6..28b309208d 100644 --- a/packages/ts/generator-typescript-plugin-backbone/src/EndpointMethodResponseProcessor.ts +++ b/packages/ts/generator-typescript-plugin-backbone/src/EndpointMethodResponseProcessor.ts @@ -1,9 +1,9 @@ +import type Plugin from '@vaadin/generator-typescript-core/Plugin.js'; import type DependencyManager from '@vaadin/generator-typescript-utils/dependencies/DependencyManager'; import type { OpenAPIV3 } from 'openapi-types'; import type { ReadonlyDeep } from 'type-fest'; import type { TypeNode } from 'typescript'; import TypeSchemaProcessor from './TypeSchemaProcessor.js'; -import type { BackbonePluginContext } from './utils.js'; import { defaultMediaType } from './utils.js'; export type EndpointMethodResponses = ReadonlyDeep; @@ -11,20 +11,20 @@ export type EndpointMethodResponse = ReadonlyDeep; export default class EndpointMethodResponseProcessor { readonly #code: string; - readonly #context: BackbonePluginContext; readonly #dependencies: DependencyManager; + readonly #owner: Plugin; readonly #response: EndpointMethodResponse; public constructor( code: string, response: EndpointMethodResponses[string], dependencyManager: DependencyManager, - context: BackbonePluginContext, + owner: Plugin, ) { this.#code = code; - this.#context = context; + this.#owner = owner; this.#dependencies = dependencyManager; - this.#response = context.resolver.resolve(response); + this.#response = owner.resolver.resolve(response); } public process(): readonly TypeNode[] { @@ -32,7 +32,7 @@ export default class EndpointMethodResponseProcessor { case '200': return this.#processOk(); default: - this.#context.logger.warn(`Response code '${this.#code} is not supported'`); + this.#owner.logger.warn(`Response code '${this.#code} is not supported'`); return []; } } diff --git a/packages/ts/generator-typescript-plugin-backbone/src/EndpointProcessor.ts b/packages/ts/generator-typescript-plugin-backbone/src/EndpointProcessor.ts index c5236631cb..ffc7a38cea 100644 --- a/packages/ts/generator-typescript-plugin-backbone/src/EndpointProcessor.ts +++ b/packages/ts/generator-typescript-plugin-backbone/src/EndpointProcessor.ts @@ -1,3 +1,4 @@ +import type Plugin from '@vaadin/generator-typescript-core/Plugin.js'; import ClientPlugin from '@vaadin/generator-typescript-plugin-client'; import createSourceFile from '@vaadin/generator-typescript-utils/createSourceFile.js'; import DependencyManager from '@vaadin/generator-typescript-utils/dependencies/DependencyManager.js'; @@ -6,17 +7,16 @@ import { OpenAPIV3 } from 'openapi-types'; import type { ReadonlyDeep } from 'type-fest'; import type { SourceFile, Statement } from 'typescript'; import EndpointMethodOperationProcessor, { EndpointMethodOperation } from './EndpointMethodOperationProcessor.js'; -import type { BackbonePluginContext } from './utils.js'; export default class EndpointProcessor { - readonly #context: BackbonePluginContext; readonly #dependencies = new DependencyManager(new PathManager()); readonly #methods = new Map>(); readonly #name: string; + readonly #owner: Plugin; readonly #sourcePaths = new PathManager({ extension: 'ts' }); - public constructor(name: string, context: BackbonePluginContext) { - this.#context = context; + public constructor(name: string, owner: Plugin) { + this.#owner = owner; this.#name = name; this.#dependencies.imports.default.add( this.#dependencies.paths.createRelativePath(ClientPlugin.CLIENT_FILE_NAME), @@ -29,7 +29,7 @@ export default class EndpointProcessor { } public process(): SourceFile { - this.#context.logger.debug(`Processing endpoint: ${this.#name}`); + this.#owner.logger.debug(`Processing endpoint: ${this.#name}`); const statements = Array.from(this.#methods, ([method, pathItem]) => this.#processMethod(method, pathItem)).flatMap( (item) => item, @@ -44,7 +44,7 @@ export default class EndpointProcessor { } #processMethod(method: string, pathItem: ReadonlyDeep): readonly Statement[] { - this.#context.logger.debug(`Processing endpoint method: ${this.#name}.${method}`); + this.#owner.logger.debug(`Processing endpoint method: ${this.#name}.${method}`); return Object.values(OpenAPIV3.HttpMethods) .filter((httpMethod) => pathItem[httpMethod]) @@ -55,7 +55,7 @@ export default class EndpointProcessor { method, pathItem[httpMethod] as EndpointMethodOperation, this.#dependencies, - this.#context, + this.#owner, )?.process(), ) .filter(Boolean) as readonly Statement[]; diff --git a/packages/ts/generator-typescript-plugin-backbone/src/EntityProcessor.ts b/packages/ts/generator-typescript-plugin-backbone/src/EntityProcessor.ts index b587fecc8f..3517e022f7 100644 --- a/packages/ts/generator-typescript-plugin-backbone/src/EntityProcessor.ts +++ b/packages/ts/generator-typescript-plugin-backbone/src/EntityProcessor.ts @@ -1,3 +1,4 @@ +import type Plugin from '@vaadin/generator-typescript-core/Plugin.js'; import type { EnumSchema, ReferenceSchema, Schema } from '@vaadin/generator-typescript-core/Schema.js'; import { convertReferenceSchemaToPath, @@ -22,33 +23,35 @@ import { dirname } from 'path/posix'; import type { Identifier, InterfaceDeclaration, SourceFile, Statement } from 'typescript'; import ts, { TypeElement } from 'typescript'; import TypeSchemaProcessor from './TypeSchemaProcessor.js'; -import type { BackbonePluginContext } from './utils.js'; - -const exportDefaultModifiers = [ - ts.factory.createModifier(ts.SyntaxKind.ExportKeyword), - ts.factory.createModifier(ts.SyntaxKind.DefaultKeyword), -]; export class EntityProcessor { readonly #component: Schema; - readonly #context: BackbonePluginContext; readonly #dependencies; readonly #fullyQualifiedName: string; readonly #name: string; + readonly #owner: Plugin; readonly #path: string; readonly #sourcePaths = new PathManager({ extension: 'ts' }); - public constructor(name: string, component: Schema, context: BackbonePluginContext) { + public constructor(name: string, component: Schema, owner: Plugin) { this.#component = component; - this.#context = context; + this.#owner = owner; this.#fullyQualifiedName = name; this.#name = simplifyFullyQualifiedName(name); this.#path = convertFullyQualifiedNameToRelativePath(name); this.#dependencies = new DependencyManager(new PathManager({ relativeTo: dirname(this.#path) })); } + get #id(): Identifier { + const id = ts.factory.createIdentifier(this.#name); + + this.#dependencies.exports.default.set(id); + + return id; + } + public process(): SourceFile { - this.#context.logger.debug(`Processing entity: ${this.#name}`); + this.#owner.logger.debug(`Processing entity: ${this.#name}`); const declaration = isEnumSchema(this.#component) ? this.#processEnum(this.#component) @@ -65,20 +68,21 @@ export class EntityProcessor { } #processClass(schema: Schema): InterfaceDeclaration | undefined { + const { logger } = this.#owner; + if (!isObjectSchema(schema)) { - this.#context.logger.error(schema, `The component is not an object: ${this.#fullyQualifiedName}`); + logger.error(schema, `Component is not an object: '${this.#fullyQualifiedName}'`); return undefined; } if (isEmptyObject(schema)) { - this.#context.logger.error(`The component has no properties: ${this.#fullyQualifiedName}`); - return undefined; + logger.warn(`Component has no properties:' ${this.#fullyQualifiedName}'`); } return ts.factory.createInterfaceDeclaration( undefined, - exportDefaultModifiers, - this.#name, + undefined, + this.#id, undefined, undefined, this.#processTypeElements(schema as NonEmptyObjectSchema), @@ -88,20 +92,20 @@ export class EntityProcessor { #processEnum({ enum: members }: EnumSchema): Statement { return ts.factory.createEnumDeclaration( undefined, - exportDefaultModifiers, - this.#name, + undefined, + this.#id, members.map((member) => ts.factory.createEnumMember(member, ts.factory.createStringLiteral(member))) ?? [], ); } #processExtendedClass(schema: Schema): Statement | undefined { - const { logger } = this.#context; + const { logger } = this.#owner; if (isComposedSchema(schema)) { const decomposed = decomposeSchema(schema); if (decomposed.length > 2) { - logger.error(schema, `The schema for a class component ${this.#fullyQualifiedName} is broken.`); + logger.error(schema, `Schema for '${this.#fullyQualifiedName}' class component is broken.`); return undefined; } @@ -146,15 +150,17 @@ export class EntityProcessor { } #processTypeElements({ properties }: NonEmptyObjectSchema): readonly TypeElement[] { - return Object.entries(properties).map(([name, schema]) => { - const [type] = new TypeSchemaProcessor(schema, this.#dependencies).process(); - - return ts.factory.createPropertySignature( - undefined, - name, - isNullableSchema(schema) ? ts.factory.createToken(ts.SyntaxKind.QuestionToken) : undefined, - type, - ); - }); + return properties + ? Object.entries(properties).map(([name, schema]) => { + const [type] = new TypeSchemaProcessor(schema, this.#dependencies).process(); + + return ts.factory.createPropertySignature( + undefined, + name, + isNullableSchema(schema) ? ts.factory.createToken(ts.SyntaxKind.QuestionToken) : undefined, + type, + ); + }) + : []; } } diff --git a/packages/ts/generator-typescript-plugin-backbone/src/index.ts b/packages/ts/generator-typescript-plugin-backbone/src/index.ts index d6a073e892..58616effbe 100644 --- a/packages/ts/generator-typescript-plugin-backbone/src/index.ts +++ b/packages/ts/generator-typescript-plugin-backbone/src/index.ts @@ -1,11 +1,8 @@ import Plugin from '@vaadin/generator-typescript-core/Plugin.js'; -import type ReferenceResolver from '@vaadin/generator-typescript-core/ReferenceResolver'; import type SharedStorage from '@vaadin/generator-typescript-core/SharedStorage'; -import type Pino from 'pino'; import type { SourceFile } from 'typescript'; import EndpointProcessor from './EndpointProcessor.js'; import { EntityProcessor } from './EntityProcessor.js'; -import type { BackbonePluginContext } from './utils.js'; export enum BackbonePluginSourceType { Endpoint = 'endpoint', @@ -15,17 +12,8 @@ export enum BackbonePluginSourceType { export default class BackbonePlugin extends Plugin { public static readonly BACKBONE_PLUGIN_FILE_TAGS = 'BACKBONE_PLUGIN_FILE_TAGS'; public declare ['constructor']: typeof BackbonePlugin; - readonly #context: BackbonePluginContext; readonly #tags = new WeakMap(); - public constructor(resolver: ReferenceResolver, logger: Pino.Logger) { - super(resolver, logger); - this.#context = { - logger, - resolver, - }; - } - public override get path(): string { return import.meta.url; } @@ -58,7 +46,7 @@ export default class BackbonePlugin extends Plugin { if (endpoints.has(endpointName)) { endpointProcessor = endpoints.get(endpointName)!; } else { - endpointProcessor = new EndpointProcessor(endpointName, this.#context); + endpointProcessor = new EndpointProcessor(endpointName, this); endpoints.set(endpointName, endpointProcessor); } @@ -73,7 +61,7 @@ export default class BackbonePlugin extends Plugin { return storage.api.components?.schemas ? Object.entries(storage.api.components?.schemas).map(([name, component]) => - new EntityProcessor(name, component, this.#context).process(), + new EntityProcessor(name, component, this).process(), ) : []; } diff --git a/packages/ts/generator-typescript-plugin-backbone/src/utils.ts b/packages/ts/generator-typescript-plugin-backbone/src/utils.ts index acbf84a2d6..62f23663d9 100644 --- a/packages/ts/generator-typescript-plugin-backbone/src/utils.ts +++ b/packages/ts/generator-typescript-plugin-backbone/src/utils.ts @@ -1,9 +1 @@ -import type ReferenceResolver from '@vaadin/generator-typescript-core/ReferenceResolver.js'; -import type Pino from 'pino'; - -export type BackbonePluginContext = Readonly<{ - logger: Pino.Logger; - resolver: ReferenceResolver; -}>; - export const defaultMediaType = 'application/json'; diff --git a/packages/ts/generator-typescript-plugin-backbone/test/complex-hierarchy/fixtures/GrandParentModel.entity.snap.ts b/packages/ts/generator-typescript-plugin-backbone/test/complex-hierarchy/fixtures/GrandParentModel.entity.snap.ts index 249224bd20..191af5f43e 100644 --- a/packages/ts/generator-typescript-plugin-backbone/test/complex-hierarchy/fixtures/GrandParentModel.entity.snap.ts +++ b/packages/ts/generator-typescript-plugin-backbone/test/complex-hierarchy/fixtures/GrandParentModel.entity.snap.ts @@ -1,3 +1,4 @@ -export default interface ComplexHierarchyGrandParentModel { +interface ComplexHierarchyGrandParentModel { build: number; } +export default ComplexHierarchyGrandParentModel; diff --git a/packages/ts/generator-typescript-plugin-backbone/test/complex-hierarchy/fixtures/Model.entity.snap.ts b/packages/ts/generator-typescript-plugin-backbone/test/complex-hierarchy/fixtures/Model.entity.snap.ts index 0e5ae6dc6e..6317d7a8d0 100644 --- a/packages/ts/generator-typescript-plugin-backbone/test/complex-hierarchy/fixtures/Model.entity.snap.ts +++ b/packages/ts/generator-typescript-plugin-backbone/test/complex-hierarchy/fixtures/Model.entity.snap.ts @@ -1,4 +1,5 @@ import type ComplexHierarchyParentModel_1 from "./ComplexHierarchyParentModel"; -export default interface ComplexHierarchyModel extends ComplexHierarchyParentModel_1 { +interface ComplexHierarchyModel extends ComplexHierarchyParentModel_1 { name?: string; } +export default ComplexHierarchyModel; diff --git a/packages/ts/generator-typescript-plugin-backbone/test/complex-hierarchy/fixtures/ParentModel.entity.snap.ts b/packages/ts/generator-typescript-plugin-backbone/test/complex-hierarchy/fixtures/ParentModel.entity.snap.ts index 255590f17e..3900eadd76 100644 --- a/packages/ts/generator-typescript-plugin-backbone/test/complex-hierarchy/fixtures/ParentModel.entity.snap.ts +++ b/packages/ts/generator-typescript-plugin-backbone/test/complex-hierarchy/fixtures/ParentModel.entity.snap.ts @@ -1,4 +1,5 @@ import type ComplexHierarchyGrandParentModel_1 from "./ComplexHierarchyGrandParentModel"; -export default interface ComplexHierarchyParentModel extends ComplexHierarchyGrandParentModel_1 { +interface ComplexHierarchyParentModel extends ComplexHierarchyGrandParentModel_1 { id?: string; } +export default ComplexHierarchyParentModel; diff --git a/packages/ts/generator-typescript-plugin-backbone/test/complex-type/fixtures/ComplexTypeModel.entity.snap.ts b/packages/ts/generator-typescript-plugin-backbone/test/complex-type/fixtures/ComplexTypeModel.entity.snap.ts index 92982f56f8..ac85af7387 100644 --- a/packages/ts/generator-typescript-plugin-backbone/test/complex-type/fixtures/ComplexTypeModel.entity.snap.ts +++ b/packages/ts/generator-typescript-plugin-backbone/test/complex-type/fixtures/ComplexTypeModel.entity.snap.ts @@ -1,4 +1,5 @@ -export default interface ComplexTypeModel { +interface ComplexTypeModel { complexList?: Array | undefined> | undefined>; complexMap?: Record | undefined>; } +export default ComplexTypeModel; diff --git a/packages/ts/generator-typescript-plugin-backbone/test/enum-type/fixtures/EnumEntity.entity.snap.ts b/packages/ts/generator-typescript-plugin-backbone/test/enum-type/fixtures/EnumEntity.entity.snap.ts index 6338d2951f..41c734a4dd 100644 --- a/packages/ts/generator-typescript-plugin-backbone/test/enum-type/fixtures/EnumEntity.entity.snap.ts +++ b/packages/ts/generator-typescript-plugin-backbone/test/enum-type/fixtures/EnumEntity.entity.snap.ts @@ -1,4 +1,4 @@ -export default enum EnumEntity { +enum EnumEntity { ENUM1 = "ENUM1", ENUM2 = "ENUM2", ENUM_2 = "ENUM_2", @@ -6,3 +6,4 @@ export default enum EnumEntity { _HELLO = "_HELLO", MANY_MANY_WORDS = "MANY_MANY_WORDS" } +export default EnumEntity; diff --git a/packages/ts/generator-typescript-plugin-backbone/test/utils/common.ts b/packages/ts/generator-typescript-plugin-backbone/test/utils/common.ts index 4a46f0309c..258e35bd56 100644 --- a/packages/ts/generator-typescript-plugin-backbone/test/utils/common.ts +++ b/packages/ts/generator-typescript-plugin-backbone/test/utils/common.ts @@ -1,13 +1,13 @@ import Generator from '@vaadin/generator-typescript-core/Generator.js'; import type { PluginConstructor } from '@vaadin/generator-typescript-core/Plugin.js'; -import createLogger from '@vaadin/generator-typescript-utils/createLogger.js'; +import LoggerFactory from '@vaadin/generator-typescript-utils/LoggerFactory.js'; import { readFile } from 'fs/promises'; import { URL } from 'url'; export const pathBase = 'com/vaadin/fusion/parser/plugins/backbone'; export function createGenerator(plugins: readonly PluginConstructor[]): Generator { - return new Generator(plugins, createLogger({ name: 'tsgen-test', verbose: true })); + return new Generator(plugins, new LoggerFactory({ name: 'tsgen-test', verbose: true })); } export async function loadInput(name: string, importMeta: string): Promise { diff --git a/packages/ts/generator-typescript-plugin-barrel/package.json b/packages/ts/generator-typescript-plugin-barrel/package.json index af5d938dcb..5c9b347a6b 100644 --- a/packages/ts/generator-typescript-plugin-barrel/package.json +++ b/packages/ts/generator-typescript-plugin-barrel/package.json @@ -49,8 +49,8 @@ "access": "public" }, "peerDependencies": { - "@vaadin/generator-typescript-core": "^0.0.16", - "@vaadin/generator-typescript-plugin-backbone": "^0.0.16" + "@vaadin/generator-typescript-core": "^0.0.17", + "@vaadin/generator-typescript-plugin-backbone": "^0.0.17" }, "dependencies": { "@vaadin/generator-typescript-utils": "^0.0.17", diff --git a/packages/ts/generator-typescript-plugin-barrel/src/BarrelProcessor.ts b/packages/ts/generator-typescript-plugin-barrel/src/BarrelProcessor.ts index 1eeb53b4e0..73a9c2225a 100644 --- a/packages/ts/generator-typescript-plugin-barrel/src/BarrelProcessor.ts +++ b/packages/ts/generator-typescript-plugin-barrel/src/BarrelProcessor.ts @@ -1,24 +1,24 @@ +import type Plugin from '@vaadin/generator-typescript-core/Plugin.js'; import createSourceFile from '@vaadin/generator-typescript-utils/createSourceFile.js'; import DependencyManager from '@vaadin/generator-typescript-utils/dependencies/DependencyManager.js'; import PathManager from '@vaadin/generator-typescript-utils/dependencies/PathManager.js'; import { basename, dirname } from 'path'; -import type Pino from 'pino'; import type { SourceFile } from 'typescript'; export default class BarrelProcessor { public static readonly BARREL_FILE_NAME = 'endpoints.ts'; public declare ['constructor']: typeof BarrelProcessor; readonly #endpoints: readonly SourceFile[]; - readonly #logger: Pino.Logger; + readonly #owner: Plugin; readonly #sourcePaths = new PathManager({ extension: 'ts' }); - public constructor(endpoints: readonly SourceFile[], logger: Pino.Logger) { + public constructor(endpoints: readonly SourceFile[], owner: Plugin) { this.#endpoints = endpoints; - this.#logger = logger; + this.#owner = owner; } public process(): SourceFile { - this.#logger.info(`Generating '${this.constructor.BARREL_FILE_NAME}' file`); + this.#owner.logger.info(`Generating '${this.constructor.BARREL_FILE_NAME}' file`); const { exports, imports } = this.#endpoints.reduce((acc, { fileName }) => { const specifier = basename(fileName, '.ts'); diff --git a/packages/ts/generator-typescript-plugin-barrel/src/index.ts b/packages/ts/generator-typescript-plugin-barrel/src/index.ts index 03b0cca683..8c20374dbd 100644 --- a/packages/ts/generator-typescript-plugin-barrel/src/index.ts +++ b/packages/ts/generator-typescript-plugin-barrel/src/index.ts @@ -18,7 +18,7 @@ export default class BarrelPlugin extends Plugin { } const endpoints = sources.filter((file) => tags.get(file) === BackbonePluginSourceType.Endpoint); - const barrelFile = new BarrelProcessor(endpoints, this.logger).process(); + const barrelFile = new BarrelProcessor(endpoints, this).process(); sources.push(barrelFile); } } diff --git a/packages/ts/generator-typescript-plugin-barrel/test/basic/BasicBarrel.spec.ts b/packages/ts/generator-typescript-plugin-barrel/test/basic/BasicBarrel.spec.ts index e637812761..e224a07f4a 100644 --- a/packages/ts/generator-typescript-plugin-barrel/test/basic/BasicBarrel.spec.ts +++ b/packages/ts/generator-typescript-plugin-barrel/test/basic/BasicBarrel.spec.ts @@ -1,7 +1,7 @@ /* eslint-disable import/no-extraneous-dependencies */ import Generator from '@vaadin/generator-typescript-core/Generator.js'; import BackbonePlugin from '@vaadin/generator-typescript-plugin-backbone'; -import createLogger from '@vaadin/generator-typescript-utils/createLogger.js'; +import LoggerFactory from '@vaadin/generator-typescript-utils/LoggerFactory.js'; import snapshotMatcher from '@vaadin/generator-typescript-utils/testing/snapshotMatcher.js'; import { expect, use } from 'chai'; import { readFile } from 'fs/promises'; @@ -18,7 +18,7 @@ describe('BarrelPlugin', () => { it('correctly generates code', async () => { const generator = new Generator( [BackbonePlugin, BarrelPlugin], - createLogger({ name: 'barrel-plugin-test', verbose: true }), + new LoggerFactory({ name: 'barrel-plugin-test', verbose: true }), ); const input = await readFile(new URL(`./${sectionName}.json`, import.meta.url), 'utf8'); const files = await generator.process(input); diff --git a/packages/ts/generator-typescript-plugin-client/package.json b/packages/ts/generator-typescript-plugin-client/package.json index 17ac93c9f7..ea5d3f3b30 100644 --- a/packages/ts/generator-typescript-plugin-client/package.json +++ b/packages/ts/generator-typescript-plugin-client/package.json @@ -49,7 +49,7 @@ "access": "public" }, "peerDependencies": { - "@vaadin/generator-typescript-core": "^0.0.16" + "@vaadin/generator-typescript-core": "^0.0.17" }, "dependencies": { "@vaadin/generator-typescript-utils": "^0.0.17", diff --git a/packages/ts/generator-typescript-plugin-client/src/ClientProcessor.ts b/packages/ts/generator-typescript-plugin-client/src/ClientProcessor.ts index d5e05b4499..e48fdf6dee 100644 --- a/packages/ts/generator-typescript-plugin-client/src/ClientProcessor.ts +++ b/packages/ts/generator-typescript-plugin-client/src/ClientProcessor.ts @@ -1,22 +1,22 @@ +import type Plugin from '@vaadin/generator-typescript-core/Plugin.js'; import createFullyUniqueIdentifier from '@vaadin/generator-typescript-utils/createFullyUniqueIdentifier.js'; import createSourceFile from '@vaadin/generator-typescript-utils/createSourceFile.js'; import DependencyManager from '@vaadin/generator-typescript-utils/dependencies/DependencyManager.js'; import PathManager from '@vaadin/generator-typescript-utils/dependencies/PathManager.js'; -import type Pino from 'pino'; import type { SourceFile } from 'typescript'; import ts from 'typescript'; export default class ClientProcessor { readonly #filePath: string; - readonly #logger: Pino.Logger; + readonly #owner: Plugin; - public constructor(fileName: string, logger: Pino.Logger) { + public constructor(fileName: string, owner: Plugin) { this.#filePath = new PathManager({ extension: 'ts' }).createRelativePath(fileName); - this.#logger = logger; + this.#owner = owner; } public process(): SourceFile { - this.#logger.debug(`Generating ${this.#filePath}`); + this.#owner.logger.debug(`Generating ${this.#filePath}`); const { exports, imports, paths } = new DependencyManager(new PathManager()); const clientClassId = imports.named.add( diff --git a/packages/ts/generator-typescript-plugin-client/src/index.ts b/packages/ts/generator-typescript-plugin-client/src/index.ts index cf852ef8f2..df552e4158 100644 --- a/packages/ts/generator-typescript-plugin-client/src/index.ts +++ b/packages/ts/generator-typescript-plugin-client/src/index.ts @@ -12,7 +12,7 @@ export default class ClientPlugin extends Plugin { } public override async execute({ sources }: SharedStorage): Promise { - const clientFile = new ClientProcessor(this.constructor.CLIENT_FILE_NAME, this.logger).process(); + const clientFile = new ClientProcessor(this.constructor.CLIENT_FILE_NAME, this).process(); sources.push(clientFile); } } diff --git a/packages/ts/generator-typescript-plugin-client/test/basic/BasicClient.spec.ts b/packages/ts/generator-typescript-plugin-client/test/basic/BasicClient.spec.ts index 5377ffeb41..557bcc8eba 100644 --- a/packages/ts/generator-typescript-plugin-client/test/basic/BasicClient.spec.ts +++ b/packages/ts/generator-typescript-plugin-client/test/basic/BasicClient.spec.ts @@ -1,5 +1,5 @@ import Generator from '@vaadin/generator-typescript-core/Generator.js'; -import createLogger from '@vaadin/generator-typescript-utils/createLogger.js'; +import LoggerFactory from '@vaadin/generator-typescript-utils/LoggerFactory.js'; import snapshotMatcher from '@vaadin/generator-typescript-utils/testing/snapshotMatcher.js'; import { expect, use } from 'chai'; import { readFile } from 'fs/promises'; @@ -14,7 +14,7 @@ describe('ClientPlugin', () => { const sectionName = 'BasicClient'; it('correctly generates code', async () => { - const generator = new Generator([ClientPlugin], createLogger({ name: 'client-plugin-test', verbose: true })); + const generator = new Generator([ClientPlugin], new LoggerFactory({ name: 'client-plugin-test', verbose: true })); const input = await readFile(new URL(`./${sectionName}.json`, import.meta.url), 'utf8'); const files = await generator.process(input); diff --git a/packages/ts/generator-typescript-plugin-model/package.json b/packages/ts/generator-typescript-plugin-model/package.json index 75dbe0598d..5bd44386b2 100644 --- a/packages/ts/generator-typescript-plugin-model/package.json +++ b/packages/ts/generator-typescript-plugin-model/package.json @@ -49,9 +49,9 @@ "access": "public" }, "peerDependencies": { - "@vaadin/form": "^0.0.16", - "@vaadin/generator-typescript-core": "^0.0.16", - "@vaadin/generator-typescript-plugin-backbone": "^0.0.16" + "@vaadin/form": "^0.0.17", + "@vaadin/generator-typescript-core": "^0.0.17", + "@vaadin/generator-typescript-plugin-backbone": "^0.0.17" }, "dependencies": { "@vaadin/generator-typescript-utils": "^0.0.17", diff --git a/packages/ts/generator-typescript-plugin-model/src/ModelEntityProcessor.ts b/packages/ts/generator-typescript-plugin-model/src/ModelEntityProcessor.ts index 1f73f6f682..e586f1e9b9 100644 --- a/packages/ts/generator-typescript-plugin-model/src/ModelEntityProcessor.ts +++ b/packages/ts/generator-typescript-plugin-model/src/ModelEntityProcessor.ts @@ -19,28 +19,23 @@ import DependencyManager from '@vaadin/generator-typescript-utils/dependencies/D import PathManager from '@vaadin/generator-typescript-utils/dependencies/PathManager.js'; import createSourceFile from '@vaadin/generator-typescript-utils/createSourceFile.js'; import { dirname } from 'path/posix'; -import type { ModelPluginContext } from './utils.js'; +import type Plugin from '@vaadin/generator-typescript-core/Plugin.js'; import ModelSchemaProcessor from './ModelSchemaProcessor.js'; -const exportDefaultModifiers = [ - ts.factory.createModifier(ts.SyntaxKind.ExportKeyword), - ts.factory.createModifier(ts.SyntaxKind.DefaultKeyword), -]; - export class ModelEntityProcessor { readonly #component: Schema; - readonly #context: ModelPluginContext; + readonly #owner: Plugin; + readonly #dependencies: DependencyManager; + readonly #entityName: string; readonly #fullyQualifiedName: string; + #getPropertyModelSymbol?: Identifier = undefined; readonly #name: string; - readonly #entityName: string; readonly #path: string; - readonly #dependencies: DependencyManager; readonly #sourcePaths = new PathManager({ extension: 'ts' }); - #getPropertyModelSymbol?: Identifier = undefined; - public constructor(name: string, component: Schema, context: ModelPluginContext) { + public constructor(name: string, component: Schema, owner: Plugin) { this.#component = component; - this.#context = context; + this.#owner = owner; this.#fullyQualifiedName = name; this.#entityName = simplifyFullyQualifiedName(name); this.#name = `${this.#entityName}Model`; @@ -48,8 +43,16 @@ export class ModelEntityProcessor { this.#dependencies = new DependencyManager(new PathManager({ relativeTo: dirname(this.#path) })); } + get #id(): Identifier { + const id = ts.factory.createIdentifier(this.#name); + + this.#dependencies.exports.default.set(id); + + return id; + } + public process(): SourceFile { - this.#context.logger.debug(`Processing model for entity: ${this.#entityName}`); + this.#owner.logger.debug(`Processing model for entity: ${this.#entityName}`); const entity = this.#dependencies.imports.default.add( this.#dependencies.paths.createRelativePath(convertFullyQualifiedNameToRelativePath(this.#fullyQualifiedName)), @@ -69,8 +72,55 @@ export class ModelEntityProcessor { ); } + #getGetPropertyModelSymbol(): Identifier { + this.#getPropertyModelSymbol ||= this.#dependencies.imports.named.add('@vaadin/form', '_getPropertyModel'); + return this.#getPropertyModelSymbol; + } + + #processClassElements({ required, properties }: ObjectSchema): readonly ClassElement[] { + if (!properties) { + return []; + } + + const requiredSet = new Set(required); + return Object.entries(properties).map(([name, schema]) => { + const [, modelType, model, [, ...modelVariableArgs]] = new ModelSchemaProcessor( + schema, + this.#dependencies, + ).process(); + const optional = !requiredSet.has(name); + const argsArray = ts.factory.createArrayLiteralExpression([ + optional ? ts.factory.createTrue() : ts.factory.createFalse(), + ...modelVariableArgs, + ]); + + return ts.factory.createGetAccessorDeclaration( + undefined, + undefined, + ts.factory.createIdentifier(name), + [], + modelType, + ts.factory.createBlock( + [ + ts.factory.createReturnStatement( + ts.factory.createAsExpression( + ts.factory.createCallExpression( + ts.factory.createElementAccessExpression(ts.factory.createThis(), this.#getGetPropertyModelSymbol()), + undefined, + [ts.factory.createStringLiteral(name), model, argsArray], + ), + modelType, + ), + ), + ], + true, + ), + ); + }); + } + #processExtendedModelClass(schema: Schema, entity: Identifier): Statement | undefined { - const { logger } = this.#context; + const { logger } = this.#owner; let entitySchema = schema; let parent; @@ -100,14 +150,15 @@ export class ModelEntityProcessor { } #processModelClass(schema: Schema, entity: Identifier, parent: Identifier): ClassDeclaration | undefined { + const { logger } = this.#owner; + if (!isObjectSchema(schema)) { - this.#context.logger.error(schema, `The component is not an object: ${this.#fullyQualifiedName}`); + logger.error(schema, `Component is not an object: ${this.#fullyQualifiedName}`); return undefined; } if (isEmptyObject(schema)) { - this.#context.logger.error(`The component has no properties: ${this.#fullyQualifiedName}`); - return undefined; + logger.warn(`Component has no properties: ${this.#fullyQualifiedName}`); } const typeT = ts.factory.createIdentifier('T'); @@ -126,60 +177,20 @@ export class ModelEntityProcessor { undefined, ); - const fields = this.#processClassElements(schema); - return ts.factory.createClassDeclaration( undefined, - exportDefaultModifiers, - this.#name, + undefined, + this.#id, [modelTypeParameters], [ ts.factory.createHeritageClause(ts.SyntaxKind.ExtendsKeyword, [ ts.factory.createExpressionWithTypeArguments(parent, [ts.factory.createTypeReferenceNode(typeT)]), ]), ], - [emptyValueElement, ...fields], + [emptyValueElement, ...this.#processClassElements(schema)], ); } - #processClassElements({ required, properties }: ObjectSchema): readonly ClassElement[] { - const requiredSet = new Set(required); - return Object.entries(properties || []).map(([name, schema]) => { - const [, modelType, model, [, ...modelVariableArgs]] = new ModelSchemaProcessor( - schema, - this.#dependencies, - ).process(); - const optional = !requiredSet.has(name); - const argsArray = ts.factory.createArrayLiteralExpression([ - optional ? ts.factory.createTrue() : ts.factory.createFalse(), - ...modelVariableArgs, - ]); - - return ts.factory.createGetAccessorDeclaration( - undefined, - undefined, - ts.factory.createIdentifier(name), - [], - modelType, - ts.factory.createBlock( - [ - ts.factory.createReturnStatement( - ts.factory.createAsExpression( - ts.factory.createCallExpression( - ts.factory.createElementAccessExpression(ts.factory.createThis(), this.#getGetPropertyModelSymbol()), - undefined, - [ts.factory.createStringLiteral(name), model, argsArray], - ), - modelType, - ), - ), - ], - true, - ), - ); - }); - } - #processParentClass(schema: ReferenceSchema): Identifier { const { imports, paths } = this.#dependencies; @@ -190,9 +201,4 @@ export class ModelEntityProcessor { return imports.default.add(modelPath, modelSpecifier, false); } - - #getGetPropertyModelSymbol(): Identifier { - this.#getPropertyModelSymbol ||= this.#dependencies.imports.named.add('@vaadin/form', '_getPropertyModel'); - return this.#getPropertyModelSymbol; - } } diff --git a/packages/ts/generator-typescript-plugin-model/src/index.ts b/packages/ts/generator-typescript-plugin-model/src/index.ts index 1a58b371b6..a4edfcfe1c 100644 --- a/packages/ts/generator-typescript-plugin-model/src/index.ts +++ b/packages/ts/generator-typescript-plugin-model/src/index.ts @@ -1,9 +1,9 @@ import Plugin from '@vaadin/generator-typescript-core/Plugin.js'; -import type ReferenceResolver from '@vaadin/generator-typescript-core/ReferenceResolver'; +import { isEnumSchema } from '@vaadin/generator-typescript-core/Schema.js'; import type SharedStorage from '@vaadin/generator-typescript-core/SharedStorage'; -import type Pino from 'pino'; +import type { OpenAPIV3 } from 'openapi-types'; +import type { ReadonlyDeep } from 'type-fest'; import type { SourceFile } from 'typescript'; -import type { ModelPluginContext } from './utils.js'; import { ModelEntityProcessor } from './ModelEntityProcessor.js'; export enum ModelPluginSourceType { @@ -13,35 +13,26 @@ export enum ModelPluginSourceType { export default class ModelPlugin extends Plugin { public static readonly MODEL_PLUGIN_FILE_TAGS = 'MODEL_PLUGIN_FILE_TAGS'; public declare ['constructor']: typeof ModelPlugin; - readonly #context: ModelPluginContext; readonly #tags = new WeakMap(); - public constructor(resolver: ReferenceResolver, logger: Pino.Logger) { - super(resolver, logger); - this.#context = { - logger, - resolver, - }; - } - public override get path(): string { return import.meta.url; } public async execute(storage: SharedStorage): Promise { - const modelSourceFiles = this.#processEntities(storage); - modelSourceFiles.forEach((file) => this.#tags.set(file, ModelPluginSourceType.Model)); - storage.sources.push(...modelSourceFiles); + const files = this.#processEntities(storage.api.components?.schemas); + files.forEach((file) => this.#tags.set(file, ModelPluginSourceType.Model)); + storage.sources.push(...files); storage.pluginStorage.set(this.constructor.MODEL_PLUGIN_FILE_TAGS, this.#tags); } - #processEntities(storage: SharedStorage): readonly SourceFile[] { + #processEntities(schemas: ReadonlyDeep['schemas'] | undefined): readonly SourceFile[] { this.logger.debug('Processing entities'); - return storage.api.components?.schemas - ? Object.entries(storage.api.components?.schemas).map(([name, component]) => - new ModelEntityProcessor(name, component, this.#context).process(), - ) + return schemas + ? Object.entries(schemas) + .filter(([, component]) => !isEnumSchema(component)) + .map(([name, component]) => new ModelEntityProcessor(name, component, this).process()) : []; } } diff --git a/packages/ts/generator-typescript-plugin-model/src/utils.ts b/packages/ts/generator-typescript-plugin-model/src/utils.ts index 22797c022c..62f23663d9 100644 --- a/packages/ts/generator-typescript-plugin-model/src/utils.ts +++ b/packages/ts/generator-typescript-plugin-model/src/utils.ts @@ -1,9 +1 @@ -import type ReferenceResolver from '@vaadin/generator-typescript-core/ReferenceResolver.js'; -import type Pino from 'pino'; - -export type ModelPluginContext = Readonly<{ - logger: Pino.Logger; - resolver: ReferenceResolver; -}>; - export const defaultMediaType = 'application/json'; diff --git a/packages/ts/generator-typescript-plugin-model/test/model/Model.spec.ts b/packages/ts/generator-typescript-plugin-model/test/model/Model.spec.ts index bb4cad0458..5a5ba09cdf 100644 --- a/packages/ts/generator-typescript-plugin-model/test/model/Model.spec.ts +++ b/packages/ts/generator-typescript-plugin-model/test/model/Model.spec.ts @@ -1,9 +1,10 @@ import Generator from '@vaadin/generator-typescript-core/Generator.js'; -import createLogger from '@vaadin/generator-typescript-utils/createLogger.js'; +import LoggerFactory from '@vaadin/generator-typescript-utils/LoggerFactory.js'; import snapshotMatcher from '@vaadin/generator-typescript-utils/testing/snapshotMatcher.js'; import { expect, use } from 'chai'; import { readFile } from 'fs/promises'; import sinonChai from 'sinon-chai'; +import { URL } from 'url'; import ModelPlugin from '../../src/index.js'; use(sinonChai); @@ -26,7 +27,7 @@ describe('FormPlugin', () => { 'FormNonnullTypesModel', ]; - const generator = new Generator([ModelPlugin], createLogger({ name: 'model-plugin-test', verbose: true })); + const generator = new Generator([ModelPlugin], new LoggerFactory({ name: 'model-plugin-test', verbose: true })); const input = await readFile(new URL('./Model.json', import.meta.url), 'utf8'); const files = await generator.process(input); expect(files.length).to.equal(modelNames.length); @@ -35,6 +36,7 @@ describe('FormPlugin', () => { r[file.name] = file; return r; }, {}); + await Promise.all( modelNames.map(async (modelName) => { const fileName = `com/example/application/endpoints/TsFormEndpoint/${modelName}.ts`; diff --git a/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormAnnotationsModel.snap.ts b/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormAnnotationsModel.snap.ts index 70a63e6de0..02340c276f 100644 --- a/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormAnnotationsModel.snap.ts +++ b/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormAnnotationsModel.snap.ts @@ -2,7 +2,7 @@ import { _getPropertyModel as _getPropertyModel_1, ArrayModel as ArrayModel_1, A import type FormAnnotations_1 from "./FormAnnotations"; import type FormEntity_1 from "./FormEntity"; import FormEntityModel_1 from "./FormEntityModel"; -export default class FormAnnotationsModel extends ObjectModel_1 { +class FormAnnotationsModel extends ObjectModel_1 { static createEmptyValue: () => FormAnnotations_1; get list(): ArrayModel_1 { return this[_getPropertyModel_1]("list", ArrayModel_1, [true, StringModel_1, [true], new NotEmpty_1()]) as ArrayModel_1; @@ -74,3 +74,4 @@ export default class FormAnnotationsModel extends ObjectModel_1 { +class FormArrayTypesModel extends ObjectModel_1 { static createEmptyValue: () => FormArrayTypes_1; get stringList(): ArrayModel_1 { return this[_getPropertyModel_1]("stringList", ArrayModel_1, [true, StringModel_1, [true]]) as ArrayModel_1; @@ -29,3 +29,4 @@ export default class FormArrayTypesModel>>, ArrayModel_1>, ObjectModel_1>>>>; } } +export default FormArrayTypesModel; diff --git a/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormDataPrimitivesModel.snap.ts b/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormDataPrimitivesModel.snap.ts index 347af29993..2104523762 100644 --- a/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormDataPrimitivesModel.snap.ts +++ b/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormDataPrimitivesModel.snap.ts @@ -1,6 +1,6 @@ import { _getPropertyModel as _getPropertyModel_1, BooleanModel as BooleanModel_1, NumberModel as NumberModel_1, ObjectModel as ObjectModel_1, StringModel as StringModel_1 } from "@vaadin/form"; import type FormDataPrimitives_1 from "./FormDataPrimitives"; -export default class FormDataPrimitivesModel extends ObjectModel_1 { +class FormDataPrimitivesModel extends ObjectModel_1 { static createEmptyValue: () => FormDataPrimitives_1; get stringProp(): StringModel_1 { return this[_getPropertyModel_1]("stringProp", StringModel_1, [true]) as StringModel_1; @@ -36,3 +36,4 @@ export default class FormDataPrimitivesModel extends FormEntityIdModel_1 { +class FormEntityHierarchyModel extends FormEntityIdModel_1 { static createEmptyValue: () => FormEntityHierarchy_1; get lorem(): StringModel_1 { return this[_getPropertyModel_1]("lorem", StringModel_1, [true]) as StringModel_1; @@ -10,3 +10,4 @@ export default class FormEntityHierarchyModel extends ObjectModel_1 { +class FormEntityIdModel extends ObjectModel_1 { static createEmptyValue: () => FormEntityId_1; get Id(): NumberModel_1 { return this[_getPropertyModel_1]("Id", NumberModel_1, [true, new NotNull_1()]) as NumberModel_1; } } +export default FormEntityIdModel; diff --git a/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormEntityModel.snap.ts b/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormEntityModel.snap.ts index 5d8ecfc532..1614cc3168 100644 --- a/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormEntityModel.snap.ts +++ b/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormEntityModel.snap.ts @@ -19,7 +19,7 @@ import type FormTemporalTypes_1 from "./FormTemporalTypes"; import FormTemporalTypesModel_1 from "./FormTemporalTypesModel"; import type FormValidationConstraints_1 from "./FormValidationConstraints"; import FormValidationConstraintsModel_1 from "./FormValidationConstraintsModel"; -export default class FormEntityModel extends FormEntityIdModel_1 { +class FormEntityModel extends FormEntityIdModel_1 { static createEmptyValue: () => FormEntity_1; get myId(): NumberModel_1 { return this[_getPropertyModel_1]("myId", NumberModel_1, [true]) as NumberModel_1; @@ -52,3 +52,4 @@ export default class FormEntityModel exte return this[_getPropertyModel_1]("nonnullTypes", FormNonnullTypesModel_1, [true]) as FormNonnullTypesModel_1; } } +export default FormEntityModel; diff --git a/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormNonnullTypesModel.snap.ts b/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormNonnullTypesModel.snap.ts index 5f1b65ac9a..618fdc465d 100644 --- a/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormNonnullTypesModel.snap.ts +++ b/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormNonnullTypesModel.snap.ts @@ -1,6 +1,6 @@ import { _getPropertyModel as _getPropertyModel_1, ArrayModel as ArrayModel_1, ObjectModel as ObjectModel_1, StringModel as StringModel_1 } from "@vaadin/form"; import type FormNonnullTypes_1 from "./FormNonnullTypes"; -export default class FormNonnullTypesModel extends ObjectModel_1 { +class FormNonnullTypesModel extends ObjectModel_1 { static createEmptyValue: () => FormNonnullTypes_1; get nonNullableString(): StringModel_1 { return this[_getPropertyModel_1]("nonNullableString", StringModel_1, [false]) as StringModel_1; @@ -12,3 +12,4 @@ export default class FormNonnullTypesModel, ArrayModel_1>; } } +export default FormNonnullTypesModel; diff --git a/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormOptionalTypesModel.snap.ts b/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormOptionalTypesModel.snap.ts index 6c4356cabe..784271102a 100644 --- a/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormOptionalTypesModel.snap.ts +++ b/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormOptionalTypesModel.snap.ts @@ -2,7 +2,7 @@ import { _getPropertyModel as _getPropertyModel_1, ArrayModel as ArrayModel_1, O import type FormEntity_1 from "./FormEntity"; import FormEntityModel_1 from "./FormEntityModel"; import type FormOptionalTypes_1 from "./FormOptionalTypes"; -export default class FormOptionalTypesModel extends ObjectModel_1 { +class FormOptionalTypesModel extends ObjectModel_1 { static createEmptyValue: () => FormOptionalTypes_1; get optionalString(): StringModel_1 { return this[_getPropertyModel_1]("optionalString", StringModel_1, [true]) as StringModel_1; @@ -17,3 +17,4 @@ export default class FormOptionalTypesModel, ArrayModel_1>; } } +export default FormOptionalTypesModel; diff --git a/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormRecordTypesModel.snap.ts b/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormRecordTypesModel.snap.ts index 1bd7c56cc1..f71cbceba5 100644 --- a/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormRecordTypesModel.snap.ts +++ b/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormRecordTypesModel.snap.ts @@ -5,7 +5,7 @@ import type FormOptionalTypes_1 from "./FormOptionalTypes"; import FormOptionalTypesModel_1 from "./FormOptionalTypesModel"; import type FormRecordTypes_1 from "./FormRecordTypes"; import FormRecordTypesModel_1 from "./FormRecordTypesModel"; -export default class FormRecordTypesModel extends ObjectModel_1 { +class FormRecordTypesModel extends ObjectModel_1 { static createEmptyValue: () => FormRecordTypes_1; get stringMap(): ObjectModel_1> { return this[_getPropertyModel_1]("stringMap", ObjectModel_1, [true]) as ObjectModel_1>; @@ -26,3 +26,4 @@ export default class FormRecordTypesModel>; } } +export default FormRecordTypesModel; diff --git a/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormTemporalTypesModel.snap.ts b/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormTemporalTypesModel.snap.ts index 09a553d0e6..2a3c4e0696 100644 --- a/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormTemporalTypesModel.snap.ts +++ b/packages/ts/generator-typescript-plugin-model/test/model/fixtures/FormTemporalTypesModel.snap.ts @@ -1,6 +1,6 @@ import { _getPropertyModel as _getPropertyModel_1, ObjectModel as ObjectModel_1, StringModel as StringModel_1 } from "@vaadin/form"; import type FormTemporalTypes_1 from "./FormTemporalTypes"; -export default class FormTemporalTypesModel extends ObjectModel_1 { +class FormTemporalTypesModel extends ObjectModel_1 { static createEmptyValue: () => FormTemporalTypes_1; get localDate(): StringModel_1 { return this[_getPropertyModel_1]("localDate", StringModel_1, [true]) as StringModel_1; @@ -9,3 +9,4 @@ export default class FormTemporalTypesModel extends ObjectModel_1 { +class FormValidationConstraintsModel extends ObjectModel_1 { static createEmptyValue: () => FormValidationConstraints_1; get list(): ArrayModel_1 { return this[_getPropertyModel_1]("list", ArrayModel_1, [true, StringModel_1, [true], new NotEmpty_1()]) as ArrayModel_1; @@ -74,3 +74,4 @@ export default class FormValidationConstraintsModel; + +export default class LoggerFactory { + readonly #children = new Map(); + readonly #logger: Pino.Logger; + + constructor({ name, verbose }: LoggerOptions) { + const pretty = PinoPretty({ + ignore: 'time', + }); + + this.#logger = Pino( + { + base: undefined, + level: verbose ? 'debug' : 'info', + name: name ?? 'tsgen', + }, + pretty, + ); + } + + get global(): Pino.Logger { + return this.#logger; + } + + for(caller: string): Pino.Logger { + if (this.#children.has(caller)) { + return this.#children.get(caller)!; + } + + const child = this.#logger.child({ caller }); + this.#children.set(caller, child); + return child; + } +} diff --git a/packages/ts/generator-typescript-utils/src/createLogger.ts b/packages/ts/generator-typescript-utils/src/createLogger.ts deleted file mode 100644 index 471fc25008..0000000000 --- a/packages/ts/generator-typescript-utils/src/createLogger.ts +++ /dev/null @@ -1,19 +0,0 @@ -import Pino from 'pino'; - -export type LoggerOptions = Readonly<{ - name?: string; - verbose?: boolean; -}>; - -export default function createLogger({ name = 'tsgen', verbose }: LoggerOptions): Pino.Logger { - return Pino({ - name, - level: verbose ? 'debug' : 'info', - transport: { - target: 'pino-pretty', - options: { - ignore: 'time,hostname,pid', - }, - }, - }); -} diff --git a/packages/ts/generator-typescript-utils/test/createLogger.spec.ts b/packages/ts/generator-typescript-utils/test/LoggerFactory.spec.ts similarity index 100% rename from packages/ts/generator-typescript-utils/test/createLogger.spec.ts rename to packages/ts/generator-typescript-utils/test/LoggerFactory.spec.ts