diff --git a/typespec-extension/changelog.md b/typespec-extension/changelog.md index b075d154d5..30ca4a5c52 100644 --- a/typespec-extension/changelog.md +++ b/typespec-extension/changelog.md @@ -1,5 +1,13 @@ # Release History +## 0.18.0 (2024-07-10) + +Compatible with compiler 0.57. + +### Breaking Changes + +- Request body without `@body` or `@bodyRoot`: the properties of the request body is flattened into method signature. + ## 0.17.1 (2024-07-03) Compatible with compiler 0.57. diff --git a/typespec-extension/package-lock.json b/typespec-extension/package-lock.json index 748e98756b..c9d704f816 100644 --- a/typespec-extension/package-lock.json +++ b/typespec-extension/package-lock.json @@ -1,12 +1,12 @@ { "name": "@azure-tools/typespec-java", - "version": "0.17.1", + "version": "0.18.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@azure-tools/typespec-java", - "version": "0.17.1", + "version": "0.18.0", "license": "MIT", "dependencies": { "@autorest/codemodel": "~4.20.0", @@ -18,26 +18,26 @@ "@azure-tools/typespec-azure-core": "0.43.0", "@azure-tools/typespec-azure-resource-manager": "0.43.0", "@azure-tools/typespec-azure-rulesets": "0.43.0", - "@azure-tools/typespec-client-generator-core": "0.43.1", + "@azure-tools/typespec-client-generator-core": "0.43.2", "@types/js-yaml": "~4.0.9", - "@types/lodash": "~4.17.1", - "@types/mocha": "~10.0.6", - "@types/node": "~20.12.10", - "@typescript-eslint/eslint-plugin": "~7.8.0", - "@typescript-eslint/parser": "~7.8.0", + "@types/lodash": "~4.17.6", + "@types/mocha": "~10.0.7", + "@types/node": "~20.14.10", + "@typescript-eslint/eslint-plugin": "~7.16.0", + "@typescript-eslint/parser": "~7.16.0", "@typespec/compiler": "0.57.0", "@typespec/http": "0.57.0", "@typespec/openapi": "0.57.0", "@typespec/rest": "0.57.0", "@typespec/versioning": "0.57.0", "@typespec/xml": "0.57.0", - "c8": "~9.1.0", + "c8": "~10.1.2", "eslint": "~8.57.0", - "eslint-plugin-deprecation": "~2.0.0", - "mocha": "~10.4.0", - "prettier": "~3.2.5", - "rimraf": "~5.0.5", - "typescript": "~5.4.5" + "eslint-plugin-deprecation": "~3.0.0", + "mocha": "~10.6.0", + "prettier": "~3.3.2", + "rimraf": "~6.0.0", + "typescript": "~5.5.3" }, "engines": { "node": ">=14.0.0" @@ -47,7 +47,7 @@ "@azure-tools/typespec-azure-core": ">=0.43.0 <1.0.0", "@azure-tools/typespec-azure-resource-manager": ">=0.43.0 <1.0.0", "@azure-tools/typespec-azure-rulesets": ">=0.43.0 <1.0.0", - "@azure-tools/typespec-client-generator-core": ">=0.43.1 <1.0.0", + "@azure-tools/typespec-client-generator-core": ">=0.43.2 <1.0.0", "@typespec/compiler": ">=0.57.0 <1.0.0", "@typespec/http": ">=0.57.0 <1.0.0", "@typespec/openapi": ">=0.57.0 <1.0.0", @@ -190,9 +190,9 @@ } }, "node_modules/@azure-tools/typespec-client-generator-core": { - "version": "0.43.1", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.43.1.tgz", - "integrity": "sha512-NwNN/fIOcjOU/8o6ViCuEAAQl6zmu2X1QKPuXxeSy8ssDwrTiX9Ho2X/7IZM4XmOArKTtgmTkNcSnnmuj5dsGg==", + "version": "0.43.2", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.43.2.tgz", + "integrity": "sha512-UAVV30BtTQBiXmBoQ3SyvmiuBDYoqWFIn7G96hjojpwXpE6D5ba0y5LascMuF1b65eAhGnnf974DElJE9DGepQ==", "dev": true, "dependencies": { "change-case": "~5.4.4", @@ -206,8 +206,7 @@ "@typespec/compiler": "~0.57.0", "@typespec/http": "~0.57.0", "@typespec/rest": "~0.57.0", - "@typespec/versioning": "~0.57.0", - "@typespec/xml": "~0.57.0" + "@typespec/versioning": "~0.57.0" } }, "node_modules/@babel/code-frame": { @@ -563,55 +562,41 @@ "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", "dev": true }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, "node_modules/@types/lodash": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.1.tgz", - "integrity": "sha512-X+2qazGS3jxLAIz5JDXDzglAF3KpijdhFxlf/V1+hEsOUc+HnWi81L/uv/EvGuV90WY+7mPGFCUDGfQC3Gj95Q==", + "version": "4.17.6", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.6.tgz", + "integrity": "sha512-OpXEVoCKSS3lQqjx9GGGOapBeuW5eUboYHRlHP9urXPX25IKZ6AnP5ZRxtVf63iieUbsHxLn8NQ5Nlftc6yzAA==", "dev": true }, "node_modules/@types/mocha": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz", - "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==", + "version": "10.0.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.7.tgz", + "integrity": "sha512-GN8yJ1mNTcFcah/wKEFIJckJx9iJLoMSzWcfRRuxz/Jk+U6KQNnml+etbtxFK8lPjzOw3zp4Ha/kjSst9fsHYw==", "dev": true }, "node_modules/@types/node": { - "version": "20.12.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.10.tgz", - "integrity": "sha512-Eem5pH9pmWBHoGAT8Dr5fdc5rYA+4NAovdM4EktRPVAAiJhmWWfQrA0cFhAbOsQdSfIHjAud6YdkbL69+zSKjw==", + "version": "20.14.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", + "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", "dev": true, "dependencies": { "undici-types": "~5.26.4" } }, - "node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true - }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.8.0.tgz", - "integrity": "sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.0.tgz", + "integrity": "sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/type-utils": "7.8.0", - "@typescript-eslint/utils": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4", + "@typescript-eslint/scope-manager": "7.16.0", + "@typescript-eslint/type-utils": "7.16.0", + "@typescript-eslint/utils": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "semver": "^7.6.0", "ts-api-utils": "^1.3.0" }, "engines": { @@ -631,140 +616,16 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz", - "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", - "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", - "dev": true, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz", - "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.15", - "@types/semver": "^7.5.8", - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/typescript-estree": "7.8.0", - "semver": "^7.6.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", - "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@typescript-eslint/parser": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.8.0.tgz", - "integrity": "sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.16.0.tgz", + "integrity": "sha512-ar9E+k7CU8rWi2e5ErzQiC93KKEFAXA2Kky0scAlPcxYblLt8+XZuHUZwlyfXILyQa95P6lQg+eZgh/dDs3+Vw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/typescript-estree": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", + "@typescript-eslint/scope-manager": "7.16.0", + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/typescript-estree": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0", "debug": "^4.3.4" }, "engines": { @@ -783,116 +644,17 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz", - "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", - "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", - "dev": true, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz", - "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", - "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.0.tgz", + "integrity": "sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -900,13 +662,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.8.0.tgz", - "integrity": "sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.16.0.tgz", + "integrity": "sha512-j0fuUswUjDHfqV/UdW6mLtOQQseORqfdmoBNDFOqs9rvNVR2e+cmu6zJu/Ku4SDuqiJko6YnhwcL8x45r8Oqxg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.8.0", - "@typescript-eslint/utils": "7.8.0", + "@typescript-eslint/typescript-estree": "7.16.0", + "@typescript-eslint/utils": "7.16.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -926,27 +688,10 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz", - "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz", - "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==", + "node_modules/@typescript-eslint/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.0.tgz", + "integrity": "sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -956,14 +701,14 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz", - "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.0.tgz", + "integrity": "sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/visitor-keys": "7.8.0", + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -984,113 +729,6 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.8.0.tgz", - "integrity": "sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.15", - "@types/semver": "^7.5.8", - "@typescript-eslint/scope-manager": "7.8.0", - "@typescript-eslint/types": "7.8.0", - "@typescript-eslint/typescript-estree": "7.8.0", - "semver": "^7.6.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz", - "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.8.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -1101,9 +739,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -1116,41 +754,38 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.0.tgz", + "integrity": "sha512-PqP4kP3hb4r7Jav+NiRCntlVzhxBNWq6ZQ+zQwII1y/G/1gdIPeYDCKr2+dH6049yJQsWZiHU6RlwvIFBXXGNA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "semver": "^7.5.4" + "@typescript-eslint/scope-manager": "7.16.0", + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/typescript-estree": "7.16.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.0.tgz", + "integrity": "sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "7.16.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1217,6 +852,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@typespec/compiler/node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/@typespec/compiler/node_modules/slash": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", @@ -1335,9 +985,9 @@ } }, "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, "engines": { "node": ">=6" @@ -1435,9 +1085,9 @@ "dev": true }, "node_modules/c8": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-9.1.0.tgz", - "integrity": "sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/c8/-/c8-10.1.2.tgz", + "integrity": "sha512-Qr6rj76eSshu5CgRYvktW0uM0CFY0yi4Fd5D0duDXO6sYinyopmftUiJVuzBQxQcwQLor7JWDVRP+dUfCmzgJw==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", @@ -1447,7 +1097,7 @@ "istanbul-lib-coverage": "^3.2.0", "istanbul-lib-report": "^3.0.1", "istanbul-reports": "^3.1.6", - "test-exclude": "^6.0.0", + "test-exclude": "^7.0.1", "v8-to-istanbul": "^9.0.0", "yargs": "^17.7.2", "yargs-parser": "^21.1.1" @@ -1456,7 +1106,15 @@ "c8": "bin/c8.js" }, "engines": { - "node": ">=14.14.0" + "node": ">=18" + }, + "peerDependencies": { + "monocart-coverage-reports": "^2" + }, + "peerDependenciesMeta": { + "monocart-coverage-reports": { + "optional": true + } } }, "node_modules/callsites": { @@ -1595,9 +1253,9 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -1630,9 +1288,9 @@ "dev": true }, "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "dev": true, "engines": { "node": ">=0.3.1" @@ -1748,17 +1406,17 @@ } }, "node_modules/eslint-plugin-deprecation": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-deprecation/-/eslint-plugin-deprecation-2.0.0.tgz", - "integrity": "sha512-OAm9Ohzbj11/ZFyICyR5N6LbOIvQMp7ZU2zI7Ej0jIc8kiGUERXPNMfw2QqqHD1ZHtjMub3yPZILovYEYucgoQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-deprecation/-/eslint-plugin-deprecation-3.0.0.tgz", + "integrity": "sha512-JuVLdNg/uf0Adjg2tpTyYoYaMbwQNn/c78P1HcccokvhtRphgnRjZDKmhlxbxYptppex03zO76f97DD/yQHv7A==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "^6.0.0", - "tslib": "^2.3.1", - "tsutils": "^3.21.0" + "@typescript-eslint/utils": "^7.0.0", + "ts-api-utils": "^1.3.0", + "tslib": "^2.3.1" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0", + "eslint": "^8.0.0", "typescript": "^4.2.4 || ^5.0.0" } }, @@ -2434,15 +2092,15 @@ } }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", + "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2629,6 +2287,15 @@ "node": ">=8" } }, + "node_modules/lru-cache": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", + "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", + "dev": true, + "engines": { + "node": "20 || >=22" + } + }, "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -2679,40 +2346,40 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/mocha": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz", - "integrity": "sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==", - "dev": true, - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "8.1.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.6.0.tgz", + "integrity": "sha512-hxjt4+EEB0SA0ZDygSS015t65lJw/I2yRCS3Ae+SJ5FrbzrXgfYwJr96f0OvIXdj7h4lv/vLCrH3rkiuizFSvw==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", + "chokidar": "^3.5.3", + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^8.1.0", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" }, "bin": { "_mocha": "bin/_mocha", @@ -2783,9 +2450,9 @@ } }, "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -2834,9 +2501,9 @@ } }, "node_modules/mocha/node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, "engines": { "node": ">=10" @@ -2928,6 +2595,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -2968,30 +2641,21 @@ } }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -3038,9 +2702,9 @@ } }, "node_modules/prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -3173,18 +2837,18 @@ } }, "node_modules/rimraf": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", - "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.0.tgz", + "integrity": "sha512-u+yqhM92LW+89cxUQK0SRyvXYQmyuKHx0jkx4W7KfwLGLqJnQM5031Uv1trE4gB9XEXBM/s6MxKlfW95IidqaA==", "dev": true, "dependencies": { - "glob": "^10.3.7" + "glob": "^11.0.0" }, "bin": { "rimraf": "dist/esm/bin.mjs" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -3200,37 +2864,38 @@ } }, "node_modules/rimraf/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/rimraf/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -3291,9 +2956,9 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, "dependencies": { "randombytes": "^2.1.0" @@ -3426,17 +3091,104 @@ } }, "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", + "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", "dev": true, "dependencies": { "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "glob": "^10.4.1", + "minimatch": "^9.0.4" }, "engines": { - "node": ">=8" + "node": ">=18" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/jackspeak": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.2.tgz", + "integrity": "sha512-qH3nOSj8q/8+Eg8LUPOq3C+6HWkpUioIjDsq1+D4zY91oZvpPttw8GwtF1nReRYKXl+1AORyFqtm2f5Q1SB6/Q==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "14 >=14.21 || 16 >=16.20 || >=18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/test-exclude/node_modules/lru-cache": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.2.tgz", + "integrity": "sha512-voV4dDrdVZVNz84n39LFKDaRzfwhdzJ7akpyXfTMxCgRUp07U3lcJUXRlhTKP17rgt09sUzLi5iCitpEAr+6ug==", + "dev": true, + "engines": { + "node": "14 || 16 || 18 || 20 || >=22" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/text-table": { @@ -3475,27 +3227,6 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -3521,9 +3252,9 @@ } }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -3633,9 +3364,9 @@ } }, "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", "dev": true }, "node_modules/wrap-ansi": { diff --git a/typespec-extension/package.json b/typespec-extension/package.json index 66b6e21caa..271faa3fdd 100644 --- a/typespec-extension/package.json +++ b/typespec-extension/package.json @@ -1,6 +1,6 @@ { "name": "@azure-tools/typespec-java", - "version": "0.17.1", + "version": "0.18.0", "description": "TypeSpec library for emitting Java client from the TypeSpec REST protocol binding", "keywords": [ "TypeSpec" @@ -49,7 +49,7 @@ "@azure-tools/typespec-azure-resource-manager": ">=0.43.0 <1.0.0", "@azure-tools/typespec-autorest": ">=0.43.0 <1.0.0", "@azure-tools/typespec-azure-rulesets": ">=0.43.0 <1.0.0", - "@azure-tools/typespec-client-generator-core": ">=0.43.1 <1.0.0", + "@azure-tools/typespec-client-generator-core": ">=0.43.2 <1.0.0", "@typespec/compiler": ">=0.57.0 <1.0.0", "@typespec/http": ">=0.57.0 <1.0.0", "@typespec/openapi": ">=0.57.0 <1.0.0", @@ -67,25 +67,25 @@ "@azure-tools/typespec-azure-resource-manager": "0.43.0", "@azure-tools/typespec-autorest": "0.43.0", "@azure-tools/typespec-azure-rulesets": "0.43.0", - "@azure-tools/typespec-client-generator-core": "0.43.1", + "@azure-tools/typespec-client-generator-core": "0.43.2", "@types/js-yaml": "~4.0.9", - "@types/lodash": "~4.17.1", - "@types/mocha": "~10.0.6", - "@types/node": "~20.12.10", - "@typescript-eslint/eslint-plugin": "~7.8.0", - "@typescript-eslint/parser": "~7.8.0", + "@types/lodash": "~4.17.6", + "@types/mocha": "~10.0.7", + "@types/node": "~20.14.10", + "@typescript-eslint/eslint-plugin": "~7.16.0", + "@typescript-eslint/parser": "~7.16.0", "@typespec/compiler": "0.57.0", "@typespec/http": "0.57.0", "@typespec/openapi": "0.57.0", "@typespec/rest": "0.57.0", "@typespec/versioning": "0.57.0", "@typespec/xml": "0.57.0", - "c8": "~9.1.0", + "c8": "~10.1.2", "eslint": "~8.57.0", - "eslint-plugin-deprecation": "~2.0.0", - "mocha": "~10.4.0", - "prettier": "~3.2.5", - "rimraf": "~5.0.5", - "typescript": "~5.4.5" + "eslint-plugin-deprecation": "~3.0.0", + "mocha": "~10.6.0", + "prettier": "~3.3.2", + "rimraf": "~6.0.0", + "typescript": "~5.5.3" } } diff --git a/typespec-extension/src/code-model-builder.ts b/typespec-extension/src/code-model-builder.ts index f9d270698d..eb13b150a7 100644 --- a/typespec-extension/src/code-model-builder.ts +++ b/typespec-extension/src/code-model-builder.ts @@ -801,7 +801,7 @@ export class CodeModelBuilder { this.processParameterBody(codeModelOperation, op, op.parameters.body.property); } } else if (op.parameters.body.type) { - let bodyType = this.getEffectiveSchemaType(op.parameters.body.type); + let bodyType = op.parameters.body.type; if (bodyType.kind === "Model") { // try use resource type as round-trip model @@ -1345,7 +1345,11 @@ export class CodeModelBuilder { schema = this.processSchemaFromSdkType(sdkType, body.name); } - const isAnonymousModel = sdkType.kind === "model" && sdkType.isGeneratedName === true; + // Explicit body parameter @body or @bodyRoot would result to body.kind === "ModelProperty" + // Implicit body parameter would result to body.kind === "Model" + // see https://typespec.io/docs/libraries/http/cheat-sheet#data-types + const bodyParameterFlatten = sdkType.kind === "model" && body.kind === "Model" && !this.isArm(); + const parameterName = body.kind === "Model" ? (sdkType.kind === "model" ? sdkType.name : "") : this.getName(body); const parameter = new Parameter(parameterName, this.getDoc(body), schema, { summary: this.getSummary(body), @@ -1371,8 +1375,8 @@ export class CodeModelBuilder { this.trackSchemaUsage(schema, { serializationFormats: [KnownMediaType.Multipart] }); } - if (schema instanceof ObjectSchema && isAnonymousModel) { - // anonymous model + if (schema instanceof ObjectSchema && bodyParameterFlatten) { + // flatten body parameter // name the schema for documentation schema.language.default.name = pascalCase(op.language.default.name) + "Request"; diff --git a/typespec-tests/package.json b/typespec-tests/package.json index 316046f1f1..7e3f396430 100644 --- a/typespec-tests/package.json +++ b/typespec-tests/package.json @@ -10,12 +10,12 @@ }, "dependencies": { "@azure-tools/cadl-ranch-specs": "0.34.3", - "@azure-tools/typespec-java": "file:/../typespec-extension/azure-tools-typespec-java-0.17.1.tgz" + "@azure-tools/typespec-java": "file:/../typespec-extension/azure-tools-typespec-java-0.18.0.tgz" }, "devDependencies": { "@typespec/prettier-plugin-typespec": "~0.57.0", - "prettier-plugin-organize-imports": "3.2.4", - "prettier": "~3.2.5" + "prettier-plugin-organize-imports": "4.0.0", + "prettier": "~3.3.2" }, "overrides": { "@typespec/compiler": ">=0.57.0 <1.0.0", @@ -25,7 +25,7 @@ "@typespec/openapi": ">=0.57.0 <1.0.0", "@typespec/xml": ">=0.57.0 <1.0.0", "@azure-tools/typespec-azure-core": ">=0.43.0 <1.0.0", - "@azure-tools/typespec-client-generator-core": ">=0.43.1 <1.0.0", + "@azure-tools/typespec-client-generator-core": "0.43.2", "@azure-tools/typespec-azure-resource-manager": ">=0.43.0 <1.0.0", "@azure-tools/typespec-autorest": ">=0.43.0 <1.0.0" }, diff --git a/typespec-tests/src/main/java/com/client/naming/ModelAsyncClient.java b/typespec-tests/src/main/java/com/client/naming/ClientModelAsyncClient.java similarity index 95% rename from typespec-tests/src/main/java/com/client/naming/ModelAsyncClient.java rename to typespec-tests/src/main/java/com/client/naming/ClientModelAsyncClient.java index 4a780a726b..ad6a0fe3df 100644 --- a/typespec-tests/src/main/java/com/client/naming/ModelAsyncClient.java +++ b/typespec-tests/src/main/java/com/client/naming/ClientModelAsyncClient.java @@ -16,7 +16,7 @@ import com.azure.core.http.rest.Response; import com.azure.core.util.BinaryData; import com.azure.core.util.FluxUtil; -import com.client.naming.implementation.ModelsImpl; +import com.client.naming.implementation.ClientModelsImpl; import com.client.naming.models.ClientModel; import com.client.naming.models.JavaModel; import reactor.core.publisher.Mono; @@ -25,17 +25,17 @@ * Initializes a new instance of the asynchronous NamingClient type. */ @ServiceClient(builder = NamingClientBuilder.class, isAsync = true) -public final class ModelAsyncClient { +public final class ClientModelAsyncClient { @Generated - private final ModelsImpl serviceClient; + private final ClientModelsImpl serviceClient; /** - * Initializes an instance of ModelAsyncClient class. + * Initializes an instance of ClientModelAsyncClient class. * * @param serviceClient the service client implementation. */ @Generated - ModelAsyncClient(ModelsImpl serviceClient) { + ClientModelAsyncClient(ClientModelsImpl serviceClient) { this.serviceClient = serviceClient; } diff --git a/typespec-tests/src/main/java/com/client/naming/ModelClient.java b/typespec-tests/src/main/java/com/client/naming/ClientModelClient.java similarity index 95% rename from typespec-tests/src/main/java/com/client/naming/ModelClient.java rename to typespec-tests/src/main/java/com/client/naming/ClientModelClient.java index dd1a3e5da0..4417a4d8fa 100644 --- a/typespec-tests/src/main/java/com/client/naming/ModelClient.java +++ b/typespec-tests/src/main/java/com/client/naming/ClientModelClient.java @@ -15,7 +15,7 @@ import com.azure.core.http.rest.RequestOptions; import com.azure.core.http.rest.Response; import com.azure.core.util.BinaryData; -import com.client.naming.implementation.ModelsImpl; +import com.client.naming.implementation.ClientModelsImpl; import com.client.naming.models.ClientModel; import com.client.naming.models.JavaModel; @@ -23,17 +23,17 @@ * Initializes a new instance of the synchronous NamingClient type. */ @ServiceClient(builder = NamingClientBuilder.class) -public final class ModelClient { +public final class ClientModelClient { @Generated - private final ModelsImpl serviceClient; + private final ClientModelsImpl serviceClient; /** - * Initializes an instance of ModelClient class. + * Initializes an instance of ClientModelClient class. * * @param serviceClient the service client implementation. */ @Generated - ModelClient(ModelsImpl serviceClient) { + ClientModelClient(ClientModelsImpl serviceClient) { this.serviceClient = serviceClient; } diff --git a/typespec-tests/src/main/java/com/client/naming/NamingClientBuilder.java b/typespec-tests/src/main/java/com/client/naming/NamingClientBuilder.java index 3fcf4562d5..dfeb2c86c9 100644 --- a/typespec-tests/src/main/java/com/client/naming/NamingClientBuilder.java +++ b/typespec-tests/src/main/java/com/client/naming/NamingClientBuilder.java @@ -42,10 +42,10 @@ @ServiceClientBuilder( serviceClients = { NamingClient.class, - ModelClient.class, + ClientModelClient.class, UnionEnumClient.class, NamingAsyncClient.class, - ModelAsyncClient.class, + ClientModelAsyncClient.class, UnionEnumAsyncClient.class }) public final class NamingClientBuilder implements HttpTrait, ConfigurationTrait { @@ -262,13 +262,13 @@ public NamingAsyncClient buildAsyncClient() { } /** - * Builds an instance of ModelAsyncClient class. + * Builds an instance of ClientModelAsyncClient class. * - * @return an instance of ModelAsyncClient. + * @return an instance of ClientModelAsyncClient. */ @Generated - public ModelAsyncClient buildModelAsyncClient() { - return new ModelAsyncClient(buildInnerClient().getModels()); + public ClientModelAsyncClient buildClientModelAsyncClient() { + return new ClientModelAsyncClient(buildInnerClient().getClientModels()); } /** @@ -292,13 +292,13 @@ public NamingClient buildClient() { } /** - * Builds an instance of ModelClient class. + * Builds an instance of ClientModelClient class. * - * @return an instance of ModelClient. + * @return an instance of ClientModelClient. */ @Generated - public ModelClient buildModelClient() { - return new ModelClient(buildInnerClient().getModels()); + public ClientModelClient buildClientModelClient() { + return new ClientModelClient(buildInnerClient().getClientModels()); } /** diff --git a/typespec-tests/src/main/java/com/client/naming/implementation/ModelsImpl.java b/typespec-tests/src/main/java/com/client/naming/implementation/ClientModelsImpl.java similarity index 93% rename from typespec-tests/src/main/java/com/client/naming/implementation/ModelsImpl.java rename to typespec-tests/src/main/java/com/client/naming/implementation/ClientModelsImpl.java index 458cb797a6..a1cf0ec689 100644 --- a/typespec-tests/src/main/java/com/client/naming/implementation/ModelsImpl.java +++ b/typespec-tests/src/main/java/com/client/naming/implementation/ClientModelsImpl.java @@ -26,13 +26,13 @@ import reactor.core.publisher.Mono; /** - * An instance of this class provides access to all the operations defined in Models. + * An instance of this class provides access to all the operations defined in ClientModels. */ -public final class ModelsImpl { +public final class ClientModelsImpl { /** * The proxy service used to perform REST calls. */ - private final ModelsService service; + private final ClientModelsService service; /** * The service client containing this operation class. @@ -40,22 +40,23 @@ public final class ModelsImpl { private final NamingClientImpl client; /** - * Initializes an instance of ModelsImpl. + * Initializes an instance of ClientModelsImpl. * * @param client the instance of the service client containing this operation class. */ - ModelsImpl(NamingClientImpl client) { - this.service = RestProxy.create(ModelsService.class, client.getHttpPipeline(), client.getSerializerAdapter()); + ClientModelsImpl(NamingClientImpl client) { + this.service + = RestProxy.create(ClientModelsService.class, client.getHttpPipeline(), client.getSerializerAdapter()); this.client = client; } /** - * The interface defining all the services for NamingClientModels to be used by the proxy service to perform REST - * calls. + * The interface defining all the services for NamingClientClientModels to be used by the proxy service to perform + * REST calls. */ @Host("http://localhost:3000") - @ServiceInterface(name = "NamingClientModels") - public interface ModelsService { + @ServiceInterface(name = "NamingClientClientMo") + public interface ClientModelsService { @Post("/client/naming/model/client") @ExpectedResponses({ 204 }) @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) diff --git a/typespec-tests/src/main/java/com/client/naming/implementation/NamingClientImpl.java b/typespec-tests/src/main/java/com/client/naming/implementation/NamingClientImpl.java index e724ef048a..b302925913 100644 --- a/typespec-tests/src/main/java/com/client/naming/implementation/NamingClientImpl.java +++ b/typespec-tests/src/main/java/com/client/naming/implementation/NamingClientImpl.java @@ -71,17 +71,17 @@ public SerializerAdapter getSerializerAdapter() { } /** - * The ModelsImpl object to access its operations. + * The ClientModelsImpl object to access its operations. */ - private final ModelsImpl models; + private final ClientModelsImpl clientModels; /** - * Gets the ModelsImpl object to access its operations. + * Gets the ClientModelsImpl object to access its operations. * - * @return the ModelsImpl object. + * @return the ClientModelsImpl object. */ - public ModelsImpl getModels() { - return this.models; + public ClientModelsImpl getClientModels() { + return this.clientModels; } /** @@ -124,7 +124,7 @@ public NamingClientImpl(HttpPipeline httpPipeline) { public NamingClientImpl(HttpPipeline httpPipeline, SerializerAdapter serializerAdapter) { this.httpPipeline = httpPipeline; this.serializerAdapter = serializerAdapter; - this.models = new ModelsImpl(this); + this.clientModels = new ClientModelsImpl(this); this.unionEnums = new UnionEnumsImpl(this); this.service = RestProxy.create(NamingClientService.class, this.httpPipeline, this.getSerializerAdapter()); } diff --git a/typespec-tests/src/main/java/com/parameters/bodyoptionality/BodyOptionalityAsyncClient.java b/typespec-tests/src/main/java/com/parameters/bodyoptionality/BodyOptionalityAsyncClient.java index 09c2f47754..f06a21f593 100644 --- a/typespec-tests/src/main/java/com/parameters/bodyoptionality/BodyOptionalityAsyncClient.java +++ b/typespec-tests/src/main/java/com/parameters/bodyoptionality/BodyOptionalityAsyncClient.java @@ -17,6 +17,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.FluxUtil; import com.parameters.bodyoptionality.implementation.BodyOptionalityClientImpl; +import com.parameters.bodyoptionality.implementation.models.RequiredImplicitRequest; import com.parameters.bodyoptionality.models.BodyModel; import reactor.core.publisher.Mono; @@ -72,7 +73,7 @@ public Mono> requiredExplicitWithResponse(BinaryData body, Reques * } * } * - * @param bodyModel The bodyModel parameter. + * @param requiredImplicitRequest The requiredImplicitRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -82,8 +83,9 @@ public Mono> requiredExplicitWithResponse(BinaryData body, Reques */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> requiredImplicitWithResponse(BinaryData bodyModel, RequestOptions requestOptions) { - return this.serviceClient.requiredImplicitWithResponseAsync(bodyModel, requestOptions); + public Mono> requiredImplicitWithResponse(BinaryData requiredImplicitRequest, + RequestOptions requestOptions) { + return this.serviceClient.requiredImplicitWithResponseAsync(requiredImplicitRequest, requestOptions); } /** @@ -109,7 +111,7 @@ public Mono requiredExplicit(BodyModel body) { /** * The requiredImplicit operation. * - * @param bodyModel The bodyModel parameter. + * @param name The name parameter. * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -120,9 +122,11 @@ public Mono requiredExplicit(BodyModel body) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono requiredImplicit(BodyModel bodyModel) { + public Mono requiredImplicit(String name) { // Generated convenience method for requiredImplicitWithResponse RequestOptions requestOptions = new RequestOptions(); - return requiredImplicitWithResponse(BinaryData.fromObject(bodyModel), requestOptions).flatMap(FluxUtil::toMono); + RequiredImplicitRequest requiredImplicitRequestObj = new RequiredImplicitRequest(name); + BinaryData requiredImplicitRequest = BinaryData.fromObject(requiredImplicitRequestObj); + return requiredImplicitWithResponse(requiredImplicitRequest, requestOptions).flatMap(FluxUtil::toMono); } } diff --git a/typespec-tests/src/main/java/com/parameters/bodyoptionality/BodyOptionalityClient.java b/typespec-tests/src/main/java/com/parameters/bodyoptionality/BodyOptionalityClient.java index 186af6cb7b..ee0d67d69c 100644 --- a/typespec-tests/src/main/java/com/parameters/bodyoptionality/BodyOptionalityClient.java +++ b/typespec-tests/src/main/java/com/parameters/bodyoptionality/BodyOptionalityClient.java @@ -16,6 +16,7 @@ import com.azure.core.http.rest.Response; import com.azure.core.util.BinaryData; import com.parameters.bodyoptionality.implementation.BodyOptionalityClientImpl; +import com.parameters.bodyoptionality.implementation.models.RequiredImplicitRequest; import com.parameters.bodyoptionality.models.BodyModel; /** @@ -70,7 +71,7 @@ public Response requiredExplicitWithResponse(BinaryData body, RequestOptio * } * } * - * @param bodyModel The bodyModel parameter. + * @param requiredImplicitRequest The requiredImplicitRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -80,8 +81,9 @@ public Response requiredExplicitWithResponse(BinaryData body, RequestOptio */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response requiredImplicitWithResponse(BinaryData bodyModel, RequestOptions requestOptions) { - return this.serviceClient.requiredImplicitWithResponse(bodyModel, requestOptions); + public Response requiredImplicitWithResponse(BinaryData requiredImplicitRequest, + RequestOptions requestOptions) { + return this.serviceClient.requiredImplicitWithResponse(requiredImplicitRequest, requestOptions); } /** @@ -106,7 +108,7 @@ public void requiredExplicit(BodyModel body) { /** * The requiredImplicit operation. * - * @param bodyModel The bodyModel parameter. + * @param name The name parameter. * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -116,9 +118,11 @@ public void requiredExplicit(BodyModel body) { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void requiredImplicit(BodyModel bodyModel) { + public void requiredImplicit(String name) { // Generated convenience method for requiredImplicitWithResponse RequestOptions requestOptions = new RequestOptions(); - requiredImplicitWithResponse(BinaryData.fromObject(bodyModel), requestOptions).getValue(); + RequiredImplicitRequest requiredImplicitRequestObj = new RequiredImplicitRequest(name); + BinaryData requiredImplicitRequest = BinaryData.fromObject(requiredImplicitRequestObj); + requiredImplicitWithResponse(requiredImplicitRequest, requestOptions).getValue(); } } diff --git a/typespec-tests/src/main/java/com/parameters/bodyoptionality/implementation/BodyOptionalityClientImpl.java b/typespec-tests/src/main/java/com/parameters/bodyoptionality/implementation/BodyOptionalityClientImpl.java index ea96a36d13..9e11573ccc 100644 --- a/typespec-tests/src/main/java/com/parameters/bodyoptionality/implementation/BodyOptionalityClientImpl.java +++ b/typespec-tests/src/main/java/com/parameters/bodyoptionality/implementation/BodyOptionalityClientImpl.java @@ -145,7 +145,8 @@ Response requiredExplicitSync(@HeaderParam("accept") String accept, @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) Mono> requiredImplicit(@HeaderParam("accept") String accept, - @BodyParam("application/json") BinaryData bodyModel, RequestOptions requestOptions, Context context); + @BodyParam("application/json") BinaryData requiredImplicitRequest, RequestOptions requestOptions, + Context context); @Post("/parameters/body-optionality/required-implicit") @ExpectedResponses({ 204 }) @@ -154,7 +155,8 @@ Mono> requiredImplicit(@HeaderParam("accept") String accept, @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) Response requiredImplicitSync(@HeaderParam("accept") String accept, - @BodyParam("application/json") BinaryData bodyModel, RequestOptions requestOptions, Context context); + @BodyParam("application/json") BinaryData requiredImplicitRequest, RequestOptions requestOptions, + Context context); } /** @@ -215,7 +217,7 @@ public Response requiredExplicitWithResponse(BinaryData body, RequestOptio * } * } * - * @param bodyModel The bodyModel parameter. + * @param requiredImplicitRequest The requiredImplicitRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -224,9 +226,11 @@ public Response requiredExplicitWithResponse(BinaryData body, RequestOptio * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> requiredImplicitWithResponseAsync(BinaryData bodyModel, RequestOptions requestOptions) { + public Mono> requiredImplicitWithResponseAsync(BinaryData requiredImplicitRequest, + RequestOptions requestOptions) { final String accept = "application/json"; - return FluxUtil.withContext(context -> service.requiredImplicit(accept, bodyModel, requestOptions, context)); + return FluxUtil + .withContext(context -> service.requiredImplicit(accept, requiredImplicitRequest, requestOptions, context)); } /** @@ -239,7 +243,7 @@ public Mono> requiredImplicitWithResponseAsync(BinaryData bodyMod * } * } * - * @param bodyModel The bodyModel parameter. + * @param requiredImplicitRequest The requiredImplicitRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -248,8 +252,9 @@ public Mono> requiredImplicitWithResponseAsync(BinaryData bodyMod * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response requiredImplicitWithResponse(BinaryData bodyModel, RequestOptions requestOptions) { + public Response requiredImplicitWithResponse(BinaryData requiredImplicitRequest, + RequestOptions requestOptions) { final String accept = "application/json"; - return service.requiredImplicitSync(accept, bodyModel, requestOptions, Context.NONE); + return service.requiredImplicitSync(accept, requiredImplicitRequest, requestOptions, Context.NONE); } } diff --git a/typespec-tests/src/main/java/com/parameters/bodyoptionality/implementation/models/RequiredImplicitRequest.java b/typespec-tests/src/main/java/com/parameters/bodyoptionality/implementation/models/RequiredImplicitRequest.java new file mode 100644 index 0000000000..ede65f22dd --- /dev/null +++ b/typespec-tests/src/main/java/com/parameters/bodyoptionality/implementation/models/RequiredImplicitRequest.java @@ -0,0 +1,83 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.parameters.bodyoptionality.implementation.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The RequiredImplicitRequest model. + */ +@Immutable +public final class RequiredImplicitRequest implements JsonSerializable { + /* + * The name property. + */ + @Generated + private final String name; + + /** + * Creates an instance of RequiredImplicitRequest class. + * + * @param name the name value to set. + */ + @Generated + public RequiredImplicitRequest(String name) { + this.name = name; + } + + /** + * Get the name property: The name property. + * + * @return the name value. + */ + @Generated + public String getName() { + return this.name; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("name", this.name); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RequiredImplicitRequest from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RequiredImplicitRequest if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the RequiredImplicitRequest. + */ + @Generated + public static RequiredImplicitRequest fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String name = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("name".equals(fieldName)) { + name = reader.getString(); + } else { + reader.skipChildren(); + } + } + return new RequiredImplicitRequest(name); + }); + } +} diff --git a/typespec-tests/src/main/java/com/parameters/bodyoptionality/implementation/models/package-info.java b/typespec-tests/src/main/java/com/parameters/bodyoptionality/implementation/models/package-info.java new file mode 100644 index 0000000000..5c9f425dcb --- /dev/null +++ b/typespec-tests/src/main/java/com/parameters/bodyoptionality/implementation/models/package-info.java @@ -0,0 +1,11 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +/** + * + * Package containing the data models for BodyOptionality. + * Test describing optionality of the request body. + * + */ +package com.parameters.bodyoptionality.implementation.models; diff --git a/typespec-tests/src/main/java/com/parameters/spread/AliasAsyncClient.java b/typespec-tests/src/main/java/com/parameters/spread/AliasAsyncClient.java index 1bc86e295c..40d90760ce 100644 --- a/typespec-tests/src/main/java/com/parameters/spread/AliasAsyncClient.java +++ b/typespec-tests/src/main/java/com/parameters/spread/AliasAsyncClient.java @@ -17,7 +17,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.FluxUtil; import com.parameters.spread.implementation.AliasImpl; -import com.parameters.spread.implementation.models.SpreadAsRequestBodyRequest; +import com.parameters.spread.implementation.models.SpreadAsRequestBodyRequest1; import com.parameters.spread.implementation.models.SpreadAsRequestParameterRequest; import com.parameters.spread.implementation.models.SpreadWithMultipleParametersRequest; import com.parameters.spread.models.SpreadWithMultipleParametersOptions; @@ -144,7 +144,7 @@ public Mono> spreadWithMultipleParametersWithResponse(String id, public Mono spreadAsRequestBody(String name) { // Generated convenience method for spreadAsRequestBodyWithResponse RequestOptions requestOptions = new RequestOptions(); - SpreadAsRequestBodyRequest spreadAsRequestBodyRequestObj = new SpreadAsRequestBodyRequest(name); + SpreadAsRequestBodyRequest1 spreadAsRequestBodyRequestObj = new SpreadAsRequestBodyRequest1(name); BinaryData spreadAsRequestBodyRequest = BinaryData.fromObject(spreadAsRequestBodyRequestObj); return spreadAsRequestBodyWithResponse(spreadAsRequestBodyRequest, requestOptions).flatMap(FluxUtil::toMono); } diff --git a/typespec-tests/src/main/java/com/parameters/spread/AliasClient.java b/typespec-tests/src/main/java/com/parameters/spread/AliasClient.java index e0e081738a..ea05094c51 100644 --- a/typespec-tests/src/main/java/com/parameters/spread/AliasClient.java +++ b/typespec-tests/src/main/java/com/parameters/spread/AliasClient.java @@ -16,7 +16,7 @@ import com.azure.core.http.rest.Response; import com.azure.core.util.BinaryData; import com.parameters.spread.implementation.AliasImpl; -import com.parameters.spread.implementation.models.SpreadAsRequestBodyRequest; +import com.parameters.spread.implementation.models.SpreadAsRequestBodyRequest1; import com.parameters.spread.implementation.models.SpreadAsRequestParameterRequest; import com.parameters.spread.implementation.models.SpreadWithMultipleParametersRequest; import com.parameters.spread.models.SpreadWithMultipleParametersOptions; @@ -141,7 +141,7 @@ public Response spreadWithMultipleParametersWithResponse(String id, String public void spreadAsRequestBody(String name) { // Generated convenience method for spreadAsRequestBodyWithResponse RequestOptions requestOptions = new RequestOptions(); - SpreadAsRequestBodyRequest spreadAsRequestBodyRequestObj = new SpreadAsRequestBodyRequest(name); + SpreadAsRequestBodyRequest1 spreadAsRequestBodyRequestObj = new SpreadAsRequestBodyRequest1(name); BinaryData spreadAsRequestBodyRequest = BinaryData.fromObject(spreadAsRequestBodyRequestObj); spreadAsRequestBodyWithResponse(spreadAsRequestBodyRequest, requestOptions).getValue(); } diff --git a/typespec-tests/src/main/java/com/parameters/spread/ModelAsyncClient.java b/typespec-tests/src/main/java/com/parameters/spread/ModelAsyncClient.java index 5d560ed155..d1f6411eb9 100644 --- a/typespec-tests/src/main/java/com/parameters/spread/ModelAsyncClient.java +++ b/typespec-tests/src/main/java/com/parameters/spread/ModelAsyncClient.java @@ -17,8 +17,9 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.FluxUtil; import com.parameters.spread.implementation.ModelsImpl; +import com.parameters.spread.implementation.models.SpreadAsRequestBodyRequest; +import com.parameters.spread.implementation.models.SpreadCompositeRequestMixRequest; import com.parameters.spread.models.BodyParameter; -import com.parameters.spread.models.CompositeRequestMix; import reactor.core.publisher.Mono; /** @@ -49,7 +50,7 @@ public final class ModelAsyncClient { * } * } * - * @param bodyParameter This is a simple model. + * @param spreadAsRequestBodyRequest1 The spreadAsRequestBodyRequest1 parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -59,9 +60,9 @@ public final class ModelAsyncClient { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> spreadAsRequestBodyWithResponse(BinaryData bodyParameter, + public Mono> spreadAsRequestBodyWithResponse(BinaryData spreadAsRequestBodyRequest1, RequestOptions requestOptions) { - return this.serviceClient.spreadAsRequestBodyWithResponseAsync(bodyParameter, requestOptions); + return this.serviceClient.spreadAsRequestBodyWithResponseAsync(spreadAsRequestBodyRequest1, requestOptions); } /** @@ -147,7 +148,7 @@ public Mono> spreadCompositeRequestWithResponse(String name, Stri * * @param name The name parameter. * @param testHeader The testHeader parameter. - * @param compositeRequestMix This is a model with non-body http request decorator. + * @param spreadCompositeRequestMixRequest The spreadCompositeRequestMixRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -158,15 +159,15 @@ public Mono> spreadCompositeRequestWithResponse(String name, Stri @Generated @ServiceMethod(returns = ReturnType.SINGLE) public Mono> spreadCompositeRequestMixWithResponse(String name, String testHeader, - BinaryData compositeRequestMix, RequestOptions requestOptions) { - return this.serviceClient.spreadCompositeRequestMixWithResponseAsync(name, testHeader, compositeRequestMix, - requestOptions); + BinaryData spreadCompositeRequestMixRequest, RequestOptions requestOptions) { + return this.serviceClient.spreadCompositeRequestMixWithResponseAsync(name, testHeader, + spreadCompositeRequestMixRequest, requestOptions); } /** * The spreadAsRequestBody operation. * - * @param bodyParameter This is a simple model. + * @param name The name parameter. * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -177,11 +178,12 @@ public Mono> spreadCompositeRequestMixWithResponse(String name, S */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono spreadAsRequestBody(BodyParameter bodyParameter) { + public Mono spreadAsRequestBody(String name) { // Generated convenience method for spreadAsRequestBodyWithResponse RequestOptions requestOptions = new RequestOptions(); - return spreadAsRequestBodyWithResponse(BinaryData.fromObject(bodyParameter), requestOptions) - .flatMap(FluxUtil::toMono); + SpreadAsRequestBodyRequest spreadAsRequestBodyRequest1Obj = new SpreadAsRequestBodyRequest(name); + BinaryData spreadAsRequestBodyRequest1 = BinaryData.fromObject(spreadAsRequestBodyRequest1Obj); + return spreadAsRequestBodyWithResponse(spreadAsRequestBodyRequest1, requestOptions).flatMap(FluxUtil::toMono); } /** @@ -255,7 +257,7 @@ public Mono spreadCompositeRequest(String name, String testHeader, BodyPar * * @param name The name parameter. * @param testHeader The testHeader parameter. - * @param compositeRequestMix This is a model with non-body http request decorator. + * @param prop The prop parameter. * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -266,11 +268,13 @@ public Mono spreadCompositeRequest(String name, String testHeader, BodyPar */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono spreadCompositeRequestMix(String name, String testHeader, - CompositeRequestMix compositeRequestMix) { + public Mono spreadCompositeRequestMix(String name, String testHeader, String prop) { // Generated convenience method for spreadCompositeRequestMixWithResponse RequestOptions requestOptions = new RequestOptions(); - return spreadCompositeRequestMixWithResponse(name, testHeader, BinaryData.fromObject(compositeRequestMix), - requestOptions).flatMap(FluxUtil::toMono); + SpreadCompositeRequestMixRequest spreadCompositeRequestMixRequestObj + = new SpreadCompositeRequestMixRequest(prop); + BinaryData spreadCompositeRequestMixRequest = BinaryData.fromObject(spreadCompositeRequestMixRequestObj); + return spreadCompositeRequestMixWithResponse(name, testHeader, spreadCompositeRequestMixRequest, requestOptions) + .flatMap(FluxUtil::toMono); } } diff --git a/typespec-tests/src/main/java/com/parameters/spread/ModelClient.java b/typespec-tests/src/main/java/com/parameters/spread/ModelClient.java index 162a7ae04b..58eb3be14e 100644 --- a/typespec-tests/src/main/java/com/parameters/spread/ModelClient.java +++ b/typespec-tests/src/main/java/com/parameters/spread/ModelClient.java @@ -16,8 +16,9 @@ import com.azure.core.http.rest.Response; import com.azure.core.util.BinaryData; import com.parameters.spread.implementation.ModelsImpl; +import com.parameters.spread.implementation.models.SpreadAsRequestBodyRequest; +import com.parameters.spread.implementation.models.SpreadCompositeRequestMixRequest; import com.parameters.spread.models.BodyParameter; -import com.parameters.spread.models.CompositeRequestMix; /** * Initializes a new instance of the synchronous SpreadClient type. @@ -47,7 +48,7 @@ public final class ModelClient { * } * } * - * @param bodyParameter This is a simple model. + * @param spreadAsRequestBodyRequest1 The spreadAsRequestBodyRequest1 parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -57,8 +58,9 @@ public final class ModelClient { */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Response spreadAsRequestBodyWithResponse(BinaryData bodyParameter, RequestOptions requestOptions) { - return this.serviceClient.spreadAsRequestBodyWithResponse(bodyParameter, requestOptions); + public Response spreadAsRequestBodyWithResponse(BinaryData spreadAsRequestBodyRequest1, + RequestOptions requestOptions) { + return this.serviceClient.spreadAsRequestBodyWithResponse(spreadAsRequestBodyRequest1, requestOptions); } /** @@ -144,7 +146,7 @@ public Response spreadCompositeRequestWithResponse(String name, String tes * * @param name The name parameter. * @param testHeader The testHeader parameter. - * @param compositeRequestMix This is a model with non-body http request decorator. + * @param spreadCompositeRequestMixRequest The spreadCompositeRequestMixRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -155,15 +157,15 @@ public Response spreadCompositeRequestWithResponse(String name, String tes @Generated @ServiceMethod(returns = ReturnType.SINGLE) public Response spreadCompositeRequestMixWithResponse(String name, String testHeader, - BinaryData compositeRequestMix, RequestOptions requestOptions) { - return this.serviceClient.spreadCompositeRequestMixWithResponse(name, testHeader, compositeRequestMix, - requestOptions); + BinaryData spreadCompositeRequestMixRequest, RequestOptions requestOptions) { + return this.serviceClient.spreadCompositeRequestMixWithResponse(name, testHeader, + spreadCompositeRequestMixRequest, requestOptions); } /** * The spreadAsRequestBody operation. * - * @param bodyParameter This is a simple model. + * @param name The name parameter. * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -173,10 +175,12 @@ public Response spreadCompositeRequestMixWithResponse(String name, String */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void spreadAsRequestBody(BodyParameter bodyParameter) { + public void spreadAsRequestBody(String name) { // Generated convenience method for spreadAsRequestBodyWithResponse RequestOptions requestOptions = new RequestOptions(); - spreadAsRequestBodyWithResponse(BinaryData.fromObject(bodyParameter), requestOptions).getValue(); + SpreadAsRequestBodyRequest spreadAsRequestBodyRequest1Obj = new SpreadAsRequestBodyRequest(name); + BinaryData spreadAsRequestBodyRequest1 = BinaryData.fromObject(spreadAsRequestBodyRequest1Obj); + spreadAsRequestBodyWithResponse(spreadAsRequestBodyRequest1, requestOptions).getValue(); } /** @@ -244,7 +248,7 @@ public void spreadCompositeRequest(String name, String testHeader, BodyParameter * * @param name The name parameter. * @param testHeader The testHeader parameter. - * @param compositeRequestMix This is a model with non-body http request decorator. + * @param prop The prop parameter. * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -254,10 +258,13 @@ public void spreadCompositeRequest(String name, String testHeader, BodyParameter */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void spreadCompositeRequestMix(String name, String testHeader, CompositeRequestMix compositeRequestMix) { + public void spreadCompositeRequestMix(String name, String testHeader, String prop) { // Generated convenience method for spreadCompositeRequestMixWithResponse RequestOptions requestOptions = new RequestOptions(); - spreadCompositeRequestMixWithResponse(name, testHeader, BinaryData.fromObject(compositeRequestMix), - requestOptions).getValue(); + SpreadCompositeRequestMixRequest spreadCompositeRequestMixRequestObj + = new SpreadCompositeRequestMixRequest(prop); + BinaryData spreadCompositeRequestMixRequest = BinaryData.fromObject(spreadCompositeRequestMixRequestObj); + spreadCompositeRequestMixWithResponse(name, testHeader, spreadCompositeRequestMixRequest, requestOptions) + .getValue(); } } diff --git a/typespec-tests/src/main/java/com/parameters/spread/implementation/ModelsImpl.java b/typespec-tests/src/main/java/com/parameters/spread/implementation/ModelsImpl.java index ba34bb436d..c56205230a 100644 --- a/typespec-tests/src/main/java/com/parameters/spread/implementation/ModelsImpl.java +++ b/typespec-tests/src/main/java/com/parameters/spread/implementation/ModelsImpl.java @@ -64,7 +64,8 @@ public interface ModelsService { @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) Mono> spreadAsRequestBody(@HeaderParam("accept") String accept, - @BodyParam("application/json") BinaryData bodyParameter, RequestOptions requestOptions, Context context); + @BodyParam("application/json") BinaryData spreadAsRequestBodyRequest1, RequestOptions requestOptions, + Context context); @Put("/parameters/spread/model/request-body") @ExpectedResponses({ 204 }) @@ -73,7 +74,8 @@ Mono> spreadAsRequestBody(@HeaderParam("accept") String accept, @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) @UnexpectedResponseExceptionType(HttpResponseException.class) Response spreadAsRequestBodySync(@HeaderParam("accept") String accept, - @BodyParam("application/json") BinaryData bodyParameter, RequestOptions requestOptions, Context context); + @BodyParam("application/json") BinaryData spreadAsRequestBodyRequest1, RequestOptions requestOptions, + Context context); @Put("/parameters/spread/model/composite-request-only-with-body") @ExpectedResponses({ 204 }) @@ -141,7 +143,7 @@ Response spreadCompositeRequestSync(@PathParam("name") String name, @UnexpectedResponseExceptionType(HttpResponseException.class) Mono> spreadCompositeRequestMix(@PathParam("name") String name, @HeaderParam("test-header") String testHeader, @HeaderParam("accept") String accept, - @BodyParam("application/json") BinaryData compositeRequestMix, RequestOptions requestOptions, + @BodyParam("application/json") BinaryData spreadCompositeRequestMixRequest, RequestOptions requestOptions, Context context); @Put("/parameters/spread/model/composite-request-mix/{name}") @@ -152,7 +154,7 @@ Mono> spreadCompositeRequestMix(@PathParam("name") String name, @UnexpectedResponseExceptionType(HttpResponseException.class) Response spreadCompositeRequestMixSync(@PathParam("name") String name, @HeaderParam("test-header") String testHeader, @HeaderParam("accept") String accept, - @BodyParam("application/json") BinaryData compositeRequestMix, RequestOptions requestOptions, + @BodyParam("application/json") BinaryData spreadCompositeRequestMixRequest, RequestOptions requestOptions, Context context); } @@ -166,7 +168,7 @@ Response spreadCompositeRequestMixSync(@PathParam("name") String name, * } * } * - * @param bodyParameter This is a simple model. + * @param spreadAsRequestBodyRequest1 The spreadAsRequestBodyRequest1 parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -175,11 +177,11 @@ Response spreadCompositeRequestMixSync(@PathParam("name") String name, * @return the {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> spreadAsRequestBodyWithResponseAsync(BinaryData bodyParameter, + public Mono> spreadAsRequestBodyWithResponseAsync(BinaryData spreadAsRequestBodyRequest1, RequestOptions requestOptions) { final String accept = "application/json"; - return FluxUtil - .withContext(context -> service.spreadAsRequestBody(accept, bodyParameter, requestOptions, context)); + return FluxUtil.withContext( + context -> service.spreadAsRequestBody(accept, spreadAsRequestBodyRequest1, requestOptions, context)); } /** @@ -192,7 +194,7 @@ public Mono> spreadAsRequestBodyWithResponseAsync(BinaryData body * } * } * - * @param bodyParameter This is a simple model. + * @param spreadAsRequestBodyRequest1 The spreadAsRequestBodyRequest1 parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -201,9 +203,10 @@ public Mono> spreadAsRequestBodyWithResponseAsync(BinaryData body * @return the {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response spreadAsRequestBodyWithResponse(BinaryData bodyParameter, RequestOptions requestOptions) { + public Response spreadAsRequestBodyWithResponse(BinaryData spreadAsRequestBodyRequest1, + RequestOptions requestOptions) { final String accept = "application/json"; - return service.spreadAsRequestBodySync(accept, bodyParameter, requestOptions, Context.NONE); + return service.spreadAsRequestBodySync(accept, spreadAsRequestBodyRequest1, requestOptions, Context.NONE); } /** @@ -363,7 +366,7 @@ public Response spreadCompositeRequestWithResponse(String name, String tes * * @param name The name parameter. * @param testHeader The testHeader parameter. - * @param compositeRequestMix This is a model with non-body http request decorator. + * @param spreadCompositeRequestMixRequest The spreadCompositeRequestMixRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -373,10 +376,10 @@ public Response spreadCompositeRequestWithResponse(String name, String tes */ @ServiceMethod(returns = ReturnType.SINGLE) public Mono> spreadCompositeRequestMixWithResponseAsync(String name, String testHeader, - BinaryData compositeRequestMix, RequestOptions requestOptions) { + BinaryData spreadCompositeRequestMixRequest, RequestOptions requestOptions) { final String accept = "application/json"; return FluxUtil.withContext(context -> service.spreadCompositeRequestMix(name, testHeader, accept, - compositeRequestMix, requestOptions, context)); + spreadCompositeRequestMixRequest, requestOptions, context)); } /** @@ -391,7 +394,7 @@ public Mono> spreadCompositeRequestMixWithResponseAsync(String na * * @param name The name parameter. * @param testHeader The testHeader parameter. - * @param compositeRequestMix This is a model with non-body http request decorator. + * @param spreadCompositeRequestMixRequest The spreadCompositeRequestMixRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -401,9 +404,9 @@ public Mono> spreadCompositeRequestMixWithResponseAsync(String na */ @ServiceMethod(returns = ReturnType.SINGLE) public Response spreadCompositeRequestMixWithResponse(String name, String testHeader, - BinaryData compositeRequestMix, RequestOptions requestOptions) { + BinaryData spreadCompositeRequestMixRequest, RequestOptions requestOptions) { final String accept = "application/json"; - return service.spreadCompositeRequestMixSync(name, testHeader, accept, compositeRequestMix, requestOptions, - Context.NONE); + return service.spreadCompositeRequestMixSync(name, testHeader, accept, spreadCompositeRequestMixRequest, + requestOptions, Context.NONE); } } diff --git a/typespec-tests/src/main/java/com/parameters/spread/implementation/models/SpreadAsRequestBodyRequest1.java b/typespec-tests/src/main/java/com/parameters/spread/implementation/models/SpreadAsRequestBodyRequest1.java new file mode 100644 index 0000000000..6117089542 --- /dev/null +++ b/typespec-tests/src/main/java/com/parameters/spread/implementation/models/SpreadAsRequestBodyRequest1.java @@ -0,0 +1,83 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.parameters.spread.implementation.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The SpreadAsRequestBodyRequest1 model. + */ +@Immutable +public final class SpreadAsRequestBodyRequest1 implements JsonSerializable { + /* + * The name property. + */ + @Generated + private final String name; + + /** + * Creates an instance of SpreadAsRequestBodyRequest1 class. + * + * @param name the name value to set. + */ + @Generated + public SpreadAsRequestBodyRequest1(String name) { + this.name = name; + } + + /** + * Get the name property: The name property. + * + * @return the name value. + */ + @Generated + public String getName() { + return this.name; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("name", this.name); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of SpreadAsRequestBodyRequest1 from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of SpreadAsRequestBodyRequest1 if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the SpreadAsRequestBodyRequest1. + */ + @Generated + public static SpreadAsRequestBodyRequest1 fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String name = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("name".equals(fieldName)) { + name = reader.getString(); + } else { + reader.skipChildren(); + } + } + return new SpreadAsRequestBodyRequest1(name); + }); + } +} diff --git a/typespec-tests/src/main/java/com/parameters/spread/models/CompositeRequestMix.java b/typespec-tests/src/main/java/com/parameters/spread/implementation/models/SpreadCompositeRequestMixRequest.java similarity index 69% rename from typespec-tests/src/main/java/com/parameters/spread/models/CompositeRequestMix.java rename to typespec-tests/src/main/java/com/parameters/spread/implementation/models/SpreadCompositeRequestMixRequest.java index 8c2cce8c38..c893c0dd01 100644 --- a/typespec-tests/src/main/java/com/parameters/spread/models/CompositeRequestMix.java +++ b/typespec-tests/src/main/java/com/parameters/spread/implementation/models/SpreadCompositeRequestMixRequest.java @@ -2,7 +2,7 @@ // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. -package com.parameters.spread.models; +package com.parameters.spread.implementation.models; import com.azure.core.annotation.Generated; import com.azure.core.annotation.Immutable; @@ -13,10 +13,10 @@ import java.io.IOException; /** - * This is a model with non-body http request decorator. + * The SpreadCompositeRequestMixRequest model. */ @Immutable -public final class CompositeRequestMix implements JsonSerializable { +public final class SpreadCompositeRequestMixRequest implements JsonSerializable { /* * The prop property. */ @@ -24,12 +24,12 @@ public final class CompositeRequestMix implements JsonSerializable { String prop = null; while (reader.nextToken() != JsonToken.END_OBJECT) { @@ -77,7 +77,7 @@ public static CompositeRequestMix fromJson(JsonReader jsonReader) throws IOExcep reader.skipChildren(); } } - return new CompositeRequestMix(prop); + return new SpreadCompositeRequestMixRequest(prop); }); } } diff --git a/typespec-tests/src/test/java/com/client/naming/NamingTests.java b/typespec-tests/src/test/java/com/client/naming/NamingTests.java index 5ebb4b78c5..6d6c83a638 100644 --- a/typespec-tests/src/test/java/com/client/naming/NamingTests.java +++ b/typespec-tests/src/test/java/com/client/naming/NamingTests.java @@ -17,7 +17,7 @@ public class NamingTests { private final NamingClient client = new NamingClientBuilder().buildClient(); // client name should be "ClientModel", currently a bug in TCGC - private final ModelClient modelClient = new NamingClientBuilder().buildModelClient(); + private final ClientModelClient modelClient = new NamingClientBuilder().buildClientModelClient(); private final UnionEnumClient enumClient = new NamingClientBuilder().buildUnionEnumClient(); diff --git a/typespec-tests/src/test/java/com/client/naming/generated/NamingClientTestBase.java b/typespec-tests/src/test/java/com/client/naming/generated/NamingClientTestBase.java index 755c1c3625..966f8e88d1 100644 --- a/typespec-tests/src/test/java/com/client/naming/generated/NamingClientTestBase.java +++ b/typespec-tests/src/test/java/com/client/naming/generated/NamingClientTestBase.java @@ -13,7 +13,7 @@ import com.azure.core.http.policy.HttpLogOptions; import com.azure.core.test.TestMode; import com.azure.core.test.TestProxyTestBase; -import com.client.naming.ModelClient; +import com.client.naming.ClientModelClient; import com.client.naming.NamingClient; import com.client.naming.NamingClientBuilder; import com.client.naming.UnionEnumClient; @@ -21,7 +21,7 @@ class NamingClientTestBase extends TestProxyTestBase { protected NamingClient namingClient; - protected ModelClient modelClient; + protected ClientModelClient clientModelClient; protected UnionEnumClient unionEnumClient; @@ -36,14 +36,14 @@ protected void beforeTest() { } namingClient = namingClientbuilder.buildClient(); - NamingClientBuilder modelClientbuilder = new NamingClientBuilder().httpClient(HttpClient.createDefault()) + NamingClientBuilder clientModelClientbuilder = new NamingClientBuilder().httpClient(HttpClient.createDefault()) .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC)); if (getTestMode() == TestMode.PLAYBACK) { - modelClientbuilder.httpClient(interceptorManager.getPlaybackClient()); + clientModelClientbuilder.httpClient(interceptorManager.getPlaybackClient()); } else if (getTestMode() == TestMode.RECORD) { - modelClientbuilder.addPolicy(interceptorManager.getRecordPolicy()); + clientModelClientbuilder.addPolicy(interceptorManager.getRecordPolicy()); } - modelClient = modelClientbuilder.buildModelClient(); + clientModelClient = clientModelClientbuilder.buildClientModelClient(); NamingClientBuilder unionEnumClientbuilder = new NamingClientBuilder().httpClient(HttpClient.createDefault()) .httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BASIC)); diff --git a/typespec-tests/src/test/java/com/parameters/bodyoptionality/BodyTests.java b/typespec-tests/src/test/java/com/parameters/bodyoptionality/BodyTests.java index fe4a96053d..dcb891fbc7 100644 --- a/typespec-tests/src/test/java/com/parameters/bodyoptionality/BodyTests.java +++ b/typespec-tests/src/test/java/com/parameters/bodyoptionality/BodyTests.java @@ -48,7 +48,7 @@ private void validateContentTypeHeader(boolean exists) { public void testBodyOptionality() { client.requiredExplicit(new BodyModel("foo")); - client.requiredImplicit(new BodyModel("foo")); + client.requiredImplicit("foo"); optionalClient.set(new BodyModel("foo")); validationPolicy.validateContentTypeHeader(true); diff --git a/typespec-tests/src/test/java/com/parameters/spread/SpreadTests.java b/typespec-tests/src/test/java/com/parameters/spread/SpreadTests.java index e3b82ee9d5..e2472fd7ab 100644 --- a/typespec-tests/src/test/java/com/parameters/spread/SpreadTests.java +++ b/typespec-tests/src/test/java/com/parameters/spread/SpreadTests.java @@ -4,7 +4,6 @@ package com.parameters.spread; import com.parameters.spread.models.BodyParameter; -import com.parameters.spread.models.CompositeRequestMix; import com.parameters.spread.models.SpreadWithMultipleParametersOptions; import org.junit.jupiter.api.Test; @@ -28,10 +27,10 @@ public void testSpread() { @Test public void testModel() { - modelClient.spreadAsRequestBody(new BodyParameter("foo")); + modelClient.spreadAsRequestBody("foo"); modelClient.spreadCompositeRequestOnlyWithBody(new BodyParameter("foo")); modelClient.spreadCompositeRequestWithoutBody("foo", "bar"); modelClient.spreadCompositeRequest("foo", "bar", new BodyParameter("foo")); - modelClient.spreadCompositeRequestMix("foo", "bar", new CompositeRequestMix("foo")); + modelClient.spreadCompositeRequestMix("foo", "bar", "foo"); } }