# Change Log - @autorest/modelerfour

This log was last generated on Thu, 16 Nov 2023 16:00:04 GMT and should not be manually modified.

## 4.27.0
Thu, 16 Nov 2023 16:00:04 GMT

### Minor changes

- Upgrade dependencies

## 4.26.2
Fri, 26 May 2023 14:12:36 GMT

### Patches

- Map `rfc7231` to `rfc1123` for date-time formats
- Bypass autocorrect to type: object in some cases

## 4.26.1
Thu, 13 Apr 2023 04:20:09 GMT

### Patches

- Fix issue with multipart request body could cause circular reference

## 4.26.0
Wed, 07 Dec 2022 22:24:34 GMT

### Minor changes

- Support final-state-schema lro option

### Patches

- Update dependencies

## 4.25.0
Thu, 03 Nov 2022 18:44:18 GMT

### Minor changes

- Add support for specifying `api-version` parameter in the server variables

## 4.24.3
Thu, 22 Sep 2022 15:51:02 GMT

### Patches

- Fix duplicate $host when using {nextLink} param

## 4.24.2
Fri, 12 Aug 2022 19:53:22 GMT

### Patches

- Bump @autorest/codemodel with missing `ArmIdSchema` from yaml schema

## 4.24.1
Mon, 08 Aug 2022 16:48:55 GMT

### Patches

- Fix `format: arm-id` wasn't doing anything

## 4.24.0
Tue, 19 Jul 2022 15:09:55 GMT

### Minor changes

- Added support for `format:arm-id` creating a ]`ArmIdSchema` to represent Azure Resource Manager Resource Identifiers
- Added: Include `externalDocs` information in codemodel
- Treat `format: uri` as `format: url`
- Errors emitted in 'modelerfour' step  will have sourcemap.
- Improved 'name is empty' error to contain more information.

## 4.23.6
Fri, 27 May 2022 15:55:11 GMT

### Patches

- Fix issue with having `application/json` and `application/x-www-form-urlencoded` content type for the request body. Json now takes precedence

## 4.23.5
Wed, 18 May 2022 02:34:13 GMT

### Patches

- Fix name bgeneration for contenttype and accept parameters only incrementing to 1

## 4.23.4
Mon, 09 May 2022 15:29:40 GMT

### Patches

- Fix `x-ms-client-flatten` defined at the root of the model would always flatten that model when referemced in properties

## 4.23.3
Tue, 03 May 2022 20:20:34 GMT

### Patches

- **Fix** issue when using unknown media types with a known one. Ignore those.

## 4.23.2
Thu, 07 Apr 2022 20:47:30 GMT

### Patches

- Modelerfour set correct known media type when `application/json` with `type: string`

## 4.23.1
Mon, 21 Mar 2022 15:38:03 GMT

### Patches

- Fix: Request body with `type: string, format: bytes|duration|date-time` being treated as string instead of base64 json

## 4.23.0
Tue, 15 Mar 2022 16:00:38 GMT

### Minor changes

- Add support for setting original `operationId` on operation
- **Update** to the logic for resolving operation requests. Group request by body types instead of content-types to prevent overload issues"
- Generalize security scheme by allowing AAD Token 
- Added support for special headers: headers automatically handled by the generator
- Uptake change in typing in openapi library

## 4.22.3
Tue, 07 Dec 2021 16:58:46 GMT

### Patches

- **fix** discriminator value added to top level if it has some allOf

## 4.22.2
Mon, 06 Dec 2021 20:16:04 GMT

### Patches

- **Fix** Flattened models with duplicate properties using `AutoGenerated` name instead of flattened path based

## 4.22.1
Mon, 22 Nov 2021 21:55:51 GMT

_Version update only_

## 4.22.0
Fri, 19 Nov 2021 04:23:42 GMT

### Minor changes

- Uptake change to extension-base to provide sourcemap support for errors
- **Added** Support for overriding shared param description

### Patches

- **Fix** issue with properties causing name conflict when consecutive words are deduplicated

## 4.21.4
Mon, 04 Oct 2021 18:15:27 GMT

### Patches

- **Fix** Flatten nullable property doesn't propagate.
- **Internal** remove use of string and array extension method `.last`.

## 4.21.3
Wed, 29 Sep 2021 15:39:07 GMT

### Patches

- **Fix** Unknown format for number schema should not be an error.

## 4.21.2
Wed, 22 Sep 2021 15:23:39 GMT

### Patches

- **Fix** log error when using parameter with `content.<mediaType>` as not being supported

## 4.21.1
Thu, 16 Sep 2021 18:49:17 GMT

### Patches

- **Add** validation when schema use allOf referencing a schema with a different type
- **Tweak** Better error message when enum has an empty value

## 4.21.0
Wed, 08 Sep 2021 15:39:22 GMT

### Minor changes

- **Internal** Remove @azure-tools/linq library"
- **Perf** Modified yaml dump improving serialization

### Patches

- **Fix** Dictionaries don't get xml serialization information passed into codemodel

## 4.20.0
Mon, 19 Jul 2021 15:15:41 GMT

### Minor changes

- Added support for anonymous security scheme
- **Added** New option to make Content-Type extensible
- **Added** Configuration to ignore certain header names from being added to the model parameters lists
- **Change** Single-value enums are extensible by default and will not generate a constant 
- Drop support for node 10
- **Perf** Flattener major performance improvement for large specs

### Patches

- **Fix** Ciruclar reference issue when using allOf parent referencing back to child in properties
- **Improve** Duplicate schema resolution

## 4.19.3
Thu, 03 Jun 2021 22:37:55 GMT

### Patches

- **Fix** Allow empty paths in operation

## 4.19.2
Thu, 20 May 2021 16:41:13 GMT

### Patches

- **Immproved** error message for duplicate operations

## 4.19.1
Tue, 04 May 2021 18:18:45 GMT

### Patches

- **Fix** Using multiple security layers(`AND`) now produce warning instead of error.

## 4.19.0
Tue, 27 Apr 2021 17:48:43 GMT

### Minor changes

- **Added** Distinction between anything and anyobject
- **Added** Support for openapi deprecation
- **Added** Support known set of security scheme

### Patches

- **Perf** Major performance improvment to duplicate schema finder

## 4.18.4
Mon, 19 Apr 2021 21:06:54 GMT

### Patches

- **Fix** Enum defined just with allOf of other enum
- **Typo** Ambigious -> Ambiguous 

## 4.18.3
Tue, 13 Apr 2021 21:32:54 GMT

### Patches

- **Fix** Enum without type resulting in null values

## 4.18.2
Fri, 09 Apr 2021 19:53:22 GMT

### Patches

- **Fix** api-version-mode configuration not working if not auto

## 4.18.1
Thu, 01 Apr 2021 15:46:41 GMT

### Patches

- Bump @azure-tools/uri version to ~3.1.1
- **Cleanup** Migrated use of require -> es6 imports
- **Update** how binary request body are treated if the content-type is not binary: Group all binary body together to prevent multiple method overload with same parameter
- **Fix** Some unhandled promises

## 4.18.0
Tue, 16 Mar 2021 15:52:56 GMT

### Minor changes

- **Change** let single value enum parameters be able to be grouped.
- **Feature** Support using `allOf` in enum to reference a parent enum. All the parent choices will be flattened in the child enum

### Patches

- **Respect** OpenAPI3 discriminator mapping
- Bump dependencies versions

## 4.17.2
Fri, 05 Mar 2021 16:31:29 GMT

### Patches

- Allow server variables to provide a string format(url, uri, etc.)

## 4.17.1
Fri, 26 Feb 2021 21:50:13 GMT

### Patches

- **Fix** Don't add a duplicate Content-Type parameter if it is already provided in the spec
- Fix x-ms-header-collection-prefix injected dictionary not defined in the list of schemas

## 4.17.0
Fri, 19 Feb 2021 21:42:09 GMT

### Minor changes

- **Change** Body parmaeters for a `formData` body will be seperate parameters in the generated model instead of being grouped in a body object.

### Patches

- Change property redefinition error when changing type into a warning to allow polymorphism

## 4.16.2
Thu, 11 Feb 2021 18:03:07 GMT

### Patches

- **Internals** Update chalk dependency to ^4.1.0

## 4.16.1
Mon, 08 Feb 2021 23:06:15 GMT

### Patches

- Set `isInMultipart: true` for multipart parameters

## 4.16.0
Thu, 04 Feb 2021 19:05:18 GMT

### Minor changes

- Migrate bundling system from static-link to webpack

### Patches

- Fix the use of  circular dependencies in additionalProperties [PR #3819](https://github.com/Azure/autorest/pull/3819)
- Internal code linting fixes
- Internal: Move out test custom matchers to seperate package
- Rename @azure-tools/autorest-extension-base dependency to new @autorest/extension-base pkg

## 4.15.456
Thu, 28 Jan 2021 00:22:27 GMT

### Patches

- Fix static linking issue with modelerfour resulting in incompatible dependency.

## 4.15.455
Tue, 26 Jan 2021 21:36:02 GMT

### Patches

- Update modelerfour to use renamed package @azuretools/codemodel -> @autorest/codemodel.

## 4.15.x

### Patches

- **Fix** Missing description in responses. ([PR 370](https://github.com/Azure/autorest.modelerfour/pull/370))
- **Feature** Added new flag `always-create-accept-parameter` to enable/disable accept param auto generation. ([PR 366](https://github.com/Azure/autorest.modelerfour/pull/366))
- **Fix** Allow request with body being a file and `application/json` content-type. ([PR 363](https://github.com/Azure/autorest.modelerfour/pull/363))
- **Fix** Dictionaries of dictionaries not being modeled as such(`dict[str, object]` instead of `dict[str, dict[str, str]]`). ([PR 372](https://github.com/Azure/autorest.modelerfour/pull/372))
- **Fix** Issue with sibling models(Model just being a ref of another) causing circular dependency exception. ([PR 375](https://github.com/Azure/autorest.modelerfour/pull/375))
- **Fix** Issue with duplicates schemas names due to consequtive name duplicate removal. ([PR 374](https://github.com/Azure/autorest.modelerfour/pull/374))
- Schemas with `x-ms-enum`'s `modelAsString` set to `true` will now be represented as `ChoiceSchema` even with a single value.
- `Accept` headers are now automatically added to operations having responses with content types
- Added `always-seal-x-ms-enum` settings to always create `SealedChoiceSchema` when an `x-ms-enum` is encountered

## 4.14.x

### Patches

- added `exception` SchemaContext for `usage` when used as an exception response
- changed `output` SchemaContext for `usage` to no longer include exception response uses

## 4.13.x

### Patches

- add security info (checks to see if `input.components?.securitySchemes` has any content)
- sync version of m4 and perks/codemodel == 4.13.x
- adding quality prechecker step as a way to test the OAI document for quality before modelerfour runs.
- report duplicate parents via allOf as an error.
- added `modelerfour.lenient-model-deduplication` to cause schemas with duplicated names to be renamed with an `AutoGenerated` suffix.  Note that this is a *temporary* measuer that should only be used when Swaggers cannot be updated easily.  This option will be removed in a future version of Modeler Four.

## 4.12.x

### Patches

- updated CI to build packages
- any is in a category in schemas
- times is a new category in schemas (not populated yet, next build)
- polymorphic payloads are not flattened (when it's the class that declares the discriminator)
- readonly is pulled from the schema if it's there
- body parameters should have the required flag set correctly
- content-type is now a header parameter (wasn't set before)
- added `modelerfour.always-create-content-type-parameter` to always get the content type parameter even when there are only one option.
- add support for x-ms-api-version extension to force enabling/disabling parameter to be treated as an api-version parameter
- the checker plugin will now halt on errors (can be disabled by `modelerfour.additional-checks: false`)
- when an enum without type is presented, if the values are all strings, assume 'string'
- flatten parents first for consistency
- added choiceType for content-type schema

## 4.6.x

### Patches

- add additional checks for empty names, collisions
- fix errant processing on APString => Apstring 
- x-ms-client-name fixes on parameters
- added setting for `preserve-uppercase-max-length` to preserve uppercase words up to a certain length.

## 4.5.x

### Patches

- static linking libraries for stability
- processed all names in namer, styles can be set in config (see below):
- support overrides in namer 
- static linked dependency

## 4.4.x

### Patches

- parameter grouping 
- some namer changes 

## 4.3.x

### Patches

- flattening (model and payload) enabled.
- properties should respect x-ms-client-name (many fixes)
- global parameters should try to be in order of original spec
- filter out 'x-ms-original' from extensions
- add serializedName for host parameters
- make sure reused global parameter is added to method too
- processed values in constants/enums a bit better, support AnySchema for no type/format 
- support server variable parameters as method unless they have x-ms-parameter-location

## 4.2.75

### Patches

- add `style` to parameters to support collection format 
- `potential-breaking-change` Include common paramters from oai/path #68 (requires fix from autorest-core 3.0.6160+ ) 
- propogate extensions from server parameters (ie, x-ms-skip-url-encoding) #61
- `potential-breaking-change` make operation groups case insensitive. #59 
- `potential-breaking-change` sealedChoice/Choice selection was backwards ( was creating a sealedchoice schema for modelAsString:true and vice versa) #62 
- `potential-breaking-change` drop constant schema from response, use constantschema's valueType instead. #63
- `potential-breaking-change` fix body parameter marked as required when not marked so in spec. #64

## 4.1.60

### Patches

- query parameters should have a serializedName so that they don't rely on the cosmetic name property.

## 4.1.58

### Patches

- version bump, change your configuration to specify version `~4.1.0` or greater
  
  ``` 
  use-extension:
    "@autorest/modelerfour" : "~4.1.0" 
  ```
  - each Http operation (via `.protocol.http`) will now have a separate `path` and `uri` properties. 
  <br>Both are still templates, and will have parameters. 
  <br>The parameters for the `uri` property will have `in` set to `ParameterLocation.Uri`
  <br>The parameters for the `path` property will continue to have `in` set to `ParameterLocation.Path`

  
  - autorest-core recently added an option to aggressively deduplicate inline models (ie, ones without a name)
  and modeler-four based generator will have that enabled by default. (ie `deduplicate-inline-models: true`)
  <br>This may increase deduplication time on extremely large openapi models.

  - this package contains the initial code for the flattener plugin, however it is not yet enabled.

  - updated `@azure-tools/codemodel` package to `3.0.241`:
  <br>`uri` (required) was added to `HttpRequest`
  <br>`flattenedNames` (optional) was added to `Property` (in anticipation of supporting flattening)