{
    "definitions": {},
    "properties": {
        "build": {
            "id": "/properties/build",
            "properties": {
                "bundles": {
                    "description": "Define bundles created during the build",
                    "id": "/properties/build/properties/bundles",
                    "items": {
                        "id": "/properties/build/properties/bundles/items",
                        "properties": {
                            "dependencies": {
                                "description": "A set of dependencies to be included in your bundle\n Get more info at http://aurelia.io/hub.html#/doc/article/aurelia/framework/latest/the-aurelia-cli/10",
                                "id": "/properties/build/properties/bundles/items/properties/dependencies",
                                "items": {
                                    "oneOf": [
                                        {
                                            "default": "your-dependencies-npm-name",
                                            "description": "If the main field of the library's package.json points to the single file that you need to bundle, then you can opt for a simplified configuration by just adding the package name to your dependencies directly",
                                            "id": "/properties/build/properties/bundles/items/properties/dependencies/items",
                                            "title": "Bundle Dependency",
                                            "type": "string"
                                        },
                                        {
                                            "description": "Complex package",
                                            "id": "/properties/build/properties/bundles/items/properties/dependencies/items",
                                            "properties": {
                                                "deps": {
                                                    "description": "This is an array of dependencies which must be loaded and available before the legacy library can be evaluated",
                                                    "id": "/properties/build/properties/bundles/items/properties/dependencies/items/properties/deps",
                                                    "title": "Legacy library dependencies",
                                                    "type": [
                                                        "array"
                                                    ]
                                                },
                                                "env": {
                                                    "description": "This can be used on any dependency in the bundle to indicate what environment builds the dependency should be included in. By default, dependencies are included in all builds.",
                                                    "id": "/properties/build/properties/bundles/items/properties/dependencies/items/properties/env",
                                                    "title": "Environment conditional bundling",
                                                    "type": [
                                                        "string"
                                                    ]
                                                },
                                                "export": {
                                                    "description": "This is the name of the global variable that should be used as the exported value of the module",
                                                    "id": "/properties/build/properties/bundles/items/properties/dependencies/items/properties/export",
                                                    "title": "Global export",
                                                    "type": [
                                                        "string"
                                                    ]
                                                },
                                                "main": {
                                                    "description": "This is the main module (entry point) of the package, relative to the path. You should not include the file extension. .js will be appended automatically. Specify false if no main entry point is available for your dependency",
                                                    "id": "/properties/build/properties/bundles/items/properties/dependencies/items/properties/main",
                                                    "title": "Main entry point",
                                                    "type": [
                                                        "string",
                                                        "boolean"
                                                    ]
                                                },
                                                "name": {
                                                    "description": "The name of the dependency",
                                                    "id": "/properties/build/properties/bundles/items/properties/dependencies/items/properties/name",
                                                    "title": "Dependency name",
                                                    "type": "string"
                                                },
                                                "path": {
                                                    "description": "This is a path to the single module file itself. This path is relative to your application's src folder. Also, you should not include the file extension. .js will be appended automatically",
                                                    "id": "/properties/build/properties/bundles/items/properties/dependencies/items/properties/path",
                                                    "title": "Relative path to the dependency",
                                                    "type": "string"
                                                },
                                                "resources": {
                                                    "description": "Provide a list of additional files to be included with the bundle",
                                                    "id": "/properties/build/properties/bundles/items/properties/dependencies/items/properties/resources",
                                                    "title": "Additional library resources",
                                                    "type": [
                                                        "array"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "name",
                                                "path"
                                            ],
                                            "title": "Bundle Dependency",
                                            "type": "object"
                                        }
                                    ]
                                },
                                "title": "Bundle dependencies",
                                "type": "array"
                            },
                            "name": {
                                "description": "The name of the resulting bundle (with .js extension)",
                                "id": "/properties/build/properties/bundles/items/properties/name",
                                "title": "Bundle name",
                                "type": "string"
                            },
                            "prepend": {
                                "description": "A set of files to prepend to the bundle",
                                "id": "/properties/build/properties/bundles/items/properties/prepend",
                                "items": {
                                    "description": "A glob pattern (or array of glob patterns) defining the resources to prepend in your bundle",
                                    "id": "/properties/build/properties/bundles/items/properties/source/items",
                                    "title": "Source path",
                                    "type": [
                                        "string",
                                        "array"
                                    ]
                                },
                                "title": "Files to prepend",
                                "type": "array"
                            },
                            "source": {
                                "description": "A collection of glob patterns to include in the bundle",
                                "id": "/properties/build/properties/bundles/items/properties/source",
                                "items": {
                                    "description": "A glob pattern (or array of glob patterns) defining the resources to include in the bundle",
                                    "id": "/properties/build/properties/bundles/items/properties/source/items",
                                    "title": "Source path",
                                    "type": [
                                        "string",
                                        "array"
                                    ]
                                },
                                "title": "Source paths",
                                "type": "array"
                            }
                        },
                        "required": [
                            "name"
                        ],
                        "type": "object"
                    },
                    "title": "Application bundles",
                    "type": "array"
                },
                "copyFiles": {
                    "description": "A dictionary (file:destination) specifying files to copy after build",
                    "id": "/properties/build/properties/copyFiles",
                    "title": "Copy files",
                    "type": "object"
                },
                "loader": {
                    "description": "Configuring the loader (e.g RequireJS) for the CLI",
                    "id": "/properties/build/properties/loader",
                    "properties": {
                        "config": {
                            "description": "Additional configuration specifically for the selected loader type",
                            "id": "/properties/build/properties/loader/properties/config",
                            "title": "Loader configs",
                            "type": "object"
                        },
                        "configTarget": {
                            "description": "The target bundle where additional loader configs will be appended to the bottom of the file",
                            "id": "/properties/build/properties/loader/properties/configTarget",
                            "title": "Configuration target",
                            "type": "string"
                        },
                        "includeBundleMetadataInConfig": {
                            "description": "Whether to include a \"bundles\" property in the loader configuration. http://requirejs.org/docs/api.html#config-bundles",
                            "id": "/properties/build/properties/loader/properties/includeBundleMetadataInConfig",
                            "title": "includeBundleMetadataInConfig",
                            "type": "string"
                        },
                        "plugins": {
                            "description": "Configure additional loader plugins (e.g. text-plugin, json-plugin ...)",
                            "id": "/properties/build/properties/loader/properties/plugins",
                            "items": {
                                "id": "/properties/build/properties/loader/properties/plugins/items",
                                "properties": {
                                    "extensions": {
                                        "description": "Extensions to be processed by the plugin",
                                        "id": "/properties/build/properties/loader/properties/plugins/items/properties/extensions",
                                        "items": {
                                            "id": "/properties/build/properties/loader/properties/plugins/items/properties/extensions/items",
                                            "type": "string"
                                        },
                                        "title": "Plugin extensions",
                                        "type": "array"
                                    },
                                    "name": {
                                        "description": "The name of the plugin",
                                        "id": "/properties/build/properties/loader/properties/plugins/items/properties/name",
                                        "title": "Plugin name",
                                        "type": "string"
                                    },
                                    "stub": {
                                        "description": "If set to true the plugin won't be included in the bundle, resulting in a smaller bundle size. But you can't use the plugin at runtime for files that aren't in the bundle.",
                                        "id": "/properties/build/properties/loader/properties/plugins/items/properties/stub",
                                        "title": "Stub",
                                        "type": "boolean"
                                    }
                                },
                                "type": "object"
                            },
                            "title": "Loader plugins",
                            "type": "array"
                        },
                        "type": {
                            "description": "The type of the loader to use",
                            "id": "/properties/build/properties/loader/properties/type",
                            "title": "Loader type",
                            "type": "string"
                        }
                    },
                    "title": "Loader configuration",
                    "type": "object"
                },
                "options": {
                    "description": "Setup minification, sourcemaps and revision support",
                    "id": "/properties/build/properties/options",
                    "properties": {
                        "minify": {
                            "description": "Minify builds for given environments",
                            "id": "/properties/build/properties/options/properties/minify",
                            "title": "Minification",
                            "type": "string"
                        },
                        "rev": {
                            "description": "To create builds with revision numbers, you must set rev to true. This will cause a unique revision number to be added to the bundled files",
                            "id": "/properties/build/properties/options/properties/rev",
                            "title": "Build revisions",
                            "type": "boolean"
                        },
                        "sourcemaps": {
                            "description": "Create sourcemaps for given environments",
                            "id": "/properties/build/properties/options/properties/sourcemaps",
                            "title": "Create sourcemaps",
                            "type": "string"
                        }
                    },
                    "title": "Build options",
                    "type": "object"
                },
                "targets": {
                    "id": "/properties/build/properties/targets",
                    "items": {
                        "id": "/properties/build/properties/targets/items",
                        "properties": {
                            "baseDir": {
                                "description": "The baseDir for serving the build target",
                                "id": "/properties/build/properties/targets/items/properties/baseDir",
                                "title": "BaseDir",
                                "type": "string"
                            },
                            "displayName": {
                                "description": "The name to display for the target application",
                                "id": "/properties/build/properties/targets/items/properties/displayName",
                                "title": "Displayname",
                                "type": "string"
                            },
                            "id": {
                                "description": "The id for the target application",
                                "id": "/properties/build/properties/targets/items/properties/id",
                                "title": "Target id",
                                "type": "string"
                            },
                            "index": {
                                "description": "The default start file for the application",
                                "id": "/properties/build/properties/targets/items/properties/index",
                                "title": "App start file",
                                "type": "string"
                            },
                            "output": {
                                "description": "The folder where the built application will be copied to",
                                "id": "/properties/build/properties/targets/items/properties/output",
                                "title": "Output folder",
                                "type": "string"
                            }
                        },
                        "type": "object"
                    },
                    "type": "array"
                }
            },
            "type": "object"
        },
        "bundler": {
            "id": "/properties/bundler",
            "properties": {
                "displayName": {
                    "id": "/properties/bundler/properties/displayName",
                    "type": "string"
                },
                "id": {
                    "id": "/properties/bundler/properties/id",
                    "type": "string"
                }
            },
            "type": "object"
        },
        "cssProcessor": {
            "description": "Define the used CSS Pre/processor",
            "id": "/properties/cssProcessor",
            "properties": {
                "displayName": {
                    "description": "The name to display for the selected css processor",
                    "id": "/properties/cssProcessor/properties/displayName",
                    "title": "Display name",
                    "type": "string"
                },
                "fileExtension": {
                    "description": "The file extension to use for the preprocessor",
                    "id": "/properties/cssProcessor/properties/fileExtension",
                    "title": "File extension",
                    "type": "string"
                },
                "id": {
                    "description": "The id of the selected css preprocssor",
                    "id": "/properties/cssProcessor/properties/id",
                    "title": "CSS preprocessor id",
                    "type": "string"
                },
                "source": {
                    "description": "A glob pattern (or array of glob patterns) pointing to the sources to be targeted by the css preprocessor",
                    "id": "/properties/cssProcessor/properties/source",
                    "title": "CSS preprocessor sources",
                    "type": [
                        "string",
                        "array"
                    ]
                }
            },
            "title": "CSS Processor",
            "type": "object"
        },
        "editor": {
            "description": "The used editor along preconfigured defaults",
            "id": "/properties/editor",
            "properties": {
                "displayName": {
                    "id": "/properties/editor/properties/displayName",
                    "type": "string"
                },
                "id": {
                    "id": "/properties/editor/properties/id",
                    "type": "string"
                }
            },
            "title": "Editor",
            "type": "object"
        },
        "markupProcessor": {
            "description": "Configure the markup processor",
            "id": "/properties/markupProcessor",
            "properties": {
                "displayName": {
                    "description": "The name to display of the markup processor",
                    "id": "/properties/markupProcessor/properties/displayName",
                    "title": "Displayname",
                    "type": "string"
                },
                "fileExtension": {
                    "description": "The file extensions to target by the markup processor",
                    "id": "/properties/markupProcessor/properties/fileExtension",
                    "title": "Markup file extensions",
                    "type": "string"
                },
                "id": {
                    "description": "The id of the markup processor",
                    "id": "/properties/markupProcessor/properties/id",
                    "title": "Markup processor id",
                    "type": "string"
                },
                "source": {
                    "description": "A glob pattern (or array of glob patterns) to the markup sources. In case of Webpack this can be an empty string.",
                    "id": "/properties/markupProcessor/properties/source",
                    "title": "Markup source",
                    "type": [
                        "string",
                        "array"
                    ]
                }
            },
            "required": [
                "id",
                "displayName",
                "fileExtension",
                "source"
            ],
            "title": "Markup processor",
            "type": "object"
        },
        "name": {
            "description": "The name of your app",
            "id": "/properties/name",
            "title": "App name",
            "type": "string"
        },
        "paths": {
            "description": "Path mappings (key/value) for the loader. These will be included into the loader configuration (RequireJS/SystemJS).",
            "id": "/properties/paths",
            "title": "Path mappings",
            "type": "object"
        },
        "platform": {
            "description": "Settings for the development platform",
            "id": "/properties/platform",
            "properties": {
                "baseDir": {
                    "description": "Browsersync (au run) will serve from this directory",
                    "id": "/properties/platform/properties/baseDir",
                    "title": "BaseDir",
                    "type": "string"
                },
                "displayName": {
                    "description": "The name of the platform specific build",
                    "id": "/properties/platform/properties/displayName",
                    "title": "Display name",
                    "type": "string"
                },
                "hmr": {
                    "default": false,
                    "description": "ONLY FOR WEBPACK. Define whether hot module reloading should be used with the dev server",
                    "id": "/properties/platform/properties/hmr",
                    "title": "(ONLY WP) Hot Module Reloading",
                    "type": "boolean"
                },
                "id": {
                    "description": "The id of the platform specific build",
                    "id": "/properties/platform/properties/id",
                    "title": "Platform id",
                    "type": "string"
                },
                "index": {
                    "description": "Path relative from project root to the index.html file. CLI updates script tags in this file on build",
                    "id": "/properties/platform/properties/index",
                    "title": "Index file (index.html)",
                    "type": "string"
                },
                "open": {
                    "default": false,
                    "description": "ONLY FOR WEBPACK. Should the default browser be opened automatically",
                    "id": "/properties/platform/properties/open",
                    "title": "(ONLY WP) Auto open default browser",
                    "type": "boolean"
                },
                "output": {
                    "description": "A folder relative from project root where the bundles will be created",
                    "id": "/properties/platform/properties/output",
                    "title": "Output",
                    "type": "string"
                },
                "port": {
                    "default": 8080,
                    "description": "ONLY FOR WEBPACK. Define the default port to be used for the dev server",
                    "id": "/properties/platform/properties/port",
                    "title": "(ONLY WP) Dev Server Port",
                    "type": "integer"
                }
            },
            "title": "Platform",
            "type": "object"
        },
        "testFramework": {
            "description": "The used test framework",
            "id": "/properties/testFramework",
            "properties": {
                "displayName": {
                    "description": "The name to display for the used test framework",
                    "id": "/properties/testFramework/properties/displayName",
                    "title": "Test framework name",
                    "type": "string"
                },
                "id": {
                    "description": "The id of the used test framework",
                    "id": "/properties/testFramework/properties/id",
                    "title": "Test framework id",
                    "type": "string"
                }
            },
            "required": [
                "displayName",
                "id"
            ],
            "title": "Test framework",
            "type": "object"
        },
        "transpiler": {
            "description": "The transpiler chosen for the app",
            "id": "/properties/transpiler",
            "properties": {
                "displayName": {
                    "description": "The name to display for the selected transpiler",
                    "id": "/properties/transpiler/properties/displayName",
                    "title": "Displayname",
                    "type": "string"
                },
                "dtsSource": {
                    "description": "Glob pattern to type definitions",
                    "id": "/properties/transpiler/properties/dtsSource",
                    "items": {
                        "id": "/properties/transpiler/properties/dtsSource/items",
                        "type": "string"
                    },
                    "title": "d.ts source",
                    "type": "array"
                },
                "fileExtension": {
                    "description": "File extensions to be processed by the transpiler",
                    "id": "/properties/transpiler/properties/fileExtension",
                    "title": "File extension",
                    "type": "string"
                },
                "id": {
                    "description": "The id of the transpiler",
                    "id": "/properties/transpiler/properties/id",
                    "title": "Transpiler id",
                    "type": "string"
                },
                "options": {
                    "description": "Addtional options to pass to the transpiler",
                    "id": "/properties/transpiler/properties/options",
                    "title": "Transpiler options",
                    "type": "object"
                },
                "source": {
                    "description": "A glob pattern (or array of glob patterns) for the sources processed by the transpiler. In case of Webpack this can be an empty string",
                    "id": "/properties/transpiler/properties/source",
                    "title": "Transpiler sources",
                    "type": [
                        "string",
                        "array"
                    ]
                }
            },
            "required": [
                "displayName",
                "id",
                "fileExtension",
                "source"
            ],
            "title": "Transpiler",
            "type": "object"
        },
        "type": {
            "description": "The CLI application type scaffolded",
            "id": "/properties/type",
            "title": "Scaffold type",
            "type": "string"
        },
        "unitTestRunner": {
            "description": "The testrunner used for your application. In case of Webpack this should be an array of testrunner configurations",
            "id": "/properties/unitTestRunner",
            "properties": {
                "displayName": {
                    "description": "The name of the configured testrunner",
                    "id": "/properties/unitTestRunner/properties/displayName",
                    "title": "Display name",
                    "type": "string"
                },
                "id": {
                    "description": "The id of the configured testrunner",
                    "id": "/properties/unitTestRunner/properties/id",
                    "title": "Testrunner Id",
                    "type": "string"
                },
                "source": {
                    "default": "test/unit/**/*.js",
                    "description": "Pointing to the spec files of your application. Can be empty for Webpack",
                    "id": "/properties/unitTestRunner/properties/source",
                    "title": "Test source files",
                    "type": "string"
                }
            },
            "required": [
                "displayName",
                "id",
                "source"
            ],
            "title": "Test runner",
            "type": [
                "object",
                "array"
            ]
        }
    },
    "type": "object"
}