diff --git a/lib/plugin/visitors/abstract.visitor.ts b/lib/plugin/visitors/abstract.visitor.ts index f5caf529d..cd3ad91ba 100644 --- a/lib/plugin/visitors/abstract.visitor.ts +++ b/lib/plugin/visitors/abstract.visitor.ts @@ -8,33 +8,9 @@ export class AbstractFileVisitor { factory: ts.NodeFactory | undefined, program: ts.Program ): ts.SourceFile { - if (!factory) { - // support TS v4.2+ - const importEqualsDeclaration = - major == 4 && minor >= 2 - ? (ts.createImportEqualsDeclaration as any)( - undefined, - undefined, - false, - OPENAPI_NAMESPACE, - ts.createExternalModuleReference( - ts.createLiteral(OPENAPI_PACKAGE_NAME) - ) - ) - : (ts.createImportEqualsDeclaration as any)( - undefined, - undefined, - OPENAPI_NAMESPACE, - ts.createExternalModuleReference( - ts.createLiteral(OPENAPI_PACKAGE_NAME) - ) - ); - return ts.updateSourceFileNode(sourceFile, [ - importEqualsDeclaration, - ...sourceFile.statements - ]); + if (major >= 4 && minor >= 2) { + throw new Error('Nest CLI plugin does not support TypeScript < v4.2'); } - // support TS v4.2+ const importEqualsDeclaration: ts.ImportDeclaration = major >= 4 && minor >= 2 ? minor >= 8 diff --git a/lib/plugin/visitors/controller-class.visitor.ts b/lib/plugin/visitors/controller-class.visitor.ts index 0841787b4..48b146543 100644 --- a/lib/plugin/visitors/controller-class.visitor.ts +++ b/lib/plugin/visitors/controller-class.visitor.ts @@ -64,7 +64,7 @@ export class ControllerClassVisitor extends AbstractFileVisitor { // Support both >= v4.8 and v4.7 and lower const decorators = (ts as any).canHaveDecorators ? (ts as any).getDecorators(compilerNode) - : compilerNode.decorators; + : (compilerNode as any).decorators; if (!decorators) { return compilerNode; } @@ -124,7 +124,7 @@ export class ControllerClassVisitor extends AbstractFileVisitor { compilerNode.type, compilerNode.body ) - : factory.updateMethodDeclaration( + : (factory as any).updateMethodDeclaration( compilerNode, updatedDecorators, modifiers, @@ -282,7 +282,7 @@ export class ControllerClassVisitor extends AbstractFileVisitor { // Support both >= v4.8 and v4.7 and lower const decorators = (ts as any).canHaveDecorators ? (ts as any).getDecorators(node) - : node.decorators; + : (node as any).decorators; const httpCodeDecorator = getDecoratorOrUndefinedByNames( ['HttpCode'], decorators, diff --git a/lib/plugin/visitors/model-class.visitor.ts b/lib/plugin/visitors/model-class.visitor.ts index c34fb6f71..279ef8fac 100644 --- a/lib/plugin/visitors/model-class.visitor.ts +++ b/lib/plugin/visitors/model-class.visitor.ts @@ -49,7 +49,7 @@ export class ModelClassVisitor extends AbstractFileVisitor { // Support both >= v4.8 and v4.7 and lower const decorators = (ts as any).canHaveDecorators ? (ts as any).getDecorators(node) - : node.decorators; + : (node as any).decorators; const hidePropertyDecorator = getDecoratorOrUndefinedByNames( [ApiHideProperty.name], @@ -130,7 +130,7 @@ export class ModelClassVisitor extends AbstractFileVisitor { true ) ) - : factory.createMethodDeclaration( + : (factory as any).createMethodDeclaration( undefined, [factory.createModifier(ts.SyntaxKind.StaticKeyword)], undefined, @@ -154,9 +154,9 @@ export class ModelClassVisitor extends AbstractFileVisitor { node.heritageClauses, [...node.members, method] ) - : factory.updateClassDeclaration( + : (factory as any).updateClassDeclaration( node, - node.decorators, + (node as any).decorators, node.modifiers as any, node.name, node.typeParameters, @@ -418,7 +418,7 @@ export class ModelClassVisitor extends AbstractFileVisitor { if (hasPropertyKey(key, existingProperties)) { return undefined; } - let initializer = node.initializer; + let initializer = (node as ts.PropertyDeclaration).initializer; if (!initializer) { return undefined; } @@ -436,7 +436,7 @@ export class ModelClassVisitor extends AbstractFileVisitor { // Support both >= v4.8 and v4.7 and lower const decorators = (ts as any).canHaveDecorators ? (ts as any).getDecorators(node) - : node.decorators; + : (node as any).decorators; this.addPropertyByValidationDecorator( factory, diff --git a/package-lock.json b/package-lock.json index 68020bf50..948f44064 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2687,7 +2687,7 @@ "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, "@types/lodash": { @@ -4260,13 +4260,13 @@ "clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true }, "collect-v8-coverage": { @@ -4477,7 +4477,7 @@ "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, "cookiejar": { @@ -4615,7 +4615,7 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decamelize-keys": { @@ -4656,7 +4656,7 @@ "dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, "deep-extend": { @@ -5014,7 +5014,7 @@ "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { "prelude-ls": "~1.1.2", @@ -5038,13 +5038,13 @@ "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { "prelude-ls": "~1.1.2" @@ -5420,7 +5420,7 @@ "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true }, "expect": { @@ -5824,7 +5824,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } @@ -5952,7 +5952,7 @@ "ftp": { "version": "0.3.10", "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", "dev": true, "requires": { "readable-stream": "1.1.x", @@ -5962,13 +5962,13 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -5980,7 +5980,7 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true } } @@ -6088,7 +6088,7 @@ "jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { "graceful-fs": "^4.1.6" @@ -6160,7 +6160,7 @@ "global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { "ini": "^1.3.4" @@ -6843,7 +6843,7 @@ "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true }, "is-plain-object": { @@ -6913,7 +6913,7 @@ "is-text-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", "dev": true, "requires": { "text-extensions": "^1.0.0" @@ -6935,7 +6935,7 @@ "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, "is-unicode-supported": { @@ -8526,7 +8526,7 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json5": { @@ -8548,7 +8548,7 @@ "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, "keyv": { @@ -8841,7 +8841,7 @@ "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, "lodash.merge": { @@ -9052,7 +9052,7 @@ "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, "merge-stream": { @@ -9276,7 +9276,7 @@ "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", "dev": true }, "node-releases": { @@ -9631,7 +9631,7 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, "p-cancelable": { @@ -10212,7 +10212,7 @@ "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, "qs": { @@ -10275,7 +10275,7 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true } } @@ -10369,7 +10369,7 @@ "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { "resolve": "^1.1.6" @@ -11038,7 +11038,7 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "stack-utils": { @@ -11473,7 +11473,7 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "thread-stream": { @@ -11530,7 +11530,7 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, "to-regex-range": { @@ -11629,7 +11629,7 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true } } @@ -11715,9 +11715,9 @@ } }, "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.3.tgz", + "integrity": "sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==", "dev": true }, "uid": { @@ -11838,7 +11838,7 @@ "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, "v8-compile-cache-lib": { @@ -11910,7 +11910,7 @@ "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "dev": true, "requires": { "defaults": "^1.0.3" @@ -12091,7 +12091,7 @@ "xregexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", "dev": true }, "xtend": { diff --git a/package.json b/package.json index 8eb821993..f4ef8aeae 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "supertest": "6.3.3", "swagger-parser": "10.0.3", "ts-jest": "29.0.5", - "typescript": "4.9.5" + "typescript": "5.0.3" }, "peerDependencies": { "@fastify/static": "^6.0.0", diff --git a/test/plugin/controller-class-visitor.spec.ts b/test/plugin/controller-class-visitor.spec.ts index 0e372d847..90cd7d47a 100644 --- a/test/plugin/controller-class-visitor.spec.ts +++ b/test/plugin/controller-class-visitor.spec.ts @@ -19,7 +19,8 @@ describe('Controller methods', () => { module: ts.ModuleKind.CommonJS, target: ts.ScriptTarget.ESNext, newLine: ts.NewLineKind.LineFeed, - noEmitHelpers: true + noEmitHelpers: true, + experimentalDecorators: true }; const filename = 'app.controller.ts'; const fakeProgram = ts.createProgram([filename], options); @@ -44,7 +45,8 @@ describe('Controller methods', () => { module: ts.ModuleKind.CommonJS, target: ts.ScriptTarget.ESNext, newLine: ts.NewLineKind.LineFeed, - noEmitHelpers: true + noEmitHelpers: true, + experimentalDecorators: true }; const filename = 'app.controller.ts'; const fakeProgram = ts.createProgram([filename], options); @@ -69,7 +71,8 @@ describe('Controller methods', () => { module: ts.ModuleKind.CommonJS, target: ts.ScriptTarget.ESNext, newLine: ts.NewLineKind.LineFeed, - noEmitHelpers: true + noEmitHelpers: true, + experimentalDecorators: true }; const filename = 'app.controller.ts'; const fakeProgram = ts.createProgram([filename], options); diff --git a/test/plugin/fixtures/es5-class.dto.ts b/test/plugin/fixtures/es5-class.dto.ts index 89c5f8472..0a557e217 100644 --- a/test/plugin/fixtures/es5-class.dto.ts +++ b/test/plugin/fixtures/es5-class.dto.ts @@ -22,7 +22,7 @@ exports.CreateCatDtoEs5 = void 0; var openapi = require(\"@nestjs/swagger\"); var status_1 = require(\"./status\"); var constants_1 = require(\"./constants\"); -var CreateCatDtoEs5 = /** @class */ (function () { +var CreateCatDtoEs5 = exports.CreateCatDtoEs5 = /** @class */ (function () { function CreateCatDtoEs5() { // field name this.name = constants_1.CONSTANT_STRING; @@ -40,5 +40,4 @@ var CreateCatDtoEs5 = /** @class */ (function () { ], CreateCatDtoEs5.prototype, \"age\", void 0); return CreateCatDtoEs5; }()); -exports.CreateCatDtoEs5 = CreateCatDtoEs5; `; diff --git a/test/plugin/model-class-visitor.spec.ts b/test/plugin/model-class-visitor.spec.ts index 3de7a2182..236c3c160 100644 --- a/test/plugin/model-class-visitor.spec.ts +++ b/test/plugin/model-class-visitor.spec.ts @@ -37,6 +37,7 @@ describe('API model properties', () => { target: ts.ScriptTarget.ES2020, newLine: ts.NewLineKind.LineFeed, noEmitHelpers: true, + experimentalDecorators: true, strict: true }; const filename = 'create-cat.dto.ts'; @@ -67,6 +68,7 @@ describe('API model properties', () => { target: ts.ScriptTarget.ES2020, newLine: ts.NewLineKind.LineFeed, noEmitHelpers: true, + experimentalDecorators: true, strict: true }; const filename = 'create-cat.dto.ts'; @@ -88,6 +90,7 @@ describe('API model properties', () => { target: ts.ScriptTarget.ES2020, newLine: ts.NewLineKind.LineFeed, noEmitHelpers: true, + experimentalDecorators: true, strict: true }; const filename = 'create-cat-alt2.dto.ts'; @@ -114,6 +117,7 @@ describe('API model properties', () => { target: ts.ScriptTarget.ES5, newLine: ts.NewLineKind.LineFeed, noEmitHelpers: true, + experimentalDecorators: true, strict: true }; const filename = 'es5-class.dto.ts'; @@ -140,6 +144,7 @@ describe('API model properties', () => { target: ts.ScriptTarget.ES2020, newLine: ts.NewLineKind.LineFeed, noEmitHelpers: true, + experimentalDecorators: true, strict: true }; const filename = 'nullable.dto.ts'; @@ -166,6 +171,7 @@ describe('API model properties', () => { target: ts.ScriptTarget.ES5, newLine: ts.NewLineKind.LineFeed, noEmitHelpers: true, + experimentalDecorators: true, strict: true }; const filename = 'changed-class.dto.ts'; @@ -206,6 +212,7 @@ describe('API model properties', () => { target: ts.ScriptTarget.ES2020, newLine: ts.NewLineKind.LineFeed, noEmitHelpers: true, + experimentalDecorators: true, strict: true }; const filename = 'string-literal.dto.ts';