[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","definitions":{"alias":{"type":"string","description":"domain names (optionally including subdomains) added to the account, or a string for a suffixed URL using .now.sh or a Custom Deployment Suffix"},"env":{"type":"object","description":"environment keys and values","additionalProperties":{"type":"string"}}},"description":"ZEIT Now project configuration file","id":"https://json.schemastore.org/now.json","properties":{"name":{"type":"string","description":"name for the deployment","maxLength":52},"version":{"enum":[1,2],"description":"the Now Platform version that the deployment should use and is known to work with","default":2},"alias":{"oneOf":[{"type":"array","maxItems":64,"items":{"$ref":"#/definitions/alias"}},{"$ref":"#/definitions/alias"}]},"scope":{"type":"string","description":"an ID or slug for teams, or an email address, username, or ID for users"},"env":{"$ref":"#/definitions/env","description":"environment variables passed to the invoked Serverless Functions"},"build":{"type":"object","properties":{"env":{"$ref":"#/definitions/env","description":"environment variables passed to the Build processes"}}},"builds":{"type":"array","description":"a list of build descriptions whose src references valid source files","items":{"type":"object","description":"build description","required":["src","use"],"properties":{"src":{"type":"string","description":"A glob expression or pathname. If more than one file is resolved, one build will be created per matched file. It can include `*` and `**`."},"use":{"type":"string","description":"A npm module to be installed by the build process. It can include a semver compatible version (e.g.: `@org/proj@1`)."},"config":{"type":"object","description":"An object including arbitrary metadata to be passed to the Builder."}}}},"routes":{"type":"array","description":"a list of route definitions","items":{"type":"object","description":"route definition","oneOf":[{"required":["src"]},{"required":["handle"]}],"properties":{"src":{"type":"string","description":"A PCRE-compatible regular expression that matches each incoming pathname (excluding querystring)."},"methods":{"type":"array","description":"A set of HTTP method types. If no method is provided, requests with any HTTP method will be a candidate for the route.","items":{"enum":["GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH"]}},"dest":{"type":"string","description":"A destination pathname or full URL, including querystring, with the ability to embed capture groups as $1, $2\u2026"},"headers":{"type":"object","description":"A set of headers to apply for responses.","additionalProperties":{"type":"string"}},"status":{"type":"integer","description":"A status code to respond with. Can be used in tandem with `Location:` header to implement redirects.","minimum":100,"maximum":599},"continue":{"type":"boolean","description":"A boolean to change matching behavior. If true, routing will continue even when the src is matched."},"handle":{"type":"string","enum":["filesystem"]}}}},"regions":{"type":"array","description":"the deployment regions of the Serverless Functions that get created as a result of the build steps","items":{"description":"region identifier","type":"string"}},"public":{"type":"boolean","description":"When set to true, both the source view and logs view will be publicly accessible (when the user is authenticated with ZEIT)."},"github":{"type":"object","description":"Git integration options","properties":{"enabled":{"type":"boolean","description":"When set to false, Now for GitHub will not deploy the given project regardless of the GitHub app being installed.","default":true},"autoAlias":{"type":"boolean","description":"When set to false, Now for GitHub will not apply the alias upon merge.","default":true},"silent":{"type":"boolean","description":"When set to true, Now for GitHub will stop commenting on pull requests and commits.","default":false},"autoJobCancelation":{"type":"boolean","description":"When set to false, Now for GitHub will always build pushes in sequence without cancelling a build for the most recent commit.","default":true}}}},"type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "now". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

domain names (optionally including subdomains) added to the account, or a string for a suffixed URL using .now.sh or a Custom Deployment Suffix

environment keys and values

ZEIT Now project configuration file

name for the deployment

the Now Platform version that the deployment should use and is known to work with

an ID or slug for teams, or an email address, username, or ID for users

environment variables passed to the invoked Serverless Functions

environment variables passed to the Build processes

a list of build descriptions whose src references valid source files

build description

A glob expression or pathname. If more than one file is resolved, one build will be created per matched file. It can include `*` and `**`.

A npm module to be installed by the build process. It can include a semver compatible version (e.g.: `@org/proj@1`).

An object including arbitrary metadata to be passed to the Builder.

a list of route definitions

route definition

A PCRE-compatible regular expression that matches each incoming pathname (excluding querystring).

A set of HTTP method types. If no method is provided, requests with any HTTP method will be a candidate for the route.

GET HEAD POST PUT DELETE CONNECT OPTIONS TRACE PATCH

A destination pathname or full URL, including querystring, with the ability to embed capture groups as $1, $2…

A set of headers to apply for responses.

A status code to respond with. Can be used in tandem with `Location:` header to implement redirects.

A boolean to change matching behavior. If true, routing will continue even when the src is matched.

the deployment regions of the Serverless Functions that get created as a result of the build steps

region identifier

When set to true, both the source view and logs view will be publicly accessible (when the user is authenticated with ZEIT).

Git integration options

When set to false, Now for GitHub will not deploy the given project regardless of the GitHub app being installed.

When set to false, Now for GitHub will not apply the alias upon merge.

When set to true, Now for GitHub will stop commenting on pull requests and commits.

When set to false, Now for GitHub will always build pushes in sequence without cancelling a build for the most recent commit.

Provide a JSON object that satisfies the schema "now". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/npm-badges.json","additionalProperties":false,"description":"An object hash containing an `items` array and optionally a `config` object","properties":{"list":{"type":"array","description":"Array of badges. Use \"---\" to denote a separation.","items":{"enum":["---","npmversion","npmdownloads","daviddm","daviddmdev","nodeico","saucelabsbm","saucelabs","travisci","githubworkflow","codeship","coveralls","codeclimate","bithound","waffle","sixtydevstips","patreon","opencollective","gratipay","flattr","paypal","bitcoin","wishlist","slackinscript","slackin","gabeacon","googleplusone","redditsubmit","hackernewssubmit","facebooklike","facebookfollow","twittertweet","twitterfollow","githubfollow","githubstar","quorafollow"]}},"config":{"type":"object","additionalProperties":false,"description":"Configuration object","properties":{"npmPackageName":{"description":"The npm package name","type":"string"},"saucelabsUsername":{"description":"The username of the SauceLabs account","type":"string"},"saucelabsAuthToken":{"description":"SauceLabs auth token, should probably not be used.\nUse `SAUCELABS_AUTH_TOKEN` env var instead.","type":"string"},"travisTLD":{"description":"The TLD to use for Travis CI. Use \"com\" if you have moved to travis-ci.com","type":"string"},"codeshipProjectUUID":{"description":"The UUID for the project, available in the General tab of your project setting.","type":"string"},"codeshipProjectID":{"description":"The ID for the project, available in the URL for the codeship project.","type":"string"},"githubSlug":{"description":"The Github slug of the project (e.g., SchemaStore/schemastore)","type":"string"},"githubWorkflow":{"description":"The name or location of the workflow file to show the badge for.","type":"string"},"githubBranch":{"description":"The branch to constrain the badge to.","type":"string"},"githubEvent":{"description":"The event to constrain the badge to.","type":"string"},"nodeicoQueryString":{"description":"Either a query string as a string, or an object containing the options.\n\nSee https://nodei.co for details","oneOf":[{"type":"string"},{"type":"object","additionalProperties":false,"properties":{"compact":{"enum":[true]},"mini":{"enum":[true]},"downloads":{"enum":[true]},"downloadRank":{"enum":[true]},"stars":{"enum":[true]},"months":{"type":"integer"},"height":{"enum":[1,2,3]}}}]},"sixtydevstipsID":{"description":"The 60devs username to donate to.","type":"string"},"sixtydevstipsURL":{"description":"The URL to the 60devs donate page.","type":"string"},"patreonUsername":{"description":"The Patreon username to donate to.","type":"string"},"patreonURL":{"description":"The URL to the Patreon donate page.","type":"string"},"opencollectiveUsername":{"description":"The Open Collective username to donate to.","type":"string"},"opencollectiveURL":{"description":"The URL to the Open Collective donate page.","type":"string"},"gratipayUsername":{"type":"string"},"flattrUsername":{"type":"string"},"paypalURL":{"type":"string"},"paypalButtonID":{"type":"string"},"paypalUsername":{"type":"string"},"bitcoinURL":{"type":"string"},"wishlistURL":{"type":"string"},"slackinURL":{"type":"string"},"gaTrackingID":{"type":"string"},"homepage":{"description":"The home page URL","type":"string"},"facebookApplicationID":{"type":"string"},"facebookUsername":{"type":"string"},"twitterUsername":{"description":"The twitter username to tweet at","type":"string"},"githubUsername":{"description":"The Github username to use","type":"string"},"quoraUsername":{"type":"string"},"quoraRealname":{"type":"string"}}}},"title":"Configuration for the NPM package badges.","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "Configuration for the NPM package badges.". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

An object hash containing an `items` array and optionally a `config` object

Array of badges. Use "---" to denote a separation.

--- npmversion npmdownloads daviddm daviddmdev nodeico saucelabsbm saucelabs travisci githubworkflow codeship coveralls codeclimate bithound waffle sixtydevstips patreon opencollective gratipay flattr paypal bitcoin wishlist slackinscript slackin gabeacon googleplusone redditsubmit hackernewssubmit facebooklike facebookfollow twittertweet twitterfollow githubfollow githubstar quorafollow

Configuration object

The npm package name

The username of the SauceLabs account

SauceLabs auth token, should probably not be used.
Use `SAUCELABS_AUTH_TOKEN` env var instead.

The TLD to use for Travis CI. Use "com" if you have moved to travis-ci.com

The UUID for the project, available in the General tab of your project setting.

The ID for the project, available in the URL for the codeship project.

The Github slug of the project (e.g., SchemaStore/schemastore)

The name or location of the workflow file to show the badge for.

The branch to constrain the badge to.

The event to constrain the badge to.

Either a query string as a string, or an object containing the options.

See https://nodei.co for details

The 60devs username to donate to.

The URL to the 60devs donate page.

The Patreon username to donate to.

The URL to the Patreon donate page.

The Open Collective username to donate to.

The URL to the Open Collective donate page.

The home page URL

The twitter username to tweet at

The Github username to use

Provide a JSON object that satisfies the schema "Configuration for the NPM package badges.". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-04/schema#","definitions":{"rule":{"oneOf":[{"description":"npm-package-json-lint rule\n\n\"off\" - turns the rule off\n\"warning\" - turns the rule on as a warning, which doesn't affect the exit code\n\"error\" - turns the rule on as an error, which when triggered generates an exit code of 2\n","type":"string","enum":["off","warning","error"]},{"type":"array"}]},"requiredNode":{"properties":{"require-author":{"$ref":"#/definitions/rule","description":"Require author property."},"require-bin":{"$ref":"#/definitions/rule","description":"Require bin property."},"require-bugs":{"$ref":"#/definitions/rule","description":"Require bugs property."},"require-bundledDependencies":{"$ref":"#/definitions/rule","description":"Require bundledDependencies property."},"require-config":{"$ref":"#/definitions/rule","description":"Require config property."},"require-contributors":{"$ref":"#/definitions/rule","description":"Require contributors property."},"require-cpu":{"$ref":"#/definitions/rule","description":"Require cpu property."},"require-dependencies":{"$ref":"#/definitions/rule","description":"Require dependencies property."},"require-description":{"$ref":"#/definitions/rule","description":"Require description property."},"require-devDependencies":{"$ref":"#/definitions/rule","description":"Require devDependencies property."},"require-directories":{"$ref":"#/definitions/rule","description":"Require directories property."},"require-engines":{"$ref":"#/definitions/rule","description":"Require engines property."},"require-files":{"$ref":"#/definitions/rule","description":"Require files property."},"require-homepage":{"$ref":"#/definitions/rule","description":"Require homepage property."},"require-keywords":{"$ref":"#/definitions/rule","description":"Require keywords property."},"require-license":{"$ref":"#/definitions/rule","description":"Require license property."},"require-main":{"$ref":"#/definitions/rule","description":"Require main property."},"require-man":{"$ref":"#/definitions/rule","description":"Require man property."},"require-module":{"$ref":"#/definitions/rule","description":"Require module property."},"require-name":{"$ref":"#/definitions/rule","description":"Require name property."},"require-optionalDependencies":{"$ref":"#/definitions/rule","description":"Require optionalDependencies property."},"require-os":{"$ref":"#/definitions/rule","description":"Require os property."},"require-peerDependencies":{"$ref":"#/definitions/rule","description":"Require peerDependencies property."},"require-preferGlobal":{"$ref":"#/definitions/rule","description":"Require preferGlobal property."},"require-private":{"$ref":"#/definitions/rule","description":"Require private property."},"require-publishConfig":{"$ref":"#/definitions/rule","description":"Require publishConfig property."},"require-repository":{"$ref":"#/definitions/rule","description":"Require repository property."},"require-scripts":{"$ref":"#/definitions/rule","description":"Require scripts property."},"require-version":{"$ref":"#/definitions/rule","description":"Require version property."}}},"dataType":{"properties":{"bin-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for bin."},"bundledDependencies-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for bundledDependencies."},"config-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for config."},"cpu-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for cpu."},"dependencies-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for dependencies."},"description-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for description."},"devDependencies-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for devDependencies."},"directories-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for directories."},"engines-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for engines."},"files-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for files."},"homepage-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for homepage."},"keywords-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for keywords."},"license-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for license."},"main-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for main."},"man-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for man."},"name-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for name."},"optionalDependencies-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for optionalDependencies."},"os-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for os."},"peerDependencies-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for peerDependencies."},"preferGlobal-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for preferGlobal."},"private-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for private."},"repository-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for repository."},"scripts-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for scripts."},"version-type":{"$ref":"#/definitions/rule","description":"Ensure the proper data type is used for version."}}},"validValues":{"properties":{"valid-values-author":{"$ref":"#/definitions/rule","description":"Requires author to equal one of the supplied values."},"valid-values-engines":{"$ref":"#/definitions/rule","description":"Requires engines to equal one of the supplied values."},"valid-values-license":{"$ref":"#/definitions/rule","description":"Requires license to equal one of the supplied values."},"valid-values-name-scope":{"$ref":"#/definitions/rule","description":"Requires the scope used for the name to equal one of the supplied values."},"valid-values-private":{"$ref":"#/definitions/rule","description":"Requires private to equal one of the supplied values."},"valid-values-publishConfig":{"$ref":"#/definitions/rule","description":"Requires publishConfig to equal one of the supplied values."}}},"dependencies":{"properties":{"no-absolute-version-dependencies":{"$ref":"#/definitions/rule","description":"Restrict dependencies from specifying an absolute version."},"no-caret-version-dependencies":{"$ref":"#/definitions/rule","description":"Restrict dependencies from using caret version syntax."},"no-restricted-dependencies":{"$ref":"#/definitions/rule","description":"Restrict a list of dependencies."},"no-restricted-pre-release-dependencies":{"$ref":"#/definitions/rule","description":"Restrict listed dependencies from using pre-release versions."},"no-tilde-version-dependencies":{"$ref":"#/definitions/rule","description":"Restrict dependencies from using tilde version syntax."},"prefer-no-version-zero-dependencies":{"$ref":"#/definitions/rule","description":"Restrict dependencies from specifying version 0.x.x modules."},"prefer-absolute-version-dependencies":{"$ref":"#/definitions/rule","description":"Require all dependencies to use absolute versions."},"prefer-caret-version-dependencies":{"$ref":"#/definitions/rule","description":"Require all dependencies to use caret version syntax."},"prefer-tilde-version-dependencies":{"$ref":"#/definitions/rule","description":"Require all dependencies to use tilde version syntax."},"prefer-alphabetical-dependencies":{"$ref":"#/definitions/rule","description":"Require dependencies to be listed in alphabetical order."},"no-absolute-version-devDependencies":{"$ref":"#/definitions/rule","description":"Restrict devDependencies from specifying an absolute version."},"no-caret-version-devDependencies":{"$ref":"#/definitions/rule","description":"Restrict devDependencies from using caret version syntax."},"no-restricted-devDependencies":{"$ref":"#/definitions/rule","description":"Restrict a list of devDependencies."},"no-restricted-pre-release-devDependencies":{"$ref":"#/definitions/rule","description":"Restrict listed devDependencies from using pre-release versions."},"no-tilde-version-devDependencies":{"$ref":"#/definitions/rule","description":"Restrict devDependencies from using tilde version syntax."},"prefer-no-version-zero-devDependencies":{"$ref":"#/definitions/rule","description":"Restrict devDependencies from specifying version 0.x.x modules."},"prefer-absolute-version-devDependencies":{"$ref":"#/definitions/rule","description":"Require all devDependencies to use absolute versions."},"prefer-caret-version-devDependencies":{"$ref":"#/definitions/rule","description":"Require all devDependencies to use caret version syntax."},"prefer-tilde-version-devDependencies":{"$ref":"#/definitions/rule","description":"Require all devDependencies to use tilde version syntax."},"prefer-alphabetical-devDependencies":{"$ref":"#/definitions/rule","description":"Require devDependencies to be listed in alphabetical order."},"prefer-alphabetical-bundledDependencies":{"$ref":"#/definitions/rule","description":"Require bundledDependencies to be listed in alphabetical order."},"prefer-alphabetical-optionalDependencies":{"$ref":"#/definitions/rule","description":"Require optionalDependencies to be listed in alphabetical order."},"prefer-alphabetical-peerDependencies":{"$ref":"#/definitions/rule","description":"Require peerDependencies to be listed in alphabetical order."}}},"format":{"properties":{"description-format":{"$ref":"#/definitions/rule","description":"Require description formatting rules, such as: requiring the first letter be capitalized and/or ending with a period."},"name-format":{"$ref":"#/definitions/rule","description":"Require name to be lowercase."},"version-format":{"$ref":"#/definitions/rule","description":"Require version to follow semver."}}},"packageJsonProperties":{"properties":{"prefer-property-order":{"$ref":"#/definitions/rule","description":"Require all package.json properties to be in a specified order."}}},"deprecated":{"properties":{"prefer-no-engineStrict":{"$ref":"#/definitions/rule","description":"Ensure engineStrict is not present in package.json file."}}}},"id":"https://json.schemastore.org/npmpackagejsonlintrc.json","properties":{"extends":{"description":"Use the extends property to inherit rules from a shared configuration file/module.","type":["string","array"],"items":{"type":"string"}},"rules":{"description":"npm-package-json-lint rules are configurable. Use the rules object to specify what rules should be used and what severity level they should follow.","type":"object","allOf":[{"$ref":"#/definitions/requiredNode"},{"$ref":"#/definitions/dataType"},{"$ref":"#/definitions/validValues"},{"$ref":"#/definitions/dependencies"},{"$ref":"#/definitions/format"},{"$ref":"#/definitions/packageJsonProperties"},{"$ref":"#/definitions/deprecated"}]}},"title":"JSON schema for npm-package-json-lint configuration files","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for npm-package-json-lint configuration files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

npm-package-json-lint rule

"off" - turns the rule off
"warning" - turns the rule on as a warning, which doesn't affect the exit code
"error" - turns the rule on as an error, which when triggered generates an exit code of 2

Require author property.

Require bin property.

Require bugs property.

Require bundledDependencies property.

Require config property.

Require contributors property.

Require cpu property.

Require dependencies property.

Require description property.

Require devDependencies property.

Require directories property.

Require engines property.

Require files property.

Require homepage property.

Require keywords property.

Require license property.

Require main property.

Require man property.

Require module property.

Require name property.

Require optionalDependencies property.

Require os property.

Require peerDependencies property.

Require preferGlobal property.

Require private property.

Require publishConfig property.

Require repository property.

Require scripts property.

Require version property.

Ensure the proper data type is used for bin.

Ensure the proper data type is used for bundledDependencies.

Ensure the proper data type is used for config.

Ensure the proper data type is used for cpu.

Ensure the proper data type is used for dependencies.

Ensure the proper data type is used for description.

Ensure the proper data type is used for devDependencies.

Ensure the proper data type is used for directories.

Ensure the proper data type is used for engines.

Ensure the proper data type is used for files.

Ensure the proper data type is used for homepage.

Ensure the proper data type is used for keywords.

Ensure the proper data type is used for license.

Ensure the proper data type is used for main.

Ensure the proper data type is used for man.

Ensure the proper data type is used for name.

Ensure the proper data type is used for optionalDependencies.

Ensure the proper data type is used for os.

Ensure the proper data type is used for peerDependencies.

Ensure the proper data type is used for preferGlobal.

Ensure the proper data type is used for private.

Ensure the proper data type is used for repository.

Ensure the proper data type is used for scripts.

Ensure the proper data type is used for version.

Requires author to equal one of the supplied values.

Requires engines to equal one of the supplied values.

Requires license to equal one of the supplied values.

Requires the scope used for the name to equal one of the supplied values.

Requires private to equal one of the supplied values.

Requires publishConfig to equal one of the supplied values.

Restrict dependencies from specifying an absolute version.

Restrict dependencies from using caret version syntax.

Restrict a list of dependencies.

Restrict listed dependencies from using pre-release versions.

Restrict dependencies from using tilde version syntax.

Restrict dependencies from specifying version 0.x.x modules.

Require all dependencies to use absolute versions.

Require all dependencies to use caret version syntax.

Require all dependencies to use tilde version syntax.

Require dependencies to be listed in alphabetical order.

Restrict devDependencies from specifying an absolute version.

Restrict devDependencies from using caret version syntax.

Restrict a list of devDependencies.

Restrict listed devDependencies from using pre-release versions.

Restrict devDependencies from using tilde version syntax.

Restrict devDependencies from specifying version 0.x.x modules.

Require all devDependencies to use absolute versions.

Require all devDependencies to use caret version syntax.

Require all devDependencies to use tilde version syntax.

Require devDependencies to be listed in alphabetical order.

Require bundledDependencies to be listed in alphabetical order.

Require optionalDependencies to be listed in alphabetical order.

Require peerDependencies to be listed in alphabetical order.

Require description formatting rules, such as: requiring the first letter be capitalized and/or ending with a period.

Require name to be lowercase.

Require version to follow semver.

Require all package.json properties to be in a specified order.

Ensure engineStrict is not present in package.json file.

Use the extends property to inherit rules from a shared configuration file/module.

npm-package-json-lint rules are configurable. Use the rules object to specify what rules should be used and what severity level they should follow.

Provide a JSON object that satisfies the schema "JSON schema for npm-package-json-lint configuration files". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[User] Provide a JSON object that satisfies the schema "nswag". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

MultipleClientsFromOperationId MultipleClientsFromPathSegments SingleClientFromOperationId SingleClientFromPathSegments

JQueryCallbacks JQueryPromises AngularJS Angular Fetch Aurelia

Provide a JSON object that satisfies the schema "nswag". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"title":"NTangle - https://github.com/Avanade/ntangle","$schema":"https://json-schema.org/draft-04/schema#","definitions":{"Root":{"type":"object","title":"The `Root` object (database-driven)","description":"The `RootConfig` object defines the global properties that are used to drive the underlying database-driven CDC-oriented code-generation.","properties":{"schema":{"type":"string","title":"The default `Schema` name where the existing tables are defined within the database.","description":"This is used as the default `Schema` for all child objects. Defaults to `dbo` (literal)."},"cdcSchema":{"type":"string","title":"The schema name for the _ntangle_ generated `CDC`-related database artefacts.","description":"Defaults to `NTangle` (literal)."},"cdcSchemaCreate":{"type":"boolean","title":"Indicates whether to create the `CdcSchema` within the database.","description":"Defaults to `false`."},"versionTrackingTable":{"type":"string","title":"The table name for the `Cdc`-VersionTracking.","description":"Defaults to `VersionTracking` (literal)."},"cdcEnable":{"type":"boolean","title":"Indicates whether to enable `Cdc` within the database for the tables that participate.","description":"Defaults to `false`. This option can be overridden for each underlying table referenced."},"identifierMapping":{"type":"boolean","title":"Indicates whether to include the generation of the generic `CDC`-IdentifierMapping database capabilities.","description":"Where set to `true` each underlying `Table` and corresponding `Join` must set `IdentifierMapping` explicitly."},"identifierMappingType":{"type":"string","title":"The type for the identifier mapping value.","description":"Defaults to `String`.","enum":["String","Int","Long","Guid"]},"identifierMappingTable":{"type":"string","title":"The table name for the `Cdc`-IdentifierMapping.","description":"Defaults to `IdentifierMapping` (literal)."},"identifierMappingStoredProcedure":{"type":"string","title":"The stored procedure name for the `Cdc`-IdentifierMapping create.","description":"Defaults to `spIdentifierMappingCreate` (literal)."},"isDeletedColumn":{"type":"string","title":"The column name for the `IsDeleted` (logical delete) capability (if any).","description":"Defaults to `IsDeleted`."},"autoDotNetRename":{"type":"string","title":"The option to automatically rename the SQL Tables and Columns for use in .NET.","description":"Defaults to `SnakeKebabToPascalCase` which will remove any underscores or hyphens separating each word and capitalize the first character of each; e.g. `internal-customer_id` would be renamed as `InternalCustomerId`. The `PascalCase` option will capatilize the first character only.","enum":["None","PascalCase","SnakeKebabToPascalCase"]},"excludeColumnsFromETag":{"type":"array","title":"The default list of `Column` names that should be excluded from the generated ETag (used for the likes of duplicate send tracking)","items":{"type":"string"}},"jsonSerializer":{"type":"string","title":"The JSON Serializer to use for JSON property attribution.","description":"Defaults to `SystemText`.","enum":["SystemText","Newtonsoft"]},"service":{"type":"string","title":"The type of service that manages the underlying orchestrator.","description":"Defaults to `None`. A `HostedService` is an `IHostedService` implementation enabling long-running execution; whereas, `Service` is intended for self-managed execution.","enum":["None","HostedService","Service"]},"eventSubjectRoot":{"type":"string","title":"The root for the event name by prepending to all event subject names via CDC.","description":"Used to enable the sending of messages to the likes of EventHubs, Service Broker, Kafka, etc."},"eventSubjectFormat":{"type":"string","title":"The default formatting for the Subject when an Event is published via CDC.","description":"Defaults to `NameOnly`.","enum":["NameOnly","NameAndKey","NameAndTableKey"]},"eventActionFormat":{"type":"string","title":"The formatting for the Action when an Event is published via CDC.","description":"Defaults to `None` (no formatting required, i.e. as-is).","enum":["None","PastTense"]},"eventSourceKind":{"type":"string","title":"The URI kind for the event source URIs for CDC.","description":"Defaults to `Relative` (being a relative path).","enum":["None","Absolute","Relative","RelativeOrAbsolute"]},"eventSourceRoot":{"type":"string","title":"The URI root for the event source by prepending to all event source URIs for CDC.","description":"The event source is only updated where an `EventSourceKind` is not `None`."},"eventSourceFormat":{"type":"string","title":"The default formatting for the Source when an Event is published via CDC.","description":"Defaults to `NameAndTableKey` (being the child `Cdc.ModelName` appended with the corresponding table key).","enum":["NameOnly","NameAndKey","NameAndTableKey"]},"eventTypeRoot":{"type":"string","title":"The root for the event type by prepending to all event type names via CDC.","description":"Used to enable the sending of messages to the likes of EventHubs, Service Broker, Kafka, etc. Defaults to `EventSubjectRoot`."},"outbox":{"type":"boolean","title":"Indicates whether to generate the event outbox SQL and .NET artefacts.","description":"Defaults to `false`."},"outboxSchema":{"type":"string","title":"The schema name of the event outbox table.","description":"Defaults to `Outbox` (literal)."},"outboxSchemaCreate":{"type":"boolean","title":"Indicates whether to create the `OutboxSchema` within the database.","description":"Defaults to `false`."},"outboxTable":{"type":"string","title":"The name of the event outbox table.","description":"Defaults to `EventOutbox` (literal)."},"outboxEnqueueStoredProcedure":{"type":"string","title":"The stored procedure name for the event outbox enqueue.","description":"Defaults to `spEventOutboxEnqueue` (literal)."},"outboxDequeueStoredProcedure":{"type":"string","title":"The stored procedure name for the event outbox dequeue.","description":"Defaults to `spEventOutboxDequeue` (literal)."},"pathBase":{"type":"string","title":"The base path (directory) prefix for the Database-related artefacts; other `Path*` properties append to this value when they are not specifically overridden.","description":"Defaults to `AppName` (runtime parameter). For example `Avanade.Application`."},"pathDatabase":{"type":"string","title":"The root path (directory) for the Database-related artefacts.","description":"Defaults to `PathBase` + `.Database` (literal). For example `Avanade.Application.Database`."},"pathDatabaseSchema":{"type":"string","title":"The path (directory) for the Schema Database-related artefacts.","description":"Defaults to `PathDatabase` + `/Schema` (literal). For example `Avanade.Application.Database/Schema`."},"pathDatabaseMigrations":{"type":"string","title":"The path (directory) for the Schema Database-related artefacts.","description":"Defaults to `PathDatabase` + `/Migrations` (literal). For example `Avanade.Application.Database/Migrations`."},"pathDotNetPublisher":{"type":"string","title":"The path (directory) for the CDC-related (.NET) artefacts.","description":"Defaults to `PathBase` + `.Publisher` (literal). For example `Avanade.Application.Publisher`."},"pathSidecarDatabase":{"type":"string","title":"The path (directory) for the Schema Database-related artefacts.","description":"Defaults to `PathBase` + `.SidecarDb` (literal). For example `Avanade.Application.SidecarDb`."},"pathSidecarDatabaseSchema":{"type":"string","title":"The path (directory) for the Schema Database-related artefacts.","description":"Defaults to `PathSidecarDatabase` + `/Schema` (literal). For example `Avanade.Application.SidecarDb/Schema`."},"pathSidecarDatabaseMigrations":{"type":"string","title":"The path (directory) for the Schema Database-related artefacts.","description":"Defaults to `PathSidecarDatabase` + `/Migrations` (literal). For example `Avanade.Application.SidecarDb/Migrations`."},"namespaceBase":{"type":"string","title":"The base Namespace (root) for the .NET artefacts.","description":"Defaults to `AppName` (runtime parameter). For example `Avanade.Application`."},"namespacePublisher":{"type":"string","title":"The Namespace (root) for the CDC-related Publisher .NET artefacts.","description":"Defaults to `NamespaceBase` + `.Publisher` (literal). For example `Avanade.Application.Publisher`."},"namespaceOutbox":{"type":"string","title":"The Namespace (root) for the Outbox-related Publisher .NET artefacts.","description":"Defaults to `NamespacePublisher`."},"tables":{"type":"array","title":"The corresponding `Table` collection.","description":"A `Table` object provides the primary database table configuration for Change Data Capture (CDC), including multiple child table joins to form a composite entity.","items":{"$ref":"#/definitions/Table"}}}},"Table":{"type":"object","title":"'Table' object (database-driven)","description":"The `Table` object enables the definition of the primary table, one-or-more child tables and their respective join relationships, to enable Change Data Capture (CDC) event publishing. The `IncludeColumns` and `ExcludeColumns` provide a shorthand to include or exclude selected columns; with the `AliasColumns` providing a means to rename where required.","properties":{"name":{"type":"string","title":"The name of the primary table."},"schema":{"type":"string","title":"The default schema name used where not otherwise explicitly specified.","description":"Defaults to `Root.Schema`."},"table":{"type":"string","title":"The name of the primary table.","description":"Defaults to `Name`. This is used to specify the actual underlying database table name (required where the `Name` has been changed to enable uniqueness)."},"alias":{"type":"string","title":"The table alias name (must be unique).","description":"Will automatically default where not specified; for example a table named `Person` will default to `p`."},"includeColumns":{"type":"array","title":"The list of `Column` names to be included in the underlying generated output.","description":"Where not specified this indicates that all `Columns` are to be included.","items":{"type":"string"}},"excludeColumns":{"type":"array","title":"The list of `Column` names to be excluded from the underlying generated output.","description":"Where not specified this indicates no `Columns` are to be excluded.","items":{"type":"string"}},"aliasColumns":{"type":"array","title":"The list of `Column` and `Alias` pairs (split by a `^` lookup character) to enable column aliasing/renaming.","description":"Each alias value should be formatted as `Column` + `^` + `Alias`; e.g. `PCODE^ProductCode`.","items":{"type":"string"}},"executeStoredProcedure":{"type":"string","title":"The `CDC` _execute_ batch stored procedure name.","description":"Defaults to `sp` (literal) + `Name` + `BatchExecute` (literal); e.g. `spNameBatchExecute`."},"completeStoredProcedure":{"type":"string","title":"The `CDC` _complete_ batch stored procedure name.","description":"Defaults to `sp` (literal) + `Name` + `BatchComplete` (literal); e.g. `spNameBatchComplete`."},"resetStoredProcedure":{"type":"string","title":"The `CDC` _reset_ batch stored procedure name.","description":"Defaults to `sp` (literal) + `Name` + `BatchReset` (literal); e.g. `spNameBatchReset`."},"trackingStoredProcedure":{"type":"string","title":"The `CDC` _tracking_ (Sidecar only) batch stored procedure name.","description":"Defaults to `sp` (literal) + `Name` + `BatchTracking` (literal); e.g. `spNameBatchTracking`."},"cdcSchema":{"type":"string","title":"The schema name for the generated `CDC`-related database artefacts.","description":"Defaults to `Root.CdcSchema`."},"batchTrackingTable":{"type":"string","title":"The corresponding `CDC` Batch tracking table name.","description":"Defaults to `Name` + `BatchTracking` (literal)."},"cdcEnable":{"type":"boolean","title":"Indicates whether to enable `Cdc` within the database for the tables that participate.","description":"Defaults to `false`. This option can be overridden for each underlying table referenced."},"model":{"type":"string","title":"The .NET model name.","description":"Defaults to `Name`."},"orchestratorCtorParams":{"type":"array","title":"The list of additional (non-default) Dependency Injection (DI) parameters for the generated CDC `Orchestrator` constructor.","description":"Each constructor parameter should be formatted as `Type` + `^` + `Name`; e.g. `IConfiguration^Config`. Where the `Name` portion is not specified it will be inferred.","items":{"type":"string"}},"database":{"type":"string","title":"The .NET database `IDatabase` Type name used in the constructor for Dependency Injection (DI).","description":"Defaults to `IDatabase`."},"includeColumnsOnDelete":{"type":"array","title":"The list of `Column` names that should be included (in addition to the primary key) for a logical delete.","description":"Where a column is not specified in this list its corresponding .NET property will be automatically cleared by the `CdcDataOrchestrator` as the data is technically considered as non-existing.","items":{"type":"string"}},"service":{"type":"string","title":"The type of service that manages the underlying orchestrator.","description":"Defaults to `Root.Service`. A `HostedService` is an `IHostedService` implementation enabling long-running execution; whereas, `Service` is intended for self-managed execution.","enum":["None","HostedService","Service"]},"excludeColumnsFromETag":{"type":"array","title":"The list of `Column` names that should be excluded from the generated ETag (used for the likes of duplicate send tracking).","description":"Defaults to `Root.CdcExcludeColumnsFromETag`.","items":{"type":"string"}},"tenantIdColumns":{"type":"array","title":"The list of `Column` names that represent the tenant identifier.","items":{"type":"string"}},"partitionKey":{"type":"string","title":"The partition key.","description":"A partition key can be specified using either `PartitionKey` or `PartitionKeyColumns`."},"partitionKeyColumns":{"type":"array","title":"The list of `Column` names that represent the partition key.","description":"A partition key can be specified using either `PartitionKey` or `PartitionKeyColumns`.","items":{"type":"string"}},"eventSource":{"type":"string","title":"The Event Source.","description":"Defaults to `Schema` + `/` (literal) + `Name` (as lowercase). Note: when used in code-generation the `Root.EventSourceRoot` will be prepended where specified."},"eventSourceFormat":{"type":"string","title":"The default formatting for the Source when an Event is published.","description":"Defaults to `Root.EventSourceFormat`.","enum":["NameOnly","NameAndKey","NameAndTableKey"]},"eventSubject":{"type":"string","title":"The Event Subject.","description":"Defaults to `ModelName`. Note: when used in code-generation the `Root.EventSubjectRoot` will be prepended where specified."},"eventSubjectFormat":{"type":"string","title":"The default formatting for the Subject when an Event is published.","description":"Defaults to `Root.EventSubjectFormat`.","enum":["NameOnly","NameAndKey","NameAndTableKey"]},"eventType":{"type":"string","title":"The Event Type.","description":"Defaults to `ModelName`. Note: when used in code-generation the `Root.EventTypeRoot` will be prepended where specified."},"identifierMapping":{"type":"boolean","title":"Indicates whether to perform Identifier Mapping (mapping to `GlobalId`) for the primary key.","description":"This indicates whether to create a new `GlobalId` property on the _entity_ to house the global mapping identifier to be the reference outside of the specific database realm as a replacement to the existing primary key column(s)."},"identifierName":{"type":"string","title":"The JSON name for the `GlobalId` property where `IdentifierMapping` is `true`. Defaults to `globalId`.","description":"This indicates whether to create a new `GlobalId` property on the _entity_ to house the global mapping identifier to be the reference outside of the specific database realm as a replacement to the existing primary key column(s)."},"isDeletedColumn":{"type":"string","title":"The column name for the `IsDeleted` (logical delete) capability (if any).","description":"Defaults to `Root.ColumnIsDeleted`."},"joins":{"type":"array","title":"The corresponding `Join` collection.","description":"A `Join` object provides the configuration for a table join.","items":{"$ref":"#/definitions/Join"}},"where":{"type":"array","title":"The corresponding `Where` collection.","description":"A `Where` object provides the configuration for a table where clause.","items":{"$ref":"#/definitions/Where"}},"mappings":{"type":"array","title":"The corresponding `TableMapping` collection.","items":{"$ref":"#/definitions/TableMapping"}}},"required":["name"]},"Join":{"type":"object","title":"'Join' object (database-driven)","description":"The `Join` object defines a join to another (or same) table within the logical CDC entity.  The `IncludeColumns` and `ExcludeColumns` provide a shorthand to include or exclude selected columns; with the `AliasColumns` providing a means to rename where required.","properties":{"name":{"type":"string","title":"The unique name.","description":"A unique name is required where the same `Table` is referenced more than once within a logical CDC entity. However, generally, this will represent the unique name of the table within the database."},"schema":{"type":"string","title":"The schema name of the table to join.","description":"Defaults to `Cdc.Schema`; i.e. same schema."},"table":{"type":"string","title":"The name of the table to join.","description":"Defaults to `Name`. This is used to specify the actual underlying database table name (required where the `Name` has been changed to enable uniqueness)."},"alias":{"type":"string","title":"The `Schema` and `Table` alias name.","description":"Will automatically default where not specified."},"type":{"type":"string","title":"The SQL join type.","description":"Defaults to `Cdc`. The `Cdc` value indicates this is a related secondary table (within a logical CDC entity) that also has Change Data Capture turned on and equally needs to be monitored for changes.","enum":["Cdc","Inner","Left","Right","Full"]},"joinTo":{"type":"string","title":"The name of the table to join to (must be previously specified).","description":"Defaults to parent `Table.Name`."},"joinCardinality":{"type":"string","title":"The join cardinality being whether there is a One-to-Many or One-to-One relationship.","description":"Defaults to `OneToMany`. This represents the Parent (`JoinTo`) to child (_this_) relationship.","enum":["OneToMany","OneToOne"]},"cdcEnable":{"type":"boolean","title":"Indicates whether to enable `Cdc` within the database for the tables that participate.","description":"Defaults to `false`. This option can be overridden for each underlying table referenced."},"querySizeMultiplier":{"type":"number","title":"The query size multiplier for the CDC-Join.","description":"Defaults to `1.0`. This is applied to the execute stored procedure `@MaxQuerySize` parameter to allow tailoring on the join query (`TOP`) sizes to optimize selection. Must be greater than zero and less than or equal to 100."},"includeColumns":{"type":"array","title":"The list of `Column` names to be included in the underlying generated output.","description":"Where not specified this indicates that all `Columns` are to be included.","items":{"type":"string"}},"excludeColumns":{"type":"array","title":"The list of `Column` names to be excluded from the underlying generated output.","description":"Where not specified this indicates no `Columns` are to be excluded.","items":{"type":"string"}},"aliasColumns":{"type":"array","title":"The list of `Column` and `Alias` pairs (split by a `^` lookup character) to enable column renaming.","description":"Each alias value should be formatted as `Column` + `^` + `Alias`; e.g. `PCODE^ProductCode`","items":{"type":"string"}},"model":{"type":"string","title":"The .NET model name.","description":"Defaults to `Name`."},"property":{"type":"string","title":"The .NET property name.","description":"Defaults to `Model` where `JoinCardinality` is `OneToOne`; otherwise, it will be the `Model` pluralized."},"includeColumnsOnDelete":{"type":"array","title":"The list of `Column` names that should be included (in addition to the primary key) for a logical delete.","description":"Where a column is not specified in this list its corresponding .NET property will be automatically cleared by the `CdcDataOrchestrator` as the data is technically considered as non-existing.","items":{"type":"string"}},"excludeColumnsFromETag":{"type":"array","title":"The list of `Column` names that should be excluded from the generated ETag (used for the likes of duplicate send tracking).","description":"Defaults to `CodeGeneration.CdcExcludeColumnsFromETag`.","items":{"type":"string"}},"identifierMapping":{"type":"boolean","title":"Indicates whether to perform Identifier Mapping (mapping to `GlobalId`) for the primary key.","description":"This indicates whether to create a new `GlobalId` property on the _entity_ to house the global mapping identifier to be the reference outside of the specific database realm as a replacement to the existing primary key column(s)."},"identifierName":{"type":"string","title":"The JSON name for the `GlobalId` property where `IdentifierMapping` is `true`. Defaults to `globalId`.","description":"This indicates whether to create a new `GlobalId` property on the _entity_ to house the global mapping identifier to be the reference outside of the specific database realm as a replacement to the existing primary key column(s)."},"on":{"type":"array","title":"The corresponding `JoinOn` collection.","items":{"$ref":"#/definitions/JoinOn"}},"mappings":{"type":"array","title":"The corresponding `JoinMapping` collection.","items":{"$ref":"#/definitions/JoinMapping"}}},"required":["name"]},"JoinOn":{"type":"object","title":"'JoinOn' object (database-driven)","description":"The `JoinOn` object defines the join on characteristics for a `Join` object.","properties":{"name":{"type":"string","title":"The name of the join column (from the `Join` table)."},"toColumn":{"type":"string","title":"The name of the join to column.","description":"Defaults to `Name`; i.e. assumes same name."},"toStatement":{"type":"string","title":"The SQL statement for the join on bypassing the corresponding `ToColumn` specification."}},"required":["name"]},"JoinMapping":{"type":"object","title":"'JoinMapping' object (database-driven)","description":"The `JoinMapping` object defines one or more related table identifier mappings.","properties":{"name":{"type":"string","title":"The name of of the existing column that requires identifier mapping."},"schema":{"type":"string","title":"The schema name of the related table.","description":"Defaults to the owning (parent) table schema."},"table":{"type":"string","title":"The name of the related table."}},"required":["name","table"]},"Where":{"type":"object","title":"'Where' object (database-driven)","description":"This should only be used where the column value is largely immutable; otherwise, unintended side-effects may occur. _NTangle_ uses the condition explictily and does not attempt to handle value change to infer creation or deletion of data as a result of the underlying change; as such, this should be used cautiously. Note that the `where` is applied when querying the `cdc.fn_cdc_get_all_changes_...` function, not the underlying table itself.","properties":{"name":{"type":"string","title":"The column name.","description":"The column name."},"nullable":{"type":"string","title":"The where nullability clause operator","description":"This enables statements such as `WHERE (COL IS NULL)` or `WHERE (COL IS NULL OR COL = VALUE)` (where .","enum":["ISNULL","ISNOTNULL"]},"operator":{"type":"string","title":"The where clause equality operator","description":"Defaults to `EQ` where `Value` is specified.","enum":["EQ","NE","LT","LE","GT","GE","LIKE"]},"value":{"type":"string","title":"The comparison value","description":"This must be valid formatted/escaped SQL."}},"required":["name"]},"TableMapping":{"type":"object","title":"'TableMapping' object (database-driven)","description":"The `TableMapping` object defines one or more related table identifier mappings.","properties":{"name":{"type":"string","title":"The name of of the existing column that requires identifier mapping."},"schema":{"type":"string","title":"The schema name of the related table.","description":"Defaults to the owning (parent) table schema."},"table":{"type":"string","title":"The name of the related table."}},"required":["name","table"]}},"allOf":[{"$ref":"#/definitions/Root"}]}
</schema>

[User] Provide a JSON object that satisfies the schema "NTangle - https://github.com/Avanade/ntangle". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

NTangle - https://github.com/Avanade/ntangle

The `Root` object (database-driven)

The `RootConfig` object defines the global properties that are used to drive the underlying database-driven CDC-oriented code-generation.

The default `Schema` name where the existing tables are defined within the database.

This is used as the default `Schema` for all child objects. Defaults to `dbo` (literal).

The schema name for the _ntangle_ generated `CDC`-related database artefacts.

Defaults to `NTangle` (literal).

Indicates whether to create the `CdcSchema` within the database.

Defaults to `false`.

The table name for the `Cdc`-VersionTracking.

Defaults to `VersionTracking` (literal).

Indicates whether to enable `Cdc` within the database for the tables that participate.

Defaults to `false`. This option can be overridden for each underlying table referenced.

Indicates whether to include the generation of the generic `CDC`-IdentifierMapping database capabilities.

Where set to `true` each underlying `Table` and corresponding `Join` must set `IdentifierMapping` explicitly.

The type for the identifier mapping value.

Defaults to `String`.

The table name for the `Cdc`-IdentifierMapping.

Defaults to `IdentifierMapping` (literal).

The stored procedure name for the `Cdc`-IdentifierMapping create.

Defaults to `spIdentifierMappingCreate` (literal).

The column name for the `IsDeleted` (logical delete) capability (if any).

Defaults to `IsDeleted`.

The option to automatically rename the SQL Tables and Columns for use in .NET.

Defaults to `SnakeKebabToPascalCase` which will remove any underscores or hyphens separating each word and capitalize the first character of each; e.g. `internal-customer_id` would be renamed as `InternalCustomerId`. The `PascalCase` option will capatilize the first character only.

The default list of `Column` names that should be excluded from the generated ETag (used for the likes of duplicate send tracking)

The JSON Serializer to use for JSON property attribution.

Defaults to `SystemText`.

The type of service that manages the underlying orchestrator.

Defaults to `None`. A `HostedService` is an `IHostedService` implementation enabling long-running execution; whereas, `Service` is intended for self-managed execution.

The root for the event name by prepending to all event subject names via CDC.

The default formatting for the Subject when an Event is published via CDC.

Defaults to `NameOnly`.

The formatting for the Action when an Event is published via CDC.

Defaults to `None` (no formatting required, i.e. as-is).

The URI kind for the event source URIs for CDC.

Defaults to `Relative` (being a relative path).

None Absolute Relative RelativeOrAbsolute

The URI root for the event source by prepending to all event source URIs for CDC.

The event source is only updated where an `EventSourceKind` is not `None`.

The default formatting for the Source when an Event is published via CDC.

Defaults to `NameAndTableKey` (being the child `Cdc.ModelName` appended with the corresponding table key).

The root for the event type by prepending to all event type names via CDC.

Used to enable the sending of messages to the likes of EventHubs, Service Broker, Kafka, etc. Defaults to `EventSubjectRoot`.

Indicates whether to generate the event outbox SQL and .NET artefacts.

Defaults to `false`.

The schema name of the event outbox table.

Defaults to `Outbox` (literal).

Indicates whether to create the `OutboxSchema` within the database.

Defaults to `false`.

The name of the event outbox table.

Defaults to `EventOutbox` (literal).

The stored procedure name for the event outbox enqueue.

Defaults to `spEventOutboxEnqueue` (literal).

The stored procedure name for the event outbox dequeue.

Defaults to `spEventOutboxDequeue` (literal).

The base path (directory) prefix for the Database-related artefacts; other `Path*` properties append to this value when they are not specifically overridden.

Defaults to `AppName` (runtime parameter). For example `Avanade.Application`.

The root path (directory) for the Database-related artefacts.

Defaults to `PathBase` + `.Database` (literal). For example `Avanade.Application.Database`.

The path (directory) for the Schema Database-related artefacts.

Defaults to `PathDatabase` + `/Schema` (literal). For example `Avanade.Application.Database/Schema`.

Defaults to `PathDatabase` + `/Migrations` (literal). For example `Avanade.Application.Database/Migrations`.

The path (directory) for the CDC-related (.NET) artefacts.

Defaults to `PathBase` + `.Publisher` (literal). For example `Avanade.Application.Publisher`.

Defaults to `PathBase` + `.SidecarDb` (literal). For example `Avanade.Application.SidecarDb`.

Defaults to `PathSidecarDatabase` + `/Schema` (literal). For example `Avanade.Application.SidecarDb/Schema`.

Defaults to `PathSidecarDatabase` + `/Migrations` (literal). For example `Avanade.Application.SidecarDb/Migrations`.

The base Namespace (root) for the .NET artefacts.

The Namespace (root) for the CDC-related Publisher .NET artefacts.

Defaults to `NamespaceBase` + `.Publisher` (literal). For example `Avanade.Application.Publisher`.

The Namespace (root) for the Outbox-related Publisher .NET artefacts.

Defaults to `NamespacePublisher`.

The corresponding `Table` collection.

A `Table` object provides the primary database table configuration for Change Data Capture (CDC), including multiple child table joins to form a composite entity.

'Table' object (database-driven)

The `Table` object enables the definition of the primary table, one-or-more child tables and their respective join relationships, to enable Change Data Capture (CDC) event publishing. The `IncludeColumns` and `ExcludeColumns` provide a shorthand to include or exclude selected columns; with the `AliasColumns` providing a means to rename where required.

The name of the primary table.

The default schema name used where not otherwise explicitly specified.

Defaults to `Root.Schema`.

The name of the primary table.

Defaults to `Name`. This is used to specify the actual underlying database table name (required where the `Name` has been changed to enable uniqueness).

The table alias name (must be unique).

Will automatically default where not specified; for example a table named `Person` will default to `p`.

The list of `Column` names to be included in the underlying generated output.

Where not specified this indicates that all `Columns` are to be included.

The list of `Column` names to be excluded from the underlying generated output.

Where not specified this indicates no `Columns` are to be excluded.

The list of `Column` and `Alias` pairs (split by a `^` lookup character) to enable column aliasing/renaming.

Each alias value should be formatted as `Column` + `^` + `Alias`; e.g. `PCODE^ProductCode`.

The `CDC` _execute_ batch stored procedure name.

Defaults to `sp` (literal) + `Name` + `BatchExecute` (literal); e.g. `spNameBatchExecute`.

The `CDC` _complete_ batch stored procedure name.

Defaults to `sp` (literal) + `Name` + `BatchComplete` (literal); e.g. `spNameBatchComplete`.

The `CDC` _reset_ batch stored procedure name.

Defaults to `sp` (literal) + `Name` + `BatchReset` (literal); e.g. `spNameBatchReset`.

The `CDC` _tracking_ (Sidecar only) batch stored procedure name.

Defaults to `sp` (literal) + `Name` + `BatchTracking` (literal); e.g. `spNameBatchTracking`.

The schema name for the generated `CDC`-related database artefacts.

Defaults to `Root.CdcSchema`.

The corresponding `CDC` Batch tracking table name.

Defaults to `Name` + `BatchTracking` (literal).

The .NET model name.

Defaults to `Name`.

The list of additional (non-default) Dependency Injection (DI) parameters for the generated CDC `Orchestrator` constructor.

Each constructor parameter should be formatted as `Type` + `^` + `Name`; e.g. `IConfiguration^Config`. Where the `Name` portion is not specified it will be inferred.

The .NET database `IDatabase` Type name used in the constructor for Dependency Injection (DI).

Defaults to `IDatabase`.

The list of `Column` names that should be included (in addition to the primary key) for a logical delete.

Where a column is not specified in this list its corresponding .NET property will be automatically cleared by the `CdcDataOrchestrator` as the data is technically considered as non-existing.

The type of service that manages the underlying orchestrator.

Defaults to `Root.Service`. A `HostedService` is an `IHostedService` implementation enabling long-running execution; whereas, `Service` is intended for self-managed execution.

The list of `Column` names that should be excluded from the generated ETag (used for the likes of duplicate send tracking).

Defaults to `Root.CdcExcludeColumnsFromETag`.

The list of `Column` names that represent the tenant identifier.

The partition key.

A partition key can be specified using either `PartitionKey` or `PartitionKeyColumns`.

The list of `Column` names that represent the partition key.

The Event Source.

Defaults to `Schema` + `/` (literal) + `Name` (as lowercase). Note: when used in code-generation the `Root.EventSourceRoot` will be prepended where specified.

The default formatting for the Source when an Event is published.

Defaults to `Root.EventSourceFormat`.

The Event Subject.

Defaults to `ModelName`. Note: when used in code-generation the `Root.EventSubjectRoot` will be prepended where specified.

The default formatting for the Subject when an Event is published.

Defaults to `Root.EventSubjectFormat`.

The Event Type.

Defaults to `ModelName`. Note: when used in code-generation the `Root.EventTypeRoot` will be prepended where specified.

Indicates whether to perform Identifier Mapping (mapping to `GlobalId`) for the primary key.

This indicates whether to create a new `GlobalId` property on the _entity_ to house the global mapping identifier to be the reference outside of the specific database realm as a replacement to the existing primary key column(s).

The JSON name for the `GlobalId` property where `IdentifierMapping` is `true`. Defaults to `globalId`.

The column name for the `IsDeleted` (logical delete) capability (if any).

Defaults to `Root.ColumnIsDeleted`.

The corresponding `Join` collection.

A `Join` object provides the configuration for a table join.

The corresponding `Where` collection.

A `Where` object provides the configuration for a table where clause.

The corresponding `TableMapping` collection.

'Join' object (database-driven)

The `Join` object defines a join to another (or same) table within the logical CDC entity.  The `IncludeColumns` and `ExcludeColumns` provide a shorthand to include or exclude selected columns; with the `AliasColumns` providing a means to rename where required.

The unique name.

A unique name is required where the same `Table` is referenced more than once within a logical CDC entity. However, generally, this will represent the unique name of the table within the database.

The schema name of the table to join.

Defaults to `Cdc.Schema`; i.e. same schema.

The name of the table to join.

The `Schema` and `Table` alias name.

Will automatically default where not specified.

The SQL join type.

Defaults to `Cdc`. The `Cdc` value indicates this is a related secondary table (within a logical CDC entity) that also has Change Data Capture turned on and equally needs to be monitored for changes.

The name of the table to join to (must be previously specified).

Defaults to parent `Table.Name`.

The join cardinality being whether there is a One-to-Many or One-to-One relationship.

Defaults to `OneToMany`. This represents the Parent (`JoinTo`) to child (_this_) relationship.

The query size multiplier for the CDC-Join.

Defaults to `1.0`. This is applied to the execute stored procedure `@MaxQuerySize` parameter to allow tailoring on the join query (`TOP`) sizes to optimize selection. Must be greater than zero and less than or equal to 100.

The list of `Column` names to be included in the underlying generated output.

Where not specified this indicates that all `Columns` are to be included.

The list of `Column` names to be excluded from the underlying generated output.

Where not specified this indicates no `Columns` are to be excluded.

The list of `Column` and `Alias` pairs (split by a `^` lookup character) to enable column renaming.

The .NET model name.

Defaults to `Name`.

The .NET property name.

Defaults to `Model` where `JoinCardinality` is `OneToOne`; otherwise, it will be the `Model` pluralized.

Defaults to `CodeGeneration.CdcExcludeColumnsFromETag`.

The corresponding `JoinOn` collection.

The corresponding `JoinMapping` collection.

'JoinOn' object (database-driven)

The `JoinOn` object defines the join on characteristics for a `Join` object.

The name of the join column (from the `Join` table).

The name of the join to column.

Defaults to `Name`; i.e. assumes same name.

The SQL statement for the join on bypassing the corresponding `ToColumn` specification.

'JoinMapping' object (database-driven)

The `JoinMapping` object defines one or more related table identifier mappings.

The name of of the existing column that requires identifier mapping.

The schema name of the related table.

Defaults to the owning (parent) table schema.

The name of the related table.

'Where' object (database-driven)

This should only be used where the column value is largely immutable; otherwise, unintended side-effects may occur. _NTangle_ uses the condition explictily and does not attempt to handle value change to infer creation or deletion of data as a result of the underlying change; as such, this should be used cautiously. Note that the `where` is applied when querying the `cdc.fn_cdc_get_all_changes_...` function, not the underlying table itself.

The column name.

The column name.

The where nullability clause operator

This enables statements such as `WHERE (COL IS NULL)` or `WHERE (COL IS NULL OR COL = VALUE)` (where .

The where clause equality operator

Defaults to `EQ` where `Value` is specified.

The comparison value

This must be valid formatted/escaped SQL.

'TableMapping' object (database-driven)

The `TableMapping` object defines one or more related table identifier mappings.

The schema name of the related table.

The name of the related table.

Provide a JSON object that satisfies the schema "NTangle - https://github.com/Avanade/ntangle". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.