[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#","id":"https://json.schemastore.org/nightwatch.json","properties":{"custom_commands_path":{"type":["null","string","array"],"description":"Location(s) where custom commands will be loaded from.","items":{"type":"string"},"default":null},"custom_assertions_path":{"type":["null","string","array"],"description":"Location(s) where custom assertions will be loaded from.","items":{"type":"string"},"default":null},"page_objects_path":{"type":["null","string","array"],"description":"Location(s) where page object files will be loaded from.","default":null},"globals_path":{"type":["null","string"],"description":"Location of an external globals module which will be loaded and made available to the test as a property globals on the main client instance.","default":null},"globals":{"type":"object","description":"An object which will be made available on the main test api, throughout the test execution","properties":{"abortOnAssertionFailure":{"type":"boolean","description":"This controls whether to abort the test execution when an assertion failed and skip the rest. It's being used in waitFor commands and expect assertions","default":true},"abortOnElementLocateError":{"type":"boolean","description":"This controls whether to abort the test execution when an element cannot be located; an error is logged in all cases, but this also enables skipping the rest of the testcase; It's being used in element commands such as .click() or .getText()","default":false},"waitForConditionPollInterval":{"type":"integer","description":"This will overwrite the default polling interval (currently 500ms) for waitFor commands and expect assertions that use retry","default":500},"waitForConditionTimeout":{"type":"integer","description":"Default timeout value in milliseconds for waitFor commands and implicit waitFor value for expect assertions","default":5000},"throwOnMultipleElementsReturned":{"type":"boolean","description":"This will cause waitFor commands on elements to throw an error if multiple elements are found using the given locate strategy and selector","default":false},"suppressWarningsOnMultipleElementsReturned":{"type":"boolean","description":"By default a warning is printed if multiple elements are found using the given locate strategy and selector; set this to true to suppress those warnings","default":false},"asyncHookTimeout":{"type":"integer","description":"Controls the timeout value for async hooks. Expects the done() callback to be invoked within this time or an error is thrown","default":10000},"unitTestsTimeout":{"type":"integer","description":"Controls the timeout value for when running async unit tests. Expects the done() callback to be invoked within this time or an error is thrown","default":2000},"customReporterCallbackTimeout":{"type":"integer","description":"Controls the timeout value for when executing the global async reporter. Expects the done() callback to be invoked within this time or an error is thrown","default":20000},"retryAssertionTimeout":{"type":"integer","description":"Automatically retrying failed assertions - You can tell Nightwatch to automatically retry failed assertions until a given timeout is reached, before the test runner gives up and fails the test.","default":5000},"reporter":{}}},"dotenv":{"type":"object","description":"Configuration settings for the dotenv module - a zero-dependency module that loads environment variables from a .env file into process.env. More details on https://www.npmjs.com/package/dotenv"},"persist_globals":{"type":"boolean","description":"Persist the same globals object between runs or have a (deep) copy of it per each test; this can be useful when persisting data between test suites is needed, such as a cookie or session information","default":false},"output_folder":{"type":"string","description":"The location where the JUnit XML report files will be saved. Set this to false if you want to disable XML reporting","default":"tests_output"},"src_folders":{"type":["null","string","array"],"description":"A string or array of folders (excluding subfolders) where the tests are located.","items":{"type":"string"},"default":null},"live_output":{"type":"boolean","description":"Used when running in parallel to determine if the output should be collected and displayed at the end.","default":false},"disable_colors":{"type":"boolean","description":"Used to disable colored output in the terminal.","default":false},"parallel_process_delay":{"type":"integer","description":"Used when running in parallel to specify the delay (in milliseconds) between starting the child processes","default":10},"selenium":{"type":"object","description":"An object containing Selenium Server related configuration options","properties":{"start_process":{"type":"boolean","default":false},"cli_args":{"type":["object","array"]},"server_path":{"type":["null","string"],"default":null},"log_path":{"type":["string","boolean"],"default":""},"port":{},"check_process_delay":{"type":"integer","default":500},"max_status_poll_tries":{"type":"integer","default":15},"status_poll_interval":{"type":"integer","default":200}}},"start_session":{"type":"boolean","description":"Whether or not to automatically start the Selenium/WebDriver session. If running unit tests, this should be set tot false.","default":true},"end_session_on_fail":{"type":"boolean","description":"End the session automatically when the test is being terminated, usually after a failed assertion.","default":true},"skip_testcases_on_fail":{"description":"Skip the remaining test cases from the current test suite, when one test case fails."},"test_workers":{"type":["boolean","object"],"description":"Whether or not to run individual test files in parallel.","default":false,"properties":{"enabled":{"type":"boolean"},"workers":{"type":["string","number"],"description":"Automatically compute the number of workers based on CPU cores with \"auto\" or manually specify the number of workers"},"node_options":{"type":["string","array"],"description":"Pass node arguments to individual workers (all of the process.execArgv using \"auto\" or selectively pass node arguments via [\"--inspect\"])","items":{"type":"string"}}}},"test_runner":{"type":"string","description":"Specifies which test runner to use: default|mocha","default":"default"},"webdriver":{"type":"object","description":"Defines options used to connect to the WebDriver/Selenium server","properties":{"start_process":{"type":"boolean","default":false},"cli_args":{"type":["object","array"]},"server_path":{"type":["null","string"],"default":null},"log_path":{"type":"string"},"use_legacy_jsonwire":{},"check_process_delay":{"type":"integer","description":"Time to wait (in ms) before starting to check the Webdriver server is up and running","default":100},"max_status_poll_tries":{"type":"integer","description":"Maximum number of ping status check attempts before returning a timeout error","default":10},"status_poll_interval":{"type":"integer","description":"Interval (in ms) to use between status ping checks when checking if the Webdriver server is up and running","default":200},"process_create_timeout":{"type":"integer","description":"The entire time (in ms) to wait for the Node.js process to be created and running (default is 2 min), including spawning the child process and checking the status","default":120000},"host":{},"port":{},"ssl":{},"proxy":{},"timeout_options":{"type":"object","properties":{"timeout":{},"retry_attempts":{}}},"default_path_prefix":{},"username":{},"access_key":{}}},"test_settings":{"type":"object"},"launch_url":{"type":"string","description":"A url which can be used later in the tests as the main url to load.","default":""},"silent":{"type":"boolean","description":"set to false if you want to show the extended http traffic command logs from the WebDriver server.","default":true},"output":{"type":"boolean","description":"Used to disable terminal output completely.","default":true},"detailed_output":{"type":"boolean","description":"Set this to false if you'd like to only see the test case name displayed and pass/fail status.","default":true},"output_timestamp":{"type":"boolean","description":"Set this to true if you'd like to see timestamps next to the logging output","default":false},"disable_error_log":{"type":"boolean","description":"Set this to true if you'd like to not display errors during the execution of the test (they are shown at the end always).","default":false},"screenshots":{"type":"boolean","description":"Take error and failure screenshots during test execution","default":false},"log_screenshot_data":{"type":"boolean","description":"Used to enable showing the Base64 image data in the (verbose) log when taking screenshots.","default":false},"desiredCapabilities":{"type":"object","properties":{"browserName":{"type":"string"}}},"exclude":{"type":["null","array"],"description":"An array of folders or file patterns to be skipped (relative to the main source folder).","items":{"type":"string"},"default":null},"filter":{"type":["null","string"],"description":"Folder or file pattern to be used when loading the tests. Files that don't match this pattern will be ignored.","default":null},"skipgroup":{"type":"string","description":"Skip a group of tests (a subfolder); can be a list of comma-separated values (no space)","default":""},"sync_test_names":{"type":"boolean","default":true},"skiptags":{"type":"string","description":"Skip tests by tag name; can be a list of comma-separated values (no space)","default":""},"use_xpath":{"type":"boolean","description":"Use xpath as the default locator strategy","default":false},"parallel_mode":{"type":"boolean","default":false},"report_prefix":{"type":"string","default":""},"unit_tests_mode":{"type":"boolean","default":false},"default_reporter":{"type":"string","default":"junit"}},"type":"object"}
</schema>

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

Location(s) where custom commands will be loaded from.

Location(s) where custom assertions will be loaded from.

Location(s) where page object files will be loaded from.

Location of an external globals module which will be loaded and made available to the test as a property globals on the main client instance.

An object which will be made available on the main test api, throughout the test execution

This controls whether to abort the test execution when an assertion failed and skip the rest. It's being used in waitFor commands and expect assertions

This controls whether to abort the test execution when an element cannot be located; an error is logged in all cases, but this also enables skipping the rest of the testcase; It's being used in element commands such as .click() or .getText()

This will overwrite the default polling interval (currently 500ms) for waitFor commands and expect assertions that use retry

Default timeout value in milliseconds for waitFor commands and implicit waitFor value for expect assertions

This will cause waitFor commands on elements to throw an error if multiple elements are found using the given locate strategy and selector

By default a warning is printed if multiple elements are found using the given locate strategy and selector; set this to true to suppress those warnings

Controls the timeout value for async hooks. Expects the done() callback to be invoked within this time or an error is thrown

Controls the timeout value for when running async unit tests. Expects the done() callback to be invoked within this time or an error is thrown

Controls the timeout value for when executing the global async reporter. Expects the done() callback to be invoked within this time or an error is thrown

Automatically retrying failed assertions - You can tell Nightwatch to automatically retry failed assertions until a given timeout is reached, before the test runner gives up and fails the test.

Configuration settings for the dotenv module - a zero-dependency module that loads environment variables from a .env file into process.env. More details on https://www.npmjs.com/package/dotenv

Persist the same globals object between runs or have a (deep) copy of it per each test; this can be useful when persisting data between test suites is needed, such as a cookie or session information

The location where the JUnit XML report files will be saved. Set this to false if you want to disable XML reporting

A string or array of folders (excluding subfolders) where the tests are located.

Used when running in parallel to determine if the output should be collected and displayed at the end.

Used to disable colored output in the terminal.

Used when running in parallel to specify the delay (in milliseconds) between starting the child processes

An object containing Selenium Server related configuration options

Whether or not to automatically start the Selenium/WebDriver session. If running unit tests, this should be set tot false.

End the session automatically when the test is being terminated, usually after a failed assertion.

Skip the remaining test cases from the current test suite, when one test case fails.

Whether or not to run individual test files in parallel.

Automatically compute the number of workers based on CPU cores with "auto" or manually specify the number of workers

Pass node arguments to individual workers (all of the process.execArgv using "auto" or selectively pass node arguments via ["--inspect"])

Specifies which test runner to use: default|mocha

Defines options used to connect to the WebDriver/Selenium server

Time to wait (in ms) before starting to check the Webdriver server is up and running

Maximum number of ping status check attempts before returning a timeout error

Interval (in ms) to use between status ping checks when checking if the Webdriver server is up and running

The entire time (in ms) to wait for the Node.js process to be created and running (default is 2 min), including spawning the child process and checking the status

A url which can be used later in the tests as the main url to load.

set to false if you want to show the extended http traffic command logs from the WebDriver server.

Used to disable terminal output completely.

Set this to false if you'd like to only see the test case name displayed and pass/fail status.

Set this to true if you'd like to see timestamps next to the logging output

Set this to true if you'd like to not display errors during the execution of the test (they are shown at the end always).

Take error and failure screenshots during test execution

Used to enable showing the Base64 image data in the (verbose) log when taking screenshots.

An array of folders or file patterns to be skipped (relative to the main source folder).

Folder or file pattern to be used when loading the tests. Files that don't match this pattern will be ignored.

Skip a group of tests (a subfolder); can be a list of comma-separated values (no space)

Skip tests by tag name; can be a list of comma-separated values (no space)

Use xpath as the default locator strategy

Provide a JSON object that satisfies the schema "nightwatch". 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":"http://www.iptc.org/std/ninjs/ninjs-schema_2.0.json#","additionalProperties":false,"description":"A news item as JSON object -- copyright 2021 IPTC - International Press Telecommunications Council - www.iptc.org - This document is published under the Creative Commons Attribution 4.0 license, see  http://creativecommons.org/licenses/by/4.0/","name":"ninjs","properties":{"uri":{"title":"Uniform Resource Identifier","description":"The global unique identifier for this news object. This is the only required property and should identify the ninjs object, not be used for links to external resources etc.  nar:newsItem@guid","type":"string","format":"uri"},"type":{"title":"Type","description":"The generic news type of this news object. (Value 'component' added in version 1.2 as issue #21.). See: http://cv.iptc.org/newscodes/ninature/ nar:itemClass","type":"string","enum":["text","audio","video","picture","graphic","composite","component"]},"representationtype":{"title":"Representation type","description":"Indicates how complete this representation of a news item is. No mapping to nar. Specific for ninjs.","type":"string","enum":["full","partial"]},"profile":{"title":"Profile","description":"An identifier for the structure of the news object. This can be any string but we suggest something identifying the structure of the content such as 'text-only' or 'text-photo'. Profiles are typically provider-specific. nar:profile","type":"string"},"version":{"title":"Version","description":"The version of the news object which is identified by the uri property. nar:newsItem@version","type":"string"},"firstcreated":{"title":"First created","description":"Indicates when the first version of this ninjs object was created. (Added in version 1.2 from issue #5). nar:firstCreated","type":"string","format":"date-time"},"versioncreated":{"title":"Version created","description":"The date and time when this version of this ninjs object was created. nar:versionCreated","type":"string","format":"date-time"},"contentcreated":{"title":"Content created","description":"The date and time when the content of this ninjs object was originally created. For example and old photo that is now handled as a ninjs object. nar:contentCreated","type":"string","format":"date-time"},"embargoed":{"title":"Embargoed","description":"The date and time before which all versions of the news object are embargoed. If absent, this object is not embargoed. nar:embargoed","type":"string","format":"date-time"},"pubstatus":{"title":"Publication status","description":"The publishing status of the news object, its value is *usable* by default. nar:pubStatus","type":"string","enum":["usable","withheld","canceled"]},"urgency":{"title":"Urgency","description":"The editorial urgency of the content. Values from 1 to 9. 1 represents the highest urgency, 9 the lowest. nar:urgency","type":"number"},"copyrightholder":{"title":"Copyright holder","description":"The person or organisation claiming the intellectual property for the content. nar:copyrightHolder","type":"string"},"copyrightnotice":{"title":"Copyright notice","description":"Any necessary copyright notice for claiming the intellectual property for the content. nar:copyrightNotice","type":"string"},"usageterms":{"title":"Usage terms","description":"A natural-language statement about the usage terms pertaining to the content. nar:usageTerms","type":"string"},"ednote":{"title":"Editorial note","description":"A note that is intended to be read by internal staff at the receiving organisation, but not intended to be published. (Added in version 1.2 from issue #6.). (Consider using this before using the descriptions array.) ednote: nar:edNote","type":"string"},"language":{"title":"Language","description":"The human language used by the content. The value should follow IETF BCP47. nar:language","type":"string"},"descriptions":{"title":"Descriptions","description":"An array of one or more descriptions of the ninjs object. See also ednote for information from provider to receiver. Descriptions are seen as metadata. For a simple description use an array with one object only containing the value property. Role and contenttype are then undefined and it is up to the provider.","type":"array","items":{"type":"object","required":["value"],"additionalProperties":false,"properties":{"role":{"title":"Role","description":"The role of this description","type":"string"},"contenttype":{"title":"Content Type","description":"The IANA (Internet Assigned Numbers Authority) MIME type of the content of this description.","type":"string"},"value":{"title":"Value","description":"The descriptive text identified with the above role (and contenttype).","type":"string"}}}},"bodies":{"title":"Bodies","description":"An array of body objects with the content as text or with markup. For a simple body use an array with one object only containing the value property. Role and contenttype are then undefined and it is up to the provider.","type":"array","items":{"type":"object","required":["value"],"additionalProperties":false,"properties":{"role":{"title":"Role","description":"The role of this body","type":"string"},"contenttype":{"title":"Content Type","description":"The IANA (Internet Assigned Numbers Authority) MIME type of the content of this body.","type":"string"},"charcount":{"title":"Character count","description":"The total character count in this body excluding figure captions. (Added in version 1.2 according to issue #27.). nar:charcount","type":"number"},"wordcount":{"title":"Word count","description":"The total number of words in this body excluding figure captions. (Added in version 1.2 according to issue #27.). nar:wordcount","type":"number"},"value":{"title":"Value","description":"The body text identified with the above role and contenttype.","type":"string"}}}},"headlines":{"title":"Headlines","description":"An array of objects containing various types of headlines. For a simple headline use an array with one object only containing the value property. Role and contenttype are then undefined and it is up to the provider.","type":"array","items":{"type":"object","required":["value"],"additionalProperties":false,"properties":{"role":{"title":"Role","description":"The role of this headline","type":"string"},"contenttype":{"title":"Content Type","description":"The IANA (Internet Assigned Numbers Authority) MIME type of the content of this headline.","type":"string"},"value":{"title":"Value","description":"The headline identified with the above role and contenttype.","type":"string"}}}},"people":{"title":"People","description":"An array of objects describing individual human beings. nar:subject","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"title":"Name","description":"The name of a person","type":"string"},"rel":{"title":"Relationship","description":"The relationship of the content of the news object to the person","type":"string"},"uri":{"title":"URI","description":"The identifier for the person as a complete uri with the code.","type":"string","format":"uri"},"literal":{"title":"Literal","description":"The code for the person as a literal value.","type":"string"}}}},"organisations":{"title":"Organisations","description":"An array of objects describing administrative and functional structures which may, for example, act as as a business, as a political party or not-for-profit party. nar:subject","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"title":"Name","description":"The name of the organisation","type":"string"},"rel":{"title":"Relationship","description":"The relationship of the content of the news object to the organisation","type":"string"},"uri":{"title":"URI","description":"The identifier of the organisation as a complete uri","type":"string","format":"uri"},"literal":{"title":"Literal","description":"The code for the organisation as a literal","type":"string"},"symbols":{"title":"Symbols","description":"Symbols used for a financial instrument linked to the organisation at a specific market place","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"ticker":{"title":"Ticker","description":"Ticker symbol used for the financial instrument","type":"string"},"exchange":{"title":"Exchange","description":"Identifier for the marketplace which uses the ticker symbols of the ticker property","type":"string"}}}}}}},"places":{"title":"Places","description":"An array of named locations. nar:subject","additionalProperties":false,"type":"array","items":{"type":"object","anyOf":[{"properties":{"name":{"title":"Name","description":"The name of the place","type":"string"},"rel":{"title":"Relationship","description":"The relationship of the content of the news object to the place","type":"string"},"uri":{"title":"URI","description":"The identifier for the place as a complete uri","type":"string","format":"uri"},"literal":{"title":"Literal","description":"The code for the place as a literal","type":"string"}}}]}},"subjects":{"title":"Subjects","description":"An array of objects holding concepts with a relationship to the content. nar:subject","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"title":"Name","description":"The name of the subject","type":"string"},"rel":{"title":"Relationship","description":"The relationship of the content of the news object to the subject","type":"string"},"uri":{"title":"URI","description":"The identifier of the subject as a complete uri","type":"string","format":"uri"},"literal":{"title":"Literal","description":"The code for the subject as a string literal","type":"string"}}}},"events":{"title":"Events","description":"An array of objects describing something which happens in a planned or unplanned manner. nar:?","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"title":"Name","description":"The name of the event","type":"string"},"rel":{"title":"Relationship","description":"The relationship of the content of the news object to the event","type":"string"},"uri":{"title":"URI","description":"The identifier for the event as a complete uri","type":"string","format":"uri"},"literal":{"title":"Literal","description":"The code for the event as a string literal","type":"string"}}}},"objects":{"title":"Objects","description":"An array of objects describing something material, excluding persons. nar:subject","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"title":"Name","description":"The name of the object","type":"string"},"rel":{"title":"Relationship","description":"The relationship of the content of the news object to the object","type":"string"},"uri":{"title":"URI","description":"The identifier for the object as a complete uri","type":"string","format":"uri"},"literal":{"title":"Literal","description":"The code for the object as a string literal","type":"string"}}}},"infosources":{"title":"Info sources","description":"An array of parties (person or organisation) which originated, modified, enhanced, distributed, aggregated or supplied the content or provided some information used to create or enhance the content. (Added in version 1.2 according to issue #15.) .  infosource:  nar:infoSource","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"title":"Name","description":"The name of the infosource","type":"string"},"role":{"title":"Role","description":"The role the infosource in relationship to the content as a uri.","type":"string","format":"uri"},"uri":{"title":"URI","description":"The identifier of the infosource as a complete uri","type":"string","format":"uri"},"literal":{"title":"Literal","description":"The code for the infosource as a string literal","type":"string"}}}},"title":{"title":"Title","description":"A short natural-language name for the item. Title is metadata, use headlines for publishable headlines. (Added in version 1.2 according to issue #9). nar:itemMeta/title","type":"string"},"by":{"title":"By","description":"A natural-language statement about the creator (author, photographer etc.) of the content. nar:by","type":"string"},"slugline":{"title":"Slugline","description":"A human-readable identifier for the item. (Added in version 1.2 from issue #4.). nar:slugline","type":"string"},"located":{"title":"Located","description":"The name of the location from which the content originates. nar:located","type":"string"},"renditions":{"title":"Renditions","description":"An array of objects with different renditions of the news object. nar:remoteContent","type":"array","additionalProperties":false,"items":{"description":"A specific rendition of the content of the news object. (Description changed in version 1.2 according to issue #17.)","type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"title":"Name","description":"The name of this object in the array of renditions. For example 'thumbnail'","type":"string"},"href":{"title":"href","description":"The URL for accessing the rendition as a resource. nar:remoteContent@ref","type":"string","format":"uri"},"contenttype":{"title":"Content Type","description":"A MIME type which applies to this rendition. nar:remoteContent@contenttype","type":"string"},"title":{"title":"Title","description":"A title for the link to the rendition resource","type":"string"},"height":{"title":"Height","description":"For still and moving images: the height of the display area measured in pixels. nar:remoteContent@height","type":"number"},"width":{"title":"Width","description":"For still and moving images: the width of the display area measured in pixels. nar:remoteContent@width","type":"number"},"sizeinbytes":{"title":"Size in bytes","description":"The size of the rendition resource in bytes","type":"number"},"duration":{"title":"Duration","description":"The total time duration of the content in seconds. (Added in version 1.2. Issue #18). nar:remoteContent@duration","type":"number"},"format":{"title":"Format","description":"Binary format name. (Added in version 1.2. Issue #18). nar:remoteContent@format","type":"string"}}}},"associations":{"title":"Associations","description":"An array of objects with content of news objects which are associated with this news object.","type":"array","additionalProperties":false,"items":{"description":"One associated object where each object can use all properties in ninjs.","type":"object","anyOf":[{"properties":{"name":{"type":"string","description":"The name of this object in the array of associations. For example 'logo'"}},"required":["name"]},{"$ref":"#"}]}},"altids":{"title":"Alternative ids","description":"Alternative identifiers assigned to the content. Each alternative id can have a role and a value. nar:altId issue #3.","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"role":{"title":"Role","description":"The role of the alternative id","type":"string"},"value":{"title":"Value","description":"The alternative id value","type":"string"}}}},"trustindicators":{"title":"Trust indicators","description":"An array of objects to allow links to documents about trust indicators. issue #44. (Added in version 1.3)","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"role":{"title":"Role","description":"The role of the trust indicator as a complete uri","type":"string","format":"uri"},"title":{"title":"Title","description":"The title of the resource being referenced.","type":"string"},"href":{"title":"href","description":"The URL for accessing the trust indicator resource.","type":"string","format":"uri"}}}},"standard":{"title":"Standard","type":"object","description":"An object with information about standard, version and schema this instance is valid against. nar:standard, nar:standardversion and xml:schema issue #43. (Added in version 1.3)","additionalProperties":false,"properties":{"name":{"title":"Name of standard.","description":"For example ninjs. nar:standard","type":"string"},"version":{"title":"Version of standard.","description":"For example 1.3. nar:standardversion","type":"string"},"schema":{"title":"Schema","description":"The uri of the json schema to use for validation.","type":"string","format":"uri"}}},"genres":{"title":"Genres","description":"A nature, intellectual or journalistic form of the content. nar:genre. (Added in version 1.3)","type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"title":"Name","description":"The name of the genre","type":"string"},"uri":{"title":"URI","description":"The identifier of  the genre as a complete uri","type":"string","format":"uri"},"literal":{"title":"Literal","description":"The code for the genre as a string literal","type":"string"}}}},"rightsinfo":{"title":"Rights information","type":"object","description":"Expression of rights to be applied to content. nar:rightsInfo","properties":{"langid":{"type":"string","title":"Language id","description":"Identifier for the Rights Expression language used. nar:@langid","format":"uri"},"linkedrights":{"title":"Linked rights","description":"A link from the current Item to Web resource with rights related information. nar:link","type":"string","format":"uri"},"encodedrights":{"title":"Encoded Rights","additionalProperties":false,"type":"string","description":"Contains a rights expression as defined by a Rights Expression Language. nar:rightsExpressionXML or nar:rightsExpressionData"}},"oneOf":[{"required":["linkedrights"]},{"required":["encodedrights"]}]}},"required":["uri"],"title":"IPTC ninjs - News in JSON - version 2.0 (approved at IPTC Standards Committee October 2021)","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "IPTC ninjs - News in JSON - version 2.0 (approved at IPTC Standards Committee October 2021)". Here are the required top‑level fields: uri. Return only the valid JSON object.

ninjs

A news item as JSON object -- copyright 2021 IPTC - International Press Telecommunications Council - www.iptc.org - This document is published under the Creative Commons Attribution 4.0 license, see  http://creativecommons.org/licenses/by/4.0/

Uniform Resource Identifier

The global unique identifier for this news object. This is the only required property and should identify the ninjs object, not be used for links to external resources etc.  nar:newsItem@guid

Type

The generic news type of this news object. (Value 'component' added in version 1.2 as issue #21.). See: http://cv.iptc.org/newscodes/ninature/ nar:itemClass

text audio video picture graphic composite component

Representation type

Indicates how complete this representation of a news item is. No mapping to nar. Specific for ninjs.

Profile

An identifier for the structure of the news object. This can be any string but we suggest something identifying the structure of the content such as 'text-only' or 'text-photo'. Profiles are typically provider-specific. nar:profile

Version

The version of the news object which is identified by the uri property. nar:newsItem@version

First created

Indicates when the first version of this ninjs object was created. (Added in version 1.2 from issue #5). nar:firstCreated

Version created

The date and time when this version of this ninjs object was created. nar:versionCreated

Content created

The date and time when the content of this ninjs object was originally created. For example and old photo that is now handled as a ninjs object. nar:contentCreated

Embargoed

The date and time before which all versions of the news object are embargoed. If absent, this object is not embargoed. nar:embargoed

Publication status

The publishing status of the news object, its value is *usable* by default. nar:pubStatus

Urgency

The editorial urgency of the content. Values from 1 to 9. 1 represents the highest urgency, 9 the lowest. nar:urgency

Copyright holder

The person or organisation claiming the intellectual property for the content. nar:copyrightHolder

Copyright notice

Any necessary copyright notice for claiming the intellectual property for the content. nar:copyrightNotice

Usage terms

A natural-language statement about the usage terms pertaining to the content. nar:usageTerms

Editorial note

A note that is intended to be read by internal staff at the receiving organisation, but not intended to be published. (Added in version 1.2 from issue #6.). (Consider using this before using the descriptions array.) ednote: nar:edNote

Language

The human language used by the content. The value should follow IETF BCP47. nar:language

Descriptions

An array of one or more descriptions of the ninjs object. See also ednote for information from provider to receiver. Descriptions are seen as metadata. For a simple description use an array with one object only containing the value property. Role and contenttype are then undefined and it is up to the provider.

Role

The role of this description

Content Type

The IANA (Internet Assigned Numbers Authority) MIME type of the content of this description.

Value

The descriptive text identified with the above role (and contenttype).

Bodies

An array of body objects with the content as text or with markup. For a simple body use an array with one object only containing the value property. Role and contenttype are then undefined and it is up to the provider.

Role

The role of this body

Content Type

The IANA (Internet Assigned Numbers Authority) MIME type of the content of this body.

Character count

The total character count in this body excluding figure captions. (Added in version 1.2 according to issue #27.). nar:charcount

Word count

The total number of words in this body excluding figure captions. (Added in version 1.2 according to issue #27.). nar:wordcount

Value

The body text identified with the above role and contenttype.

Headlines

An array of objects containing various types of headlines. For a simple headline use an array with one object only containing the value property. Role and contenttype are then undefined and it is up to the provider.

Role

The role of this headline

Content Type

The IANA (Internet Assigned Numbers Authority) MIME type of the content of this headline.

Value

The headline identified with the above role and contenttype.

People

An array of objects describing individual human beings. nar:subject

Name

The name of a person

Relationship

The relationship of the content of the news object to the person

URI

The identifier for the person as a complete uri with the code.

Literal

The code for the person as a literal value.

Organisations

An array of objects describing administrative and functional structures which may, for example, act as as a business, as a political party or not-for-profit party. nar:subject

Name

The name of the organisation

Relationship

The relationship of the content of the news object to the organisation

URI

The identifier of the organisation as a complete uri

Literal

The code for the organisation as a literal

Symbols

Symbols used for a financial instrument linked to the organisation at a specific market place

Ticker

Ticker symbol used for the financial instrument

Exchange

Identifier for the marketplace which uses the ticker symbols of the ticker property

Places

An array of named locations. nar:subject

Name

The name of the place

Relationship

The relationship of the content of the news object to the place

URI

The identifier for the place as a complete uri

Literal

The code for the place as a literal

Subjects

An array of objects holding concepts with a relationship to the content. nar:subject

Name

The name of the subject

Relationship

The relationship of the content of the news object to the subject

URI

The identifier of the subject as a complete uri

Literal

The code for the subject as a string literal

Events

An array of objects describing something which happens in a planned or unplanned manner. nar:?

Name

The name of the event

Relationship

The relationship of the content of the news object to the event

URI

The identifier for the event as a complete uri

Literal

The code for the event as a string literal

Objects

An array of objects describing something material, excluding persons. nar:subject

Name

The name of the object

Relationship

The relationship of the content of the news object to the object

URI

The identifier for the object as a complete uri

Literal

The code for the object as a string literal

Info sources

An array of parties (person or organisation) which originated, modified, enhanced, distributed, aggregated or supplied the content or provided some information used to create or enhance the content. (Added in version 1.2 according to issue #15.) .  infosource:  nar:infoSource

Name

The name of the infosource

Role

The role the infosource in relationship to the content as a uri.

URI

The identifier of the infosource as a complete uri

Literal

The code for the infosource as a string literal

Title

A short natural-language name for the item. Title is metadata, use headlines for publishable headlines. (Added in version 1.2 according to issue #9). nar:itemMeta/title

By

A natural-language statement about the creator (author, photographer etc.) of the content. nar:by

Slugline

A human-readable identifier for the item. (Added in version 1.2 from issue #4.). nar:slugline

Located

The name of the location from which the content originates. nar:located

Renditions

An array of objects with different renditions of the news object. nar:remoteContent

A specific rendition of the content of the news object. (Description changed in version 1.2 according to issue #17.)

Name

The name of this object in the array of renditions. For example 'thumbnail'

href

The URL for accessing the rendition as a resource. nar:remoteContent@ref

Content Type

A MIME type which applies to this rendition. nar:remoteContent@contenttype

Title

A title for the link to the rendition resource

Height

For still and moving images: the height of the display area measured in pixels. nar:remoteContent@height

Width

For still and moving images: the width of the display area measured in pixels. nar:remoteContent@width

Size in bytes

The size of the rendition resource in bytes

Duration

The total time duration of the content in seconds. (Added in version 1.2. Issue #18). nar:remoteContent@duration

Format

Binary format name. (Added in version 1.2. Issue #18). nar:remoteContent@format

Associations

An array of objects with content of news objects which are associated with this news object.

One associated object where each object can use all properties in ninjs.

The name of this object in the array of associations. For example 'logo'

Alternative ids

Alternative identifiers assigned to the content. Each alternative id can have a role and a value. nar:altId issue #3.

Role

The role of the alternative id

Value

The alternative id value

Trust indicators

An array of objects to allow links to documents about trust indicators. issue #44. (Added in version 1.3)

Role

The role of the trust indicator as a complete uri

Title

The title of the resource being referenced.

href

The URL for accessing the trust indicator resource.

Standard

An object with information about standard, version and schema this instance is valid against. nar:standard, nar:standardversion and xml:schema issue #43. (Added in version 1.3)

Name of standard.

For example ninjs. nar:standard

Version of standard.

For example 1.3. nar:standardversion

Schema

The uri of the json schema to use for validation.

Genres

A nature, intellectual or journalistic form of the content. nar:genre. (Added in version 1.3)

Name

The name of the genre

URI

The identifier of  the genre as a complete uri

Literal

The code for the genre as a string literal

Rights information

Expression of rights to be applied to content. nar:rightsInfo

Language id

Identifier for the Rights Expression language used. nar:@langid

Linked rights

A link from the current Item to Web resource with rights related information. nar:link

Encoded Rights

Contains a rights expression as defined by a Rights Expression Language. nar:rightsExpressionXML or nar:rightsExpressionData

Provide a JSON object that satisfies the schema "IPTC ninjs - News in JSON - version 2.0 (approved at IPTC Standards Committee October 2021)". Here are the required top‑level fields: uri. 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#","title":"Nitro Modules Configuration","type":"object","required":["cxxNamespace","ios","android","autolinking"],"properties":{"cxxNamespace":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Represents the C++ namespace of the module that will be generated. This can have multiple sub-namespaces, and is always relative to `margelo::nitro`."},"ios":{"type":"object","required":["iosModuleName"],"properties":{"iosModuleName":{"type":"string","minLength":1,"description":"Represents the iOS module name of the module that will be generated This will be used to generate Swift bridges, as those are always namespaced within the clang module. If you are using CocoaPods, this should be the Pod name defined in the `.podspec`."}},"description":"Required: iOS configuration"},"android":{"type":"object","required":["androidNamespace","androidCxxLibName"],"properties":{"androidNamespace":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Represents the Android namespace ('package') of the module that will be generated. This can have multiple sub-namespaces, and is always relative to `com.margelo.nitro`."},"androidCxxLibName":{"type":"string","minLength":1,"description":"Represents the name of the Android C++ library (aka name in CMakeLists.txt `add_library(..)`). This will be loaded via `System.loadLibrary(...)`."}},"description":"Required: Android configuration"},"autolinking":{"type":"object","description":"Configures the code that gets generated for autolinking (registering) Hybrid Object constructors.","patternProperties":{"^.*$":{"type":"object","oneOf":[{"properties":{"cpp":{"type":"string"}},"additionalProperties":false,"required":["cpp"]},{"properties":{"swift":{"type":"string"},"kotlin":{"type":"string"}},"minProperties":1,"additionalProperties":false}]}}},"ignorePaths":{"type":"array","items":{"type":"string"},"description":"A list of paths relative to the project directory that should be ignored by nitrogen. Nitrogen will not look for `.nitro.ts` files in these directories."},"gitAttributesGeneratedFlag":{"type":"boolean","default":true,"description":"Configures whether all nitro-generated files should be marked as `linguist-generated` for GitHub. This excludes generated files from diffing and language statistics."}}}
</schema>

[User] Provide a JSON object that satisfies the schema "Nitro Modules Configuration". Here are the required top‑level fields: cxxNamespace, ios, android, autolinking. Return only the valid JSON object.

Nitro Modules Configuration

Represents the C++ namespace of the module that will be generated. This can have multiple sub-namespaces, and is always relative to `margelo::nitro`.

Represents the iOS module name of the module that will be generated This will be used to generate Swift bridges, as those are always namespaced within the clang module. If you are using CocoaPods, this should be the Pod name defined in the `.podspec`.

Required: iOS configuration

Represents the Android namespace ('package') of the module that will be generated. This can have multiple sub-namespaces, and is always relative to `com.margelo.nitro`.

Represents the name of the Android C++ library (aka name in CMakeLists.txt `add_library(..)`). This will be loaded via `System.loadLibrary(...)`.

Required: Android configuration

Configures the code that gets generated for autolinking (registering) Hybrid Object constructors.

A list of paths relative to the project directory that should be ignored by nitrogen. Nitrogen will not look for `.nitro.ts` files in these directories.

Configures whether all nitro-generated files should be marked as `linguist-generated` for GitHub. This excludes generated files from diffing and language statistics.

Provide a JSON object that satisfies the schema "Nitro Modules Configuration". Here are the required top‑level fields: cxxNamespace, ios, android, autolinking. 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>
{"$comment":"https://github.com/nix-community/nixd/blob/main/docs/user-guide.md#configuration","$id":"https://json.schemastore.org/nixd-schema.json","$schema":"http://json-schema.org/draft-07/schema#","definitions":{"target":{"description":"Nix installables that will be used for root translation unit.","type":"object","properties":{"args":{"description":"Accept args as \"nix eval\"","type":"array","items":{"type":"string"}},"installable":{"description":"\"nix eval\"","type":"string"}}}},"properties":{"eval":{"description":"The evaluation section, provide auto completion for dynamic bindings.","type":"object","properties":{"target":{"$ref":"#/definitions/target"},"depth":{"description":"Extra depth for evaluation","type":"integer","default":0},"workers":{"description":"The number of workers for evaluation task. defaults to std::thread::hardware_concurrency","type":"integer"}}},"formatting":{"command":{"description":"Which command you would like to do formatting","default":"nixfmt","type":"string"}},"options":{"description":"Tell the language server your desired option set, for completion. This is lazily evaluated.","type":"object","properties":{"enable":{"description":"Enable option completion task. If you are writing a package, disable this","type":"boolean","default":"false"},"target":{"$ref":"#/definitions/target"}}}},"title":"JSON schema for nixd","type":"object"}
</schema>

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

Nix installables that will be used for root translation unit.

Accept args as "nix eval"

"nix eval"

The evaluation section, provide auto completion for dynamic bindings.

Extra depth for evaluation

The number of workers for evaluation task. defaults to std::thread::hardware_concurrency

Which command you would like to do formatting

Tell the language server your desired option set, for completion. This is lazily evaluated.

Enable option completion task. If you are writing a package, disable this

JSON schema for nixd

Provide a JSON object that satisfies the schema "JSON schema for nixd". 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":"JSON schema for NLU (npm-link-up) library.","$schema":"http://json-schema.org/draft-07/schema#","type":"object","additionalProperties":false,"oneOf":[{"required":["list"]},{"required":["packages"]},{"required":["deps"]}],"definitions":{"PackagesMap":{"additionalProperties":{},"type":"object"}},"properties":{"$schema":{"type":"string"},"alwaysReinstall":{"type":"boolean"},"comments":{"items":{"type":"string"},"type":"array"},"deps":{"items":{"type":"string"},"type":"array"},"ignore":{"items":{"type":"string"},"type":"array"},"linkToItself":{"type":"boolean"},"linkable":{"enum":[true],"type":"boolean"},"list":{"items":{"type":"string"},"type":"array"},"localSettings":{"additionalProperties":{},"type":"object"},"npm-link-up":{"type":"boolean"},"packages":{"$ref":"#/definitions/PackagesMap"},"searchRoots":{"items":{"type":"string"},"type":"array"}}}
</schema>

[User] Provide a JSON object that satisfies the schema "JSON schema for NLU (npm-link-up) library.". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Provide a JSON object that satisfies the schema "JSON schema for NLU (npm-link-up) library.". 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 "node-config-schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Provide a JSON object that satisfies the schema "node-config-schema". 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/nodehawkrc.json","properties":{"paths":{"$id":"#/properties/paths","description":"A string or an array of paths to watch. Supports globbing.","default":"./src","examples":["./src"],"oneOf":[{"type":"string","default":"./src"},{"type":"array","default":["./src"],"items":{"type":"string"}}]},"root":{"$id":"#/properties/root","type":"string","description":"The root path from which all other paths will be resolved.","default":".","examples":["."]},"ignored":{"$id":"#/properties/ignored","type":"string","description":"Paths, globs or regular expressions to ignore.","default":""},"exec":{"$id":"#/properties/exec","type":"string","description":"The command to execute on file change.","default":"","examples":["babel-node src/server","ts-node src/server"]},"port":{"$id":"#/properties/port","type":"integer","description":"The port on which the server should run. This is passed to your application as `process.env.PORT` which should be used by you.","default":4000},"logLevel":{"$id":"#/properties/logLevel","type":"integer","description":"The level of logging. 0 - fatal, 1 - error, 2 - warning, 3 - info, 4 - debug","default":3},"buffer":{"$id":"#/properties/buffer","type":"integer","description":"The buffer duration to wait before triggering a restart.","default":1500},"bufferPoll":{"$id":"#/properties/bufferPoll","type":"integer","description":"The buffer polling interval to check for the file stability.","default":100},"display":{"$id":"#/properties/display","type":"object","description":"The various messages to display during different events.","properties":{"onBeforeStart":{"$id":"#/properties/display/properties/onBeforeStart","type":"string","description":"The message to display before the watcher starts.","default":"Starting..."},"onStart":{"$id":"#/properties/display/properties/onStart","type":"string","description":"The message to display after the watcher starts.","default":"Started"},"onBeforeRestart":{"$id":"#/properties/display/properties/onBeforeRestart","type":"string","description":"The message to display before the watcher restarts.","default":"Restarting..."},"onRestart":{"$id":"#/properties/display/properties/onRestart","type":"string","description":"The message to display after the watcher restarts.","default":"Restarted"},"onBeforeStop":{"$id":"#/properties/display/properties/onBeforeStop","type":"string","description":"The message to display before the watcher stops.","default":"Stopping..."}}},"clearScreen":{"$id":"#/properties/clearScreen","type":"boolean","description":"Clear the screen on start and on every restart.","default":true},"env":{"$id":"#/properties/env","type":"object","description":"A set of key-value pairs which will be promptly passed on to your process and accessible via `process.env`.","default":{}}},"required":["exec"],"title":"Nodehawk configuration schema.","type":"object"}
</schema>

[User] Provide a JSON object that satisfies the schema "Nodehawk configuration schema.". Here are the required top‑level fields: exec. Return only the valid JSON object.

A string or an array of paths to watch. Supports globbing.

The root path from which all other paths will be resolved.

Paths, globs or regular expressions to ignore.

The command to execute on file change.

babel-node src/server
ts-node src/server

The port on which the server should run. This is passed to your application as `process.env.PORT` which should be used by you.

The level of logging. 0 - fatal, 1 - error, 2 - warning, 3 - info, 4 - debug

The buffer duration to wait before triggering a restart.

The buffer polling interval to check for the file stability.

The various messages to display during different events.

The message to display before the watcher starts.

The message to display after the watcher starts.

The message to display before the watcher restarts.

The message to display after the watcher restarts.

The message to display before the watcher stops.

Clear the screen on start and on every restart.

A set of key-value pairs which will be promptly passed on to your process and accessible via `process.env`.

Nodehawk configuration schema.

Provide a JSON object that satisfies the schema "Nodehawk configuration schema.". Here are the required top‑level fields: exec. 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/nodemon.json","definitions":{"pathPattern":{"anyOf":[{"type":"string"},{"type":"object","properties":{"re":{"type":"string"}},"additionalProperties":false,"required":["re"],"description":"Regular expression"}]},"terminationSignals":{"anyOf":[{"const":"SIGTERM"},{"const":"SIGINT"},{"const":"SIGQUIT"},{"const":"SIGKILL"},{"const":"SIGHUP"}]},"variables":{"anyOf":[{"const":"{{pwd}}","description":"The current directory"},{"const":"{{filename}}","description":"The filename you pass to nodemon"}]}},"dependencies":{"pollingInterval":{"required":["legacyWatch"]},"nodeArgs":{"exec":{"const":"node"},"required":["exec"]}},"properties":{"colours":{"default":true,"description":"set to false to disable color output","type":"boolean"},"cwd":{"description":"change into <dir> before running the script","type":"string"},"delay":{"default":0,"description":"debounce restart for a number of milliseconds","type":"number"},"dump":{"default":false,"description":"print full debug configuration","type":"boolean"},"exec":{"description":"execute script with \"app\", ie. -x \"python -v\".  May use variables.","examples":["{{pwd}}/index.js --some-arg","{{filename}}"],"format":"<app> <your args>","type":"string"},"execMap":{"description":"The global config file is useful for setting up default executables","type":"object"},"exitcrash":{"description":"Exit nodemon after crash","type":"boolean"},"ext":{"default":"*","description":"extensions to look for, ie. \"js,jade,hbs\"","type":"string"},"ignore":{"description":"Ignore directory or file.  One entry per ignored value.  Wildcards are allowed.","items":{"$ref":"#/definitions/pathPattern","description":"Path or pattern of file or directory to ignore.  Can also use regular expressions wrapped in an object with a single property named \"re\".","examples":[".gitignore",".vscode","__tests__/*","__*__/*.js","*.test.js"]},"type":"array"},"ignoreRoot":{"description":"root paths to ignore","items":{"type":"string"},"type":"array"},"legacyWatch":{"default":false,"description":"use polling to watch for changes (typically needed when watching over a network/Docker)","type":"boolean"},"noUpdateNotifier":{"default":false,"description":"opt-out of update version check","type":"boolean"},"nodeArgs":{"description":"arguments to pass to node if exec is \"node\"","type":"array"},"pollingInterval":{"default":100,"description":"combined with legacyWatch, milliseconds to poll for (default 100)","type":"number"},"quiet":{"default":false,"description":"minimise nodemon messages to start/stop only","type":"boolean"},"runOnChangeOnly":{"default":false,"description":"execute script on change only, not startup","type":"boolean"},"signal":{"$ref":"#/definitions/terminationSignals","description":"use specified kill signal instead of default (ex. SIGTERM)","type":"string"},"spawn":{"default":false,"description":"force nodemon to use spawn (over fork) [node only]","type":"boolean"},"stdin":{"default":true,"description":"set to false to have nodemon pass stdin directly to child process","type":"boolean"},"verbose":{"default":false,"description":"show detail on what is causing restarts","type":"boolean"},"watch":{"description":"Watch directory or file.  One entry per watched value.  Wildcards are allowed.","items":{"$ref":"#/definitions/pathPattern","description":"Path or pattern of file or directory to watch.  Can also use regular expressions wrapped in an object with a single property named \"re\".","examples":["src/index.js","src","src/*.js","*.js"]},"type":"array"}},"title":"JSON Schema for Nodemon Config","type":"object"}
</schema>

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

Regular expression

The current directory

The filename you pass to nodemon

set to false to disable color output

change into <dir> before running the script

debounce restart for a number of milliseconds

print full debug configuration

execute script with "app", ie. -x "python -v".  May use variables.

The global config file is useful for setting up default executables

Exit nodemon after crash

extensions to look for, ie. "js,jade,hbs"

Ignore directory or file.  One entry per ignored value.  Wildcards are allowed.

Path or pattern of file or directory to ignore.  Can also use regular expressions wrapped in an object with a single property named "re".

root paths to ignore

use polling to watch for changes (typically needed when watching over a network/Docker)

opt-out of update version check

arguments to pass to node if exec is "node"

combined with legacyWatch, milliseconds to poll for (default 100)

minimise nodemon messages to start/stop only

execute script on change only, not startup

use specified kill signal instead of default (ex. SIGTERM)

force nodemon to use spawn (over fork) [node only]

set to false to have nodemon pass stdin directly to child process

show detail on what is causing restarts

Watch directory or file.  One entry per watched value.  Wildcards are allowed.

Path or pattern of file or directory to watch.  Can also use regular expressions wrapped in an object with a single property named "re".

JSON Schema for Nodemon Config

Provide a JSON object that satisfies the schema "JSON Schema for Nodemon Config". 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>
{"$id":"https://json.schemastore.org/noodl.schema.json","$ref":"#/definitions/RootConfig","$schema":"http://json-schema.org/draft-07/schema#","definitions":{"Action":{"additionalProperties":{},"properties":{"actionType":{"$ref":"#/definitions/ActionType"},"contentType":{"$ref":"#/definitions/ContentType"},"dataKey":{"$ref":"#/definitions/DataKeyString"},"dataObject":{"$ref":"#/definitions/DataObject"},"dismissOnTouchOutside":{"description":"Signals that a popup should close when a user clicks outside of it. This is used for closing modals/popups","type":"boolean"},"emit":{"$ref":"#/definitions/Emit"},"funcName":{"description":"A name/identifier for a function. This is used mainly for builtIn actions, where applications implement their own behavior and binds it to some object in the noodl","examples":["redraw","goto","saveSignature"],"title":"Function name","type":"string"},"goto":{"$ref":"#/definitions/Goto"},"object":{"anyOf":[{"type":"string"},{"type":"object"},{"type":"array"}],"title":"Eval object's object"},"popUpView":{"description":"A binding between a popUp or popUpDismiss component to a popUp action.","title":"A popUp component's identifier by popup behavior","type":"string"},"reload":{"description":"When set to true, this signals that a page should run its \"init\" operation upon visiting from the user. If it is false, a page will not run it, which can be used to  persist values when navigating pages","title":"Skip or run \"init\"","type":"boolean"},"timer":{"description":"A timer is useful for situations such as chat rooms where users will have a time limit before being getting out","title":"Timer","type":"string"},"timerTag":{"title":"Timer tag","type":"string"},"viewTag":{"$ref":"#/definitions/ViewTag"},"wait":{"description":"Used to prevent further actions from happening. For example, a popUp action with \"wait: true\" will open a pop up in the page and will not run actions that are next in the call stack. This can be used to restrict access to pages when authenticating","examples":[true,"5000"],"oneOf":[{"type":"boolean"},{"type":"number"}],"title":"Wait"}},"type":"object"},"ActionChain":{"description":"A chain of actions in sequential order","items":{"$ref":"#/definitions/UserEvent"},"title":"Action chain","type":"array"},"ActionType":{"description":"An identifier/name for an action","examples":["openCamera","openPhotoLibrary","openDocumentManager","pageJump","popUpDismiss","refresh","register","removeSignature","saveObject","saveSignature","updateObject","popUp","builtIn","evalObject"],"title":"Action type","type":"string"},"AwaitReference":{"description":"A reference that returns its result after the value at the referenced path is received","pattern":"^[=.]*[a-zA-Z0-9]+.*@$","title":"Await reference","type":"string"},"Boolean":{"description":"A boolean value is either one of \"true\", true, \"false\", or false","enum":["true","false",true,false],"title":"Boolean"},"Border":{"description":"Border styles","oneOf":[{"type":"string"},{"additionalProperties":true,"properties":{"color":{"$ref":"#/definitions/Color"},"line":{"examples":["dashed","solid"],"type":"string"},"style":{"$ref":"#/definitions/BorderStylePreset"},"width":{"$ref":"#/definitions/NoodlUnit"}},"type":"object"}],"title":"Border"},"BorderPreset1":{"description":"Removes border including the radius","enum":["1",1],"oneOf":[{"type":"string"},{"type":"number"}],"title":"Border style preset #1"},"BorderPreset2":{"description":"Removes border from all sides (including radius) except the bottom. This will create an underline effect","enum":[2,"2"],"oneOf":[{"type":"string"},{"type":"number"}],"title":"Border style preset #2"},"BorderPreset3":{"description":"Applies a solid border to all sides","enum":["3",3],"oneOf":[{"type":"string"},{"type":"number"}],"title":"Border style preset #3"},"BorderPreset4":{"description":"Sets the border to be a dashed border","enum":["4",4],"oneOf":[{"type":"string"},{"type":"number"}],"title":"Border style preset #4"},"BorderPreset5":{"description":"Removes border from all sides","enum":["5",5],"oneOf":[{"type":"string"},{"type":"number"}],"title":"Border style preset #5"},"BorderPreset6":{"description":"Sets the border to be a solid border. This will also remove border radius from all sides","enum":["6",6],"oneOf":[{"type":"string"},{"type":"number"}],"title":"Border style preset #1"},"BorderStylePreset":{"description":"A set of border presets, each applying a different style","oneOf":[{"$ref":"#/definitions/BorderPreset1"},{"$ref":"#/definitions/BorderPreset2"},{"$ref":"#/definitions/BorderPreset3"},{"$ref":"#/definitions/BorderPreset4"},{"$ref":"#/definitions/BorderPreset5"},{"$ref":"#/definitions/BorderPreset6"}],"title":"Border style preset"},"BuiltInEval":{"description":"Objects that become built in functions when parsed/serialized","patternProperties":{"^=.builtIn.[a-zA-Z0-9]+$":{"additionalProperties":true,"properties":{"dataIn":{"$ref":"#/definitions/DataIn"},"dataOut":{"$ref":"#/definitions/DataOut"}},"type":"object"}},"title":"Built in eval object","type":"object"},"Color":{"examples":["\"0x000000\""],"pattern":"^(0x)[a-zA-Z0-9]+$","title":"Color","type":"string"},"Component":{"additionalProperties":true,"description":"Components are the building blocks that construct to user interfaces","properties":{"audioStream":{"type":"boolean"},"borderRadius":{"$ref":"#/definitions/NoodlUnit"},"children":{"items":{"oneOf":[{"$ref":"#/definitions/Component"},{"$ref":"#/definitions/Reference"}]},"type":"array"},"contentType":{"$ref":"#/definitions/ContentType"},"dataKey":{"$ref":"#/definitions/DataKey"},"ecosObj":{"examples":["..document.ecosObj"],"type":"string"},"global":{"$ref":"#/definitions/Boolean","examples":["true"]},"image":{"type":"string"},"imgPath":{"type":"string"},"isEdit":{"$ref":"#/definitions/Boolean"},"isEditable":{"anyOf":[{"$ref":"#/definitions/Boolean"},{"type":"string"}]},"itemObject":{"description":"This is a common value used for iteratorVar","title":"itemObject","type":"string"},"iteratorVar":{"examples":["itemObject"],"title":"Iterator variable","type":"string"},"listObject":{"anyOf":[{"$ref":"#/definitions/Empty"},{"$ref":"#/definitions/Reference","examples":["..listData.contactList.docs"]},{"type":"array"}],"title":"List data"},"onBlur":{"oneOf":[{"$ref":"#/definitions/ActionChain"},{"$ref":"#/definitions/UserEvent"}]},"onChange":{"oneOf":[{"$ref":"#/definitions/ActionChain"},{"$ref":"#/definitions/UserEvent"}]},"onClick":{"oneOf":[{"$ref":"#/definitions/ActionChain"},{"$ref":"#/definitions/UserEvent"}]},"onEvent":{"examples":["onNewEcosDoc"],"type":"string"},"onFocus":{"oneOf":[{"$ref":"#/definitions/ActionChain"},{"$ref":"#/definitions/UserEvent"}]},"onHover":{"oneOf":[{"$ref":"#/definitions/ActionChain"},{"$ref":"#/definitions/UserEvent"}]},"onInput":{"oneOf":[{"$ref":"#/definitions/ActionChain"},{"$ref":"#/definitions/UserEvent"}]},"onMouseEnter":{"oneOf":[{"$ref":"#/definitions/ActionChain"},{"$ref":"#/definitions/UserEvent"}]},"onMouseLeave":{"oneOf":[{"$ref":"#/definitions/ActionChain"},{"$ref":"#/definitions/UserEvent"}]},"onMouseOut":{"oneOf":[{"$ref":"#/definitions/ActionChain"},{"$ref":"#/definitions/UserEvent"}]},"onMouseOver":{"oneOf":[{"$ref":"#/definitions/ActionChain"},{"$ref":"#/definitions/UserEvent"}]},"options":{"examples":["..formData.options"],"oneOf":[{"type":"string"},{"type":"array"}]},"overflow":{"examples":["hidden"],"type":"string"},"path":{"$ref":"#/definitions/Path"},"placeholder":{"oneOf":[{"examples":["..myPlaceholder"],"type":"string"},{"$ref":"#/definitions/If"},{"properties":{"emit":{"$ref":"#/definitions/Emit"}},"type":"object"}]},"popUpView":{"type":"string"},"postMessage":{"type":"array"},"poster":{"description":"A cover image used on video components. When a video has not been interacted with by a user, a cover image is displayed. This value can be used for the cover image","examples":["poster.png"],"title":"Cover image","type":"string"},"required":{"oneOf":[{"examples":["true","false"],"type":"string"},{"type":"boolean"}]},"resource":{"examples":["https://google.com/someImage.jpeg"],"type":"string"},"style":{"$ref":"#/definitions/Style"},"text":{"$ref":"#/definitions/Text"},"text=func":{"description":"A function to transform a component's text. A component must have the 'text' property.","examples":["=.builtIn.system.configUrl"],"title":"Text transformer","type":"string"},"textAlign":{"$ref":"#/definitions/TextAlign"},"textBoard":{"$ref":"#/definitions/TextBoard"},"type":{"$ref":"#/definitions/ComponentType"},"videoFormat":{"examples":["mp4"],"type":"string"},"videoStream":{"type":"boolean"},"viewTag":{"$ref":"#/definitions/ViewTag"},"zIndex":{"examples":["\"1000\""],"type":"number"}},"title":"Component","type":"object"},"ComponentType":{"examples":["button","canvas","chart","chatList","ecosDoc","divider","footer","header","image","label","list","listItem","map","page","plugin","pluginHead","pluginBodyTop","pluginBodyTail","popUp","register","scrollView","textField","textView","video","view"],"title":"Component type","type":"string"},"ConfigVersionObjectByDevice":{"additionalProperties":false,"properties":{"cadlVersion":{"properties":{"stable":{"examples":["0.56d"],"type":"string"},"test":{"examples":["0.56d"],"type":"string"}},"type":"object"}},"title":"Root config version object","type":"object"},"ContentType":{"description":"Determines the content type of the component. For example, a textField component may be a date textField if it has contentType: date, or a password textField with contentType: password, etc","examples":["countryCode","email","date","file","formattedDate","formattedDuration","hidden","listObject","messageHidden","number","password","passwordHidden","phone","phoneNumber","tel","text","timer","videoSubStream"],"title":"Content type","type":"string"},"DataIn":{"$ref":"#/definitions/Value","description":"Argument(s) to the surrounding built in function","title":"Data in"},"DataKey":{"anyOf":[{"$ref":"#/definitions/DataKeyString"},{"$ref":"#/definitions/DataKeyObject"}],"description":"A value/pointer to a a property of an object","title":"Data key"},"DataKeyObject":{"description":"Data key in the emit object","patternProperties":{"^[a-zA-Z0-9]+$":{"examples":["{var:\"\"}"],"type":"object"}},"title":"Data key","type":"object"},"DataKeyString":{"description":"The path to a data object or value. It might provide a different behavior depending on where it is placed. For example, a dataKey set on a textField component will bind its value to the path in the dataKey, enabling it to mutate the value while updating textField's value","examples":["formData.password","SignIn.formData.password"],"title":"Data key","type":"string"},"DataObject":{"description":"An object that contains data. It is most commonly used in actions such as updateObject as a way to update its data values","title":"Data object","type":"string"},"DataOut":{"$ref":"#/definitions/Value","description":"Return value(s) to the surrounding built in function","title":"Data out"},"Emit":{"additionalProperties":false,"description":"An emit is a special type of action that usually contains a dataKey paired with a list of actions that are called in order. Some emits can contain just a list of actions. When paired with a dataKey it is usually mutating the value at the path in the dataKey","properties":{"actions":{"items":{"anyOf":[{"$ref":"#/definitions/Action"},{"$ref":"#/definitions/BuiltInEval"}]},"title":"Emit actions","type":"array"},"dataKey":{"oneOf":[{"type":"string"},{"type":"object"}],"title":"Emit action data key string or data key object"}},"required":["actions"],"title":"Emit","type":"object"},"Empty":{"const":"","description":"Empty value (empty string)","title":"Empty","type":"string"},"Goto":{"anyOf":[{"examples":["SignIn"],"type":"string"},{"$ref":"#/definitions/GotoObject","type":"object"},{"$ref":"#/definitions/GotoPageComponentUrl","type":"string"}],"description":"The destination the user should navigate to","not":{"type":"number"},"title":"Goto"},"GotoObject":{"properties":{"destination":{"examples":["SignIn"],"type":"string"}},"title":"Goto (object)","type":"object"},"GotoPage":{"examples":["SignIn","SignOut"],"title":"Goto (string)","type":"string"},"GotoPageComponentUrl":{"examples":["Dashboard@SignIn#someViewTag"],"pattern":"[a-zA-Z0-9]+@[a-zA-Z0-9]+#[a-zA-Z0-9]+","title":"Goto url","type":"string"},"If":{"description":"If objects contain an array with three items used for conditional checks. The first item is used as a test for truthiness which can be in the form of any data type such as a string, number, boolean, object, etc. Either the second or third item is returned depending on the result of the truthiness test","properties":{"if":{"items":{"$ref":"#/definitions/Value"},"maxItems":3,"minItems":3,"type":"array"}},"title":"A condition evaluation","type":"object"},"Init":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/definitions/If"},{"type":"string"},{"$ref":"#/definitions/Goto"},{"const":[""],"title":"Page init","type":"string"}]},"type":"array"},{"$ref":"#/definitions/MixedActionChain"}],"description":"One or more action(s) which will occur when entering a page","title":"Init"},"LocalEvalReference":{"description":"Mutates the value at the referenced path after receiving its result","pattern":"^=[.][.][a-zA-Z0-9]+.*$","title":"Local eval reference","type":"string"},"LocalReference":{"description":"A reference whose scope is within the page object, making them invisible to the objects outside of its scope","pattern":"^[.][.][a-zA-Z0-9]+.*$","title":"Local reference","type":"string"},"MixedActionChain":{"description":"An ActionChain but also includes the BuiltInEval objects =.builtIn.* as well as await/eval references","items":{"anyOf":[{"$ref":"#/definitions/ActionChain"},{"items":{"$ref":"#/definitions/BuiltInEval"},"type":"array"},{"patternProperties":{"(=.[a-zA_Z0-9])*@$":{"$ref":"#/definitions/Value"}},"type":"object"}]},"title":"ActionChain + Init","type":"array"},"NoodlUnit":{"description":"A measurement adaptive to the size of the viewport","examples":["\"0\"","\"0.1\"","\"1\""],"title":"Noodl unit (ex: \"0.1\", \"0.25\", etc)","type":"string"},"Page":{"additionalProperties":{},"description":"A page object","properties":{"check":{"$ref":"#/definitions/Init"},"components":{"items":{"$ref":"#/definitions/Component"},"title":"Page components","type":"array"},"init":{"oneOf":[{"$ref":"#/definitions/Init"},{"const":""}]},"module":{"$ref":"#/definitions/PageModule"},"pageNumber":{"$ref":"#/definitions/PageNumber"},"save":{"$ref":"#/definitions/Init"},"title":{"description":"Titles can be used to represent the page","examples":["My Title"],"title":"Page title","type":"string"},"update":{"$ref":"#/definitions/Init"},"viewPort":{"description":"Determines the initial scroll position for the user","examples":["top","center","bottom"],"type":"string"}},"title":"Page","type":"object"},"PageActions":{"items":{"anyOf":[{"$ref":"#/definitions/If"},{"properties":{"emit":{"$ref":"#/definitions/Emit"}},"type":"object"},{"type":"object"},{"$ref":"#/definitions/BuiltInEval"}],"type":"array"},"title":"Page actions","type":"array"},"PageModule":{"examples":["admin","business"],"title":"Page module","type":"string"},"PageNumber":{"description":"A page number may help distinguish between pages with similar names","examples":["\"219\""],"title":"Page number","type":"string"},"Path":{"description":"A path can be in the form of a string, an if object, or an emit object","oneOf":[{"anyOf":[{"examples":["logo.png","SignIn"],"type":"string"},{"$ref":"#/definitions/GotoPageComponentUrl"}]},{"anyOf":[{"$ref":"#/definitions/BuiltInEval"},{"$ref":"#/definitions/If"},{"properties":{"emit":{"$ref":"#/definitions/Emit"}},"type":"object"}]}],"title":"Destination pointing to a separate page or url"},"Reference":{"description":"Placeholder values that obtain their real values at a later time","oneOf":[{"$ref":"#/definitions/LocalReference"},{"$ref":"#/definitions/RootReference"},{"$ref":"#/definitions/LocalEvalReference"},{"$ref":"#/definitions/RootEvalReference"},{"$ref":"#/definitions/AwaitReference"}],"title":"Reference","type":"string"},"Root":{"additionalProperties":true,"description":"The root/base object. It is global to all descendants","properties":{"BaseCSS":{"properties":{"Style":{"$ref":"#/definitions/Style"}},"title":"Base CSS styles","type":"object"},"BaseDataModel":{"additionalProperties":{"anyOf":[{"type":"object"}]},"properties":{"Config":{"$ref":"#/definitions/RootConfig"},"Global":{"type":"object"}},"title":"Base data models","type":"object"},"BasePage":{"title":"Base page components","type":"object"},"Config":{"$ref":"#/definitions/RootConfig","title":"Alias of RootConfig"},"Global":{"description":"This can be accessed and mutated by any object at any time","title":"Global object","type":"object"}},"title":"Root object","type":"object"},"RootConfig":{"additionalProperties":true,"properties":{"android":{"$ref":"#/definitions/ConfigVersionObjectByDevice","type":"object"},"apiCheck":{"type":"object"},"apiHost":{"type":"string"},"apiPort":{"examples":["443"],"type":"string"},"appApiHost":{"type":"string"},"cadlBaseUrl":{"type":"string"},"cadlMain":{"examples":["cadlEndpoint.yml"],"type":"string"},"cadlVersion":{"type":"object"},"connectiontimeout":{"examples":["5"],"type":"string"},"debug":{"oneOf":[{"examples":["console_log_api"],"type":"string"},{"type":"object"}]},"elasticClient":{"type":"object"},"ios":{"$ref":"#/definitions/ConfigVersionObjectByDevice","type":"object"},"isGetPosition":{"$ref":"#/definitions/Boolean"},"keywords":{"items":{"type":"string"},"type":"array"},"loadingLevel":{"examples":["1"],"type":"number"},"log":{"type":"string"},"myBaseUrl":{"type":"string"},"searchLink":{"type":"object"},"syncHost":{"type":"string"},"timestamp":{"examples":[5272021],"type":"number"},"viewWidthHeightRatio":{"properties":{"max":{"examples":[0.56],"type":"number"},"min":{"examples":[0.7],"type":"number"}},"type":"object"},"web":{"$ref":"#/definitions/ConfigVersionObjectByDevice"},"webApiHost":{"type":"string"}},"title":"Root/base config","type":"object"},"RootEvalReference":{"description":"Mutates the value at the root referenced path after receiving its result","pattern":"^=[.][a-zA-Z0-9]+.*$","title":"Root eval reference","type":"string"},"RootReference":{"description":"A reference whose scope is at the global level","pattern":"^[.][a-zA-Z0-9]+.*$","title":"Root reference","type":"string"},"SelectOptions":{"description":"Options for a select component. These are the items that appear in the drop down menu when interacting with a select component","items":{"anyOf":[{"type":"string"},{"type":"number"}]},"title":"Select options","type":"array"},"Style":{"additionalProperties":true,"properties":{"align":{"description":"The alignment in a block. If align is horizontal, siblings will align horizontally, vice versa. This is functionally equivalent to the \"axis\" keyword","examples":["centerX","centerY"],"title":"Alignment","type":"string"},"axis":{"description":"The axis in a block. If axis is horizontal, siblings will align horizontally, vice versa. This was previously used in list/listItem components","examples":["horizontal","vertical"],"title":"Axis","type":"string"},"backgroundColor":{"examples":["\"0x030303\""],"title":"Background color","type":"string"},"border":{"$ref":"#/definitions/Border"},"borderBottom":{"title":"Bottom border","type":"string"},"borderColor":{"examples":["\"0x000000\""],"title":"Border color","type":"string"},"borderRadius":{"$ref":"#/definitions/NoodlUnit","title":"Border radius"},"borderWidth":{"$ref":"#/definitions/NoodlUnit","title":"Border width"},"boxShadow":{"description":"Applies a box shadow style effect","title":"Box shadow","type":"string"},"boxSizing":{"examples":["border-box","content-box"],"title":"Box sizing","type":"string"},"color":{"examples":["\"0x000000\""],"title":"Color","type":"string"},"fontFamily":{"examples":["Arial","Courier New","Verdana","Times New Roman","Consolas","Helvetica"],"title":"Font family","type":"string"},"fontSize":{"$ref":"#/definitions/NoodlUnit","title":"Font size"},"fontStyle":{"title":"Font style","type":"string"},"fontWeight":{"oneOf":[{"description":"Applies a thickness style effect","examples":[100,200,400,500,700,900,"bold"],"type":"number"},{"type":"string"}],"title":"Font weight"},"height":{"$ref":"#/definitions/NoodlUnit","title":"Component Height"},"isEditable":{"$ref":"#/definitions/Boolean"},"isHidden":{"$ref":"#/definitions/Boolean","description":"Used for hiding/showing components"},"justifyContent":{"examples":["flex-start","center","flex-end","space-around"],"title":"Justify content","type":"string"},"left":{"$ref":"#/definitions/NoodlUnit","description":"Left position. The greater the value, the further away from the left position","title":"Component left position"},"letterSpacing":{"description":"Spacing between each letter","title":"Letter spacing","type":"string"},"lineHeight":{"description":"Spacing between each line","title":"Line height","type":"string"},"margin":{"$ref":"#/definitions/NoodlUnit","title":"Margin"},"marginTop":{"$ref":"#/definitions/NoodlUnit","title":"Margin top"},"opacity":{"description":"Applies a transparenct style effect. The lower the opacity, the more the transparent effect is applied","examples":["0.5"],"title":"Opacity","type":"number"},"overflow":{"description":"If hidden, any styles flowing outside of a component's bounds will be invisible","examples":["hidden"],"title":"Overflow","type":"string"},"paddingBottom":{"$ref":"#/definitions/NoodlUnit","title":"Padding bottom"},"paddingLeft":{"$ref":"#/definitions/NoodlUnit","title":"Padding left"},"position":{"examples":["relative","absolute","fixed","static"],"title":"Position","type":"string"},"required":{"type":"string"},"shadow":{"description":"Applies a box shadow effect","oneOf":[{"examples":["true","false"],"type":"string"},{"type":"boolean"}],"title":"Shadow"},"textAlign":{"$ref":"#/definitions/TextAlign"},"textColor":{"$ref":"#/definitions/Color"},"textIndent":{"type":"string"},"top":{"$ref":"#/definitions/NoodlUnit","description":"Top position. The greater the value, the further away from the top position","title":"Component top position"},"width":{"$ref":"#/definitions/NoodlUnit","title":"Component width"},"zIndex":{"description":"Applies a level of precedence/importance to a component. The higher the zIndex the higher level the component will be placed. For example, if a child 3 levels down applies a higher zIndex than the parent, then the child will appear to be on top in the page","examples":["\"1000\""],"title":"zIndex","type":"string"}},"title":"Component style object","type":"object"},"Text":{"description":"Used to display text in the user interface. Most commonly used in label components","oneOf":[{"type":"string"},{"$ref":"#/definitions/If"}],"title":"Text"},"TextAlign":{"oneOf":[{"$ref":"#/definitions/TextAlignEnum"},{"$ref":"#/definitions/TextAlignObject"}],"title":"Text alignment"},"TextAlignEnum":{"examples":["left","center","centerX","right"],"title":"Enum for the string textAlign type","type":"string"},"TextAlignObject":{"additionalProperties":true,"properties":{"x":{"examples":["left","center","centerX","right"],"type":"string"},"y":{"examples":["center"],"type":"string"}},"title":"Text align object","type":"object"},"TextBoard":{"description":"A component that contains children of text that are positioned inline (side by side)","items":{"properties":{"color":{"type":"string"},"text":{"$ref":"#/definitions/Text"}},"type":"object"},"title":"Textboard components","type":"array"},"UserEvent":{"anyOf":[{"$ref":"#/definitions/Action","type":"object"},{"$ref":"#/definitions/Reference"}],"description":"An event in the form of an ActionChain that triggers from user interactions, like onClick and onFocus","title":"User event"},"Value":{"description":"A valid value in accordance to the noodl specification","oneOf":[{"type":"string"},{"$ref":"#/definitions/NoodlUnit"},{"type":"number"},{"type":"object"},{"type":"array"},{"$ref":"#/definitions/Reference"},{"type":"null"},{"$ref":"#/definitions/If"},{"properties":{"emit":{"$ref":"#/definitions/Emit"}},"type":"object"}],"title":"Noodl value"},"ViewTag":{"description":"An identifier which is used to bind a component and an action together. Actions can define a viewTag that invokes certain behavior towards a component. The component must also contain the same viewTag key/value. If multiple components have the same viewTag, then the action will effect multiple components","title":"View tag","type":"string"}},"patternProperties":{"^[a-zA-Z0-9]*$":{"anyOf":[{"$ref":"#/definitions/Page"}],"type":"object"}},"title":"Noodl Schema","type":"object"}
</schema>

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

Signals that a popup should close when a user clicks outside of it. This is used for closing modals/popups

A name/identifier for a function. This is used mainly for builtIn actions, where applications implement their own behavior and binds it to some object in the noodl

Function name

Eval object's object

A binding between a popUp or popUpDismiss component to a popUp action.

A popUp component's identifier by popup behavior

When set to true, this signals that a page should run its "init" operation upon visiting from the user. If it is false, a page will not run it, which can be used to  persist values when navigating pages

Skip or run "init"

A timer is useful for situations such as chat rooms where users will have a time limit before being getting out

Timer

Timer tag

Used to prevent further actions from happening. For example, a popUp action with "wait: true" will open a pop up in the page and will not run actions that are next in the call stack. This can be used to restrict access to pages when authenticating

Wait

A chain of actions in sequential order

Action chain

An identifier/name for an action

openCamera openPhotoLibrary openDocumentManager pageJump popUpDismiss refresh register removeSignature saveObject saveSignature updateObject popUp builtIn evalObject

Action type

A reference that returns its result after the value at the referenced path is received

Await reference

A boolean value is either one of "true", true, "false", or false

Boolean

Border styles

Border

Removes border including the radius

Border style preset #1

Removes border from all sides (including radius) except the bottom. This will create an underline effect

Border style preset #2

Applies a solid border to all sides

Border style preset #3

Sets the border to be a dashed border

Border style preset #4

Removes border from all sides

Border style preset #5

Sets the border to be a solid border. This will also remove border radius from all sides

Border style preset #1

A set of border presets, each applying a different style

Border style preset

Objects that become built in functions when parsed/serialized

Built in eval object

Color

Components are the building blocks that construct to user interfaces

This is a common value used for iteratorVar

itemObject

Iterator variable

List data

A cover image used on video components. When a video has not been interacted with by a user, a cover image is displayed. This value can be used for the cover image

Cover image

A function to transform a component's text. A component must have the 'text' property.

Text transformer

Component

button canvas chart chatList ecosDoc divider footer header image label list listItem map page plugin pluginHead pluginBodyTop pluginBodyTail popUp register scrollView textField textView video view

Component type

Root config version object

Determines the content type of the component. For example, a textField component may be a date textField if it has contentType: date, or a password textField with contentType: password, etc

countryCode email date file formattedDate formattedDuration hidden listObject messageHidden number password passwordHidden phone phoneNumber tel text timer videoSubStream

Content type

Argument(s) to the surrounding built in function

Data in

A value/pointer to a a property of an object

Data key

Data key in the emit object

Data key

The path to a data object or value. It might provide a different behavior depending on where it is placed. For example, a dataKey set on a textField component will bind its value to the path in the dataKey, enabling it to mutate the value while updating textField's value

Data key

An object that contains data. It is most commonly used in actions such as updateObject as a way to update its data values

Data object

Return value(s) to the surrounding built in function

Data out

An emit is a special type of action that usually contains a dataKey paired with a list of actions that are called in order. Some emits can contain just a list of actions. When paired with a dataKey it is usually mutating the value at the path in the dataKey

Emit actions

Emit action data key string or data key object

Emit

Empty value (empty string)

Empty

The destination the user should navigate to

Goto

Goto (object)

Goto (string)

Goto url

If objects contain an array with three items used for conditional checks. The first item is used as a test for truthiness which can be in the form of any data type such as a string, number, boolean, object, etc. Either the second or third item is returned depending on the result of the truthiness test

A condition evaluation

Page init

One or more action(s) which will occur when entering a page

Init

Mutates the value at the referenced path after receiving its result

Local eval reference

A reference whose scope is within the page object, making them invisible to the objects outside of its scope

Local reference

An ActionChain but also includes the BuiltInEval objects =.builtIn.* as well as await/eval references

ActionChain + Init

A measurement adaptive to the size of the viewport

Noodl unit (ex: "0.1", "0.25", etc)

A page object

Page components

Titles can be used to represent the page

Page title

Determines the initial scroll position for the user

Page

Page actions

Page module

A page number may help distinguish between pages with similar names

Page number

A path can be in the form of a string, an if object, or an emit object

Destination pointing to a separate page or url

Placeholder values that obtain their real values at a later time

Reference

The root/base object. It is global to all descendants

Base CSS styles

Base data models

Base page components

Alias of RootConfig

This can be accessed and mutated by any object at any time

Global object

Root object

Root/base config

Mutates the value at the root referenced path after receiving its result

Root eval reference

A reference whose scope is at the global level

Root reference

Options for a select component. These are the items that appear in the drop down menu when interacting with a select component

Select options

The alignment in a block. If align is horizontal, siblings will align horizontally, vice versa. This is functionally equivalent to the "axis" keyword

Alignment

The axis in a block. If axis is horizontal, siblings will align horizontally, vice versa. This was previously used in list/listItem components

Axis

Background color

Bottom border

Border color

Border radius

Border width

Applies a box shadow style effect

Box shadow

Box sizing

Color

Arial
Courier New
Verdana
Times New Roman
Consolas
Helvetica

Font family

Font size

Font style

Applies a thickness style effect

Font weight

Component Height

Used for hiding/showing components

Justify content

Left position. The greater the value, the further away from the left position

Component left position

Spacing between each letter

Letter spacing

Spacing between each line

Line height

Margin

Margin top

Applies a transparenct style effect. The lower the opacity, the more the transparent effect is applied

Opacity

If hidden, any styles flowing outside of a component's bounds will be invisible

Overflow

Padding bottom

Padding left

Position

Applies a box shadow effect

Shadow

Top position. The greater the value, the further away from the top position

Component top position

Component width

Applies a level of precedence/importance to a component. The higher the zIndex the higher level the component will be placed. For example, if a child 3 levels down applies a higher zIndex than the parent, then the child will appear to be on top in the page

zIndex

Component style object

Used to display text in the user interface. Most commonly used in label components

Text

Text alignment

Enum for the string textAlign type

Text align object

A component that contains children of text that are positioned inline (side by side)

Textboard components

An event in the form of an ActionChain that triggers from user interactions, like onClick and onFocus

User event

A valid value in accordance to the noodl specification

Noodl value

An identifier which is used to bind a component and an action together. Actions can define a viewTag that invokes certain behavior towards a component. The component must also contain the same viewTag key/value. If multiple components have the same viewTag, then the action will effect multiple components

View tag

Noodl Schema

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