{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "JSON schema for SKY UX CLI skyuxconfig.json", "definitions": { "externalFileCSS": { "type": "object", "properties": { "url": { "description": "Fully qualified URL of the file.", "type": "string" }, "integrity": { "description": "Subresource integrity string to include.", "type": "string" } } }, "externalFileJS": { "allOf":[ { "$ref": "#/definitions/externalFileCSS" }, { "properties": { "head": { "description": "Inject in the head versus before the closing body tag.", "type": "boolean" } } } ] }, "availableThemes": { "type": "string", "enum": [ "default", "modern" ] } }, "properties": { "a11y": { "description": "Enables or disables accessibility test rules. You can manage rules individually, or you can enable or disable all rules in bulk.", "type": [ "object", "boolean" ], "properties": { "rules": { "type": "array", "items": { "type": "string" } } } }, "app": { "description": "Specifies configuration options for the local app when running skyux serve", "type": "object", "properties": { "base": { "description": "Allows the base href to be set during skyux build.", "type": "string" }, "title": { "description": "Controls the page title at the template level while waiting for the application to load.", "type": "string" }, "port": { "description": "Configures a port for the skyux serve command to use. If no port is specified, skyux serve dynamically finds an available port.", "type": "string" }, "externals": { "description": "Dynamically injects CSS and JavaScript files into SKY UX Host. You should have a specific use-case for an externals and they must be white-listed by the SKY UX team.", "type": "object", "properties": { "css": { "description": "CSS files to inject", "type": "object", "properties": { "before": { "description": "CSS files to inject before default SKY UX files.", "type": "array", "items": { "$ref": "#/definitions/externalFileCSS" } }, "after": { "description": "CSS files to inject after default SKY UX files.", "type": "array", "items": { "$ref": "#/definitions/externalFileCSS" } } } }, "js": { "description": "JS files to inject", "type": "object", "properties": { "before": { "description": "JS files to inject before default SKY UX files.", "type": "array", "items": { "$ref": "#/definitions/externalFileJS" } }, "after": { "description": "JS files to inject before default SKY UX files.", "type": "array", "items": { "$ref": "#/definitions/externalFileJS" } } } } } }, "styles": { "description": "An array of CSS or SCSS files to be bundled with the SPA.", "type": "array", "items": { "type": "string" } }, "theming": { "description": "Specifies the theming capabilities of the application.", "type": "object", "properties": { "theme": { "description": "The visual theme to apply to this application.", "type": "string", "default": "default", "$ref": "#/definitions/availableThemes" }, "supportedThemes": { "type": "array", "items": { "$ref": "#/definitions/availableThemes" } } } } } }, "appSettings": { "description": "Specifies data that is available for reuse throughout the application.", "type": "object" }, "auth": { "description": "Indicates whether the application requires an authenticated Blackbaud ID", "type": "boolean" }, "codeCoverageThreshold": { "description": "Specifies the minimum required code coverage threshold.", "type": "string", "enum": [ "none", "standard", "strict" ] }, "compileMode": { "description": "Specifies how to compile the project's code.", "type": "string", "enum": [ "aot", "jit" ], "default": "aot" }, "cssPath": { "description": "Specifies a path to reference CSS styles. This property is specific to the SKY UX docs site and is for internal Blackbaud use only.", "type": "string" }, "enableIvy": { "description": "Enables or disables Angular's Ivy compiler during a build.", "type": "boolean" }, "help": { "description": " Indicates whether to automatically include the help widget in the application to identify the current page and display relevant help content. This property is for internal Blackbaud use only.", "type": [ "object" ] }, "host": { "description": "Blackbaud Only - Specifies configuration options for communication with SKY UX Host.", "type": "object", "properties": { "bbCheckout": { "description": "Specifies bbCheckout options for the Host service.", "type": "object", "properties": { "version": { "description": "Specifies the whitelisted version of bbCheckout to include.", "type": "string", "enum": [ "2" ] } } }, "frameOptions": { "description": "Specifies frame options for the Host service.", "type": "object", "properties": { "none": { "description": "Sets the frame options to none. Superseds all other `frameOptions` properties.", "type": "boolean" }, "self": { "description": "Sets the frame options to self.", "type": "boolean" }, "blackbaud": { "description": "Sets the frame options to common Blackbaud URLs", "type": "boolean" }, "urls": { "description": "Sets the frame options to this list. Can be used in conjunction with the `self` and `blackbaud` properties.", "type": "array" } }, "if": { "properties": { "none": { "const": true } }, "required": [ "none" ] }, "then": { "not": { "anyOf": [ { "properties": { "blackbaud": { "const": true } }, "required": [ "blackbaud" ] }, { "properties": { "self": { "const": true } }, "required": [ "self" ] }, { "properties": { "urls": { "minItems": 1 } }, "required": [ "urls" ] } ] } } }, "url": { "description": "Specifies a base URL to pass information from skyux serve to the SKY UX Host.", "type": "string", "default": "https://host.nxt.blackbaud.com" } } }, "importPath": { "description": "Specifies a path to reference SKY UX components in Angular. This property is specific to the SKY UX docs site and is for internal Blackbaud use only.", "type": "string" }, "dependenciesForTranspilation": { "description": "Specifies a list of package dependencies that are not ES5 compatible. Each package listed will be coverted to support SKY UX Builder's target environment.", "type": "array" }, "mode": { "description": "Controls how much boilerplate code to generate automatically.", "type": "string", "enum": [ "easy", "advanced" ], "default": "easy" }, "moduleAliases": { "description": "Specifies module aliases to allow for custom module resolution.", "type": "object" }, "name": { "description": "Specifies the name of the project when running in SKY UX Host. By default, SKY UX Builder uses the name property in the package.json file, minus the 'blackbaud-skyux-spa-' prefix.", "type": "string" }, "omnibar": { "description": "Specifies an object to pass to the omnibar's load method. This property is for internal Blackbaud use only.", "type": "object" }, "pacts": { "description": "PACTS", "type": "array" }, "params": { "description": "Specifies a list of parameters that are allowed at runtime.", "type": [ "object" ], "patternProperties": { "^.*$": { "type": [ "boolean", "object" ], "properties": { "required": { "description": "Indicates the parameter must be supplied to the application in order to function.", "type": "boolean" }, "value": { "description": "The default value of the parameter. This value may be overridden at runtime by the query string or other future sources of parameter values." }, "excludeFromRequests": { "description": "Indicates whether the parameter should be excluded from the parameters automatically added to the query string of URLs requested with SkyAuthHttp.", "type": "boolean", "default": true } } } } }, "pipelineSettings": { "description": "Configuration options specific to pipeline configuration.", "type": "object" }, "plugins": { "description": "Specifies plugins to expand on existing SKY UX Builder functionality and create new functionality.", "type": "array" }, "redirects": { "description": "Specifies redirects for pages within an application using from : to pattern.", "type": "object" }, "routes": { "description": "Allows you to use the omnibar but still define navigation items. This property is for internal Blackbaud use only.", "type": "object", "properties": { "public": { "description": "Public routes.", "type": "array" }, "referenced": { "description": "Referenced routes.", "type": "array" } } }, "useHashRouting": { "description": "Allows your SPA to use Angular's hash location strategy.", "type": "boolean" }, "skyuxModules": { "description": "The individual SKY UX modules that should be imported into the application. Use this property for performance optimization when your application only uses a small subset of SKY UX components.", "type": "array" }, "librarySettings": { "description": "Container for controlling library settings", "type": "object", "properties": { "whitelistedNonPeerDependencies": { "description": "Specifies package dependencies that are allowed to be added to a library's package.json `dependencies` object when a library is published.", "type": "array", "items": { "type": "string" } } } }, "testSettings": { "description": "Container for controlling test settings.", "type": "object", "properties": { "e2e": { "description": "Test settings specific to the skyux e2e command.", "type": "object", "properties": { "browserSet": { "description": "The named set of browsers to run against.", "type": "string", "enum": [ "speedy" ] } } }, "unit": { "description": "Test settings specific to the skyux test command.", "type": "object", "properties": { "browserSet": { "description": "The named set of browsers to run against.", "type": "string", "enum": [ "speedy", "quirky", "paranoid" ] } } } } } } }