Support merging .uischema files (#852)
* Topo sort in progress. * Update sort. * Working sort * Breadth first sort. * Move to building component tree. * Normalize slash in tests. * Update documentation * Add --nugetRoot switch. * Add $package to app.schema. * Intermediate progress to switch machines. * Update to move machines. * Update to offical URLS. Upgrade json-ptr to 1.3 Full uischema test examples. * Oracles and working tests. * All csproj tests working * All tests work. * Fix packages.config. * Add copying C# asset files into output * Renable test * Order uischema keys and update oracles. * Move write outside of loop. * Add missing .uischema files. * Use / in paths * Update documentation. * Update docs. Co-authored-by: Tom Laird-McConnell <tomlm@microsoft.com>
This commit is contained in:
Родитель
59f950dfde
Коммит
547c305cf8
|
@ -34,7 +34,7 @@
|
|||
"999999",
|
||||
"--colors",
|
||||
"-g",
|
||||
"dialog:merge.*"
|
||||
".*"
|
||||
],
|
||||
"internalConsoleOptions": "openOnSessionStart",
|
||||
"outputCapture": "std",
|
||||
|
@ -195,8 +195,7 @@
|
|||
"dialog:merge",
|
||||
"schemas/*.schema",
|
||||
"-o",
|
||||
"schemas/app.schema",
|
||||
"-d"
|
||||
"schemas/app.schema"
|
||||
],
|
||||
"internalConsoleOptions": "openOnSessionStart",
|
||||
"cwd": "${workspaceFolder}/packages/dialog/test/commands/dialog"
|
||||
|
@ -242,6 +241,75 @@
|
|||
"internalConsoleOptions": "openOnSessionStart",
|
||||
"cwd": "${env:TEMP}/sandwich.out"
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "LUIS Build Simple",
|
||||
"preLaunchTask": "${defaultBuildTask}",
|
||||
"program": "${workspaceFolder}/packages/luis/bin/run",
|
||||
"outputCapture": "std",
|
||||
"outFiles": [
|
||||
"./packages/luis/lib/**",
|
||||
"./packages/lu/lib/**"
|
||||
],
|
||||
"args": [
|
||||
"luis:build",
|
||||
"--luConfig",
|
||||
"luconfig.json",
|
||||
"--authoringKey",
|
||||
"${env:LUIS_AUTHORING_KEY}"
|
||||
],
|
||||
"internalConsoleOptions": "openOnSessionStart",
|
||||
"cwd": "${env:TEMP}/simple.out"
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "LUIS Convert Sandwich",
|
||||
"preLaunchTask": "${defaultBuildTask}",
|
||||
"program": "${workspaceFolder}/packages/luis/bin/run",
|
||||
"outputCapture": "std",
|
||||
"outFiles": [
|
||||
"./packages/luis/lib/**",
|
||||
"./packages/lu/lib/**"
|
||||
],
|
||||
"args": [
|
||||
"luis:convert",
|
||||
"--in",
|
||||
"en-us/sandwich.en-us.lu",
|
||||
"--name",
|
||||
"sandwich",
|
||||
"-o",
|
||||
"converted.json",
|
||||
"--force"
|
||||
],
|
||||
"internalConsoleOptions": "openOnSessionStart",
|
||||
"cwd": "${env:TEMP}/sandwich.out"
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "LUIS Convert Simple",
|
||||
"preLaunchTask": "${defaultBuildTask}",
|
||||
"program": "${workspaceFolder}/packages/luis/bin/run",
|
||||
"outputCapture": "std",
|
||||
"outFiles": [
|
||||
"./packages/luis/lib/**",
|
||||
"./packages/lu/lib/**"
|
||||
],
|
||||
"args": [
|
||||
"luis:convert",
|
||||
"--in",
|
||||
"en-us/simple.en-us.lu",
|
||||
"--name",
|
||||
"simple",
|
||||
"-o",
|
||||
"converted.json",
|
||||
"--force"
|
||||
],
|
||||
"internalConsoleOptions": "openOnSessionStart",
|
||||
"cwd": "${env:TEMP}/simple.out"
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
|
|
|
@ -51,7 +51,7 @@ dependencies:
|
|||
https-proxy-agent: 2.2.4
|
||||
intercept-stdout: 0.1.2
|
||||
is-ci: 2.0.0
|
||||
json-ptr: 1.2.0
|
||||
json-ptr: 1.3.1
|
||||
json-schema-merge-allof: 0.7.0
|
||||
latest-version: 4.0.0
|
||||
lodash: 4.17.15
|
||||
|
@ -59,10 +59,8 @@ dependencies:
|
|||
mime-types: 2.1.26
|
||||
minimist: 1.2.0
|
||||
nock: 11.9.1
|
||||
npm-package-walker: 4.0.5
|
||||
nyc: 14.1.1
|
||||
os: 0.1.1
|
||||
package-json: 6.5.0
|
||||
pascal-case: 2.0.1
|
||||
path: 0.12.7
|
||||
please-upgrade-node: 3.2.0
|
||||
|
@ -3639,10 +3637,10 @@ packages:
|
|||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
|
||||
/json-ptr/1.2.0:
|
||||
/json-ptr/1.3.1:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-wkqozzmmyu+vtazHF11uvIDbLsgkE4juY41QoXgKYSy166KQalyc72PqveII21f8UWKtYN7btUXg16vya+9xnw==
|
||||
integrity: sha512-RoTHczqQoT2UsJINUvyMEHAHxGDq6c4/xXHwA29iArQMGIv6pFqLsOJMeagtnY78vsp5k/+9JcvmKKLsbuDRBQ==
|
||||
/json-schema-compare/0.2.2:
|
||||
dependencies:
|
||||
lodash: 4.17.15
|
||||
|
@ -6644,7 +6642,7 @@ packages:
|
|||
get-json: 1.0.1
|
||||
get-uri: 3.0.2
|
||||
globby: 11.0.0
|
||||
json-ptr: 1.2.0
|
||||
json-ptr: 1.3.1
|
||||
json-schema-merge-allof: 0.7.0
|
||||
json-schema-ref-parser: 8.0.0
|
||||
mocha: 6.2.2
|
||||
|
@ -6664,7 +6662,7 @@ packages:
|
|||
dev: false
|
||||
name: '@rush-temp/bf-dialog'
|
||||
resolution:
|
||||
integrity: sha512-8wXsJY2yxUDDROsf37LzAqPu7JdAPSnukcYxnKm+gK96P8wbu02tFnnqNyfclJpwFyBGLog8R931BWp6O5SaXg==
|
||||
integrity: sha512-GZ5UbbR1y0ayFNaRVmDaxEzeS4xmOT2ri2SbFM+nyg8BRmOD1fnKzf2GO9bT6/b4VcwbaYop08ANlHtLI80k2w==
|
||||
tarball: 'file:projects/bf-dialog.tgz'
|
||||
version: 0.0.0
|
||||
'file:projects/bf-dispatcher.tgz':
|
||||
|
@ -6958,7 +6956,7 @@ specifiers:
|
|||
https-proxy-agent: ^2.2.1
|
||||
intercept-stdout: ^0.1.2
|
||||
is-ci: 2.0.0
|
||||
json-ptr: ~1.2.0
|
||||
json-ptr: ~1.3.0
|
||||
json-schema-merge-allof: ~0.7.0
|
||||
latest-version: ^4.0.0
|
||||
lodash: ^4.17.15
|
||||
|
@ -6966,10 +6964,8 @@ specifiers:
|
|||
mime-types: ^2.1.18
|
||||
minimist: ^1.2.0
|
||||
nock: ^11.7.0
|
||||
npm-package-walker: ~4.0.5
|
||||
nyc: ^14.1.1
|
||||
os: ~0.1.1
|
||||
package-json: ~6.5.0
|
||||
pascal-case: ^2.0.1
|
||||
path: ^0.12.7
|
||||
please-upgrade-node: ^3.0.1
|
||||
|
|
|
@ -13,9 +13,12 @@ This package is intended for Microsoft use only and should be consumed through @
|
|||
|
||||
# Commands
|
||||
<!-- commands -->
|
||||
* [`bf dialog`](#bf-dialog)
|
||||
* [`bf dialog:merge PATTERNS`](#bf-dialogmerge-patterns)
|
||||
* [`bf dialog:verify PATTERNS`](#bf-dialogverify-patterns)
|
||||
- [@microsoft/bf-dialog](#microsoftbf-dialog)
|
||||
- [Relevant docs](#relevant-docs)
|
||||
- [Commands](#commands)
|
||||
- [`bf dialog`](#bf-dialog)
|
||||
- [`bf dialog:merge PATTERNS`](#bf-dialogmerge-patterns)
|
||||
- [`bf dialog:verify PATTERNS`](#bf-dialogverify-patterns)
|
||||
|
||||
## `bf dialog`
|
||||
|
||||
|
@ -33,23 +36,24 @@ _See code: [src/commands/dialog/index.ts](https://github.com/microsoft/botframew
|
|||
|
||||
## `bf dialog:merge PATTERNS`
|
||||
|
||||
Merge component .schema files into an app.schema.
|
||||
Merge <kind>.schema and <kind>[.<locale>].uischema definitions from a project and its dependencies into a single .schema for describing .dialog files and a per locale .uischema for describing how Composer shows them. For C#, ensures all nuget declarative resources are included in the same location.
|
||||
|
||||
```
|
||||
USAGE
|
||||
$ bf dialog:merge PATTERNS
|
||||
|
||||
ARGUMENTS
|
||||
PATTERNS Any number of glob regex patterns to match .schema, .csproj, or package.json files.
|
||||
PATTERNS Any number of glob regex patterns to match .csproj, .nuspec or package.json files.
|
||||
|
||||
OPTIONS
|
||||
-h, --help show CLI help
|
||||
-o, --output=output [default: app.schema] Output path and filename for merged schema.
|
||||
-v, --verbose Show verbose logging of files as they are processed.
|
||||
-h, --help show CLI help
|
||||
-o, --output=output Output path and filename for merged .schema and .uischema. Defaults to first project name.
|
||||
-v, --verbose Show verbose logging of files as they are processed.
|
||||
--extension=extension [default: .dialog,.lg,.lu,.schema,.qna,.uischema] Extension to include as a resource for C#.
|
||||
|
||||
EXAMPLES
|
||||
$ bf dialog:merge *.csproj
|
||||
$ bf dialog:merge libraries/**/*.schema **/*.csproj -o app.schema
|
||||
$ bf dialog:merge myProject.csproj plugins/*.nuspec
|
||||
$ bf dialog:merge package.json -o app.schema
|
||||
```
|
||||
|
||||
_See code: [src/commands/dialog/merge.ts](https://github.com/microsoft/botframework-cli/tree/master/packages/dialog/src/commands/dialog/merge.ts)_
|
||||
|
|
|
@ -2,18 +2,30 @@
|
|||
|
||||
## Merge
|
||||
|
||||
This will merge together [Microsoft Bot Builder](https://github.com/Microsoft/BotBuilder) .schema JSON schema files into a single JSON schema file. You can point to the files either directly with a glob pattern or indirectly through a glob pattern that matches a package.json, packages.config or \*.csproj file. The .schema files should have a unique filename that is used to refer to that type using `$kind`. The .schema files should include a `$schema: "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema"` which defines the schema they are validated against. You can access common definitions by using `$ref: "schema:#/definitions/stringExpression"` in a property definition. At the top-level in a component schema you can use `$role:"implements(<kind>)` to project the type definition into interface types defined using `$role:"interface"` while merging. To extend an existing .schema file use `$role: "extends(<kind>)"`. To refer to a type in a property, use `"$kind":"<kind>"` and the corresponding kind will be wired into your schema. The merger combines all of the component .schema files into a single .schema file that has resolved all external `$ref`, merged `allOf` and connected together schemas through `$role` and `$kind`.
|
||||
This will merge together [Microsoft Bot Builder](https://github.com/Microsoft/BotBuilder) .schema JSON schema files into a single JSON schema file and .uischema files into a per-locale .uischema file. You can point to the files either directly with a glob pattern or indirectly through a glob pattern that matches a package.json or /*.csproj file. The .schema files should have a unique filename that is used to refer to that type using `$kind`. The .schema files should include a `$schema: "https://schemas.botframework.com/schemas/component/v1.0/component.schema"` which defines the schema they are validated against.
|
||||
|
||||
You can also mark properties with a `$role: "expression"` to indicate to tooling that an expression is allowed for that property.
|
||||
You can also mark properties with a `$role: "expression"` to indicate to tooling that an expression is allowed for that property. A simple way to do this is to make use of common expression definitions like `$ref: "schema:#/definitions/<type>Expression"` in a property definition.
|
||||
|
||||
For example look at these files:
|
||||
At the top-level in a component schema you can use `$role:"implements(<kind>)` to project the type definition into interface types defined using `$role:"interface"` while merging.
|
||||
|
||||
- [IRecognizer.schema](test/schemas/IRecognizer.schema) defines the place holder for `IRecognizer` including a default option which is a bare string.
|
||||
- [Recognizer.schema](test/schemas/Recognizer.schema) includes `$role:"implements(IRecognizer)"` which extends the `IRecognizer` definition when merged.
|
||||
- [root.schema](test/schemas/root.schema) is a schema file that includes `$kind:"IRecognizer"` in order to make use of the `IRecognizer` place holder. The `$role: []` ensures that this is available as a top-level object.
|
||||
- [app.schema](test/schemas/app.schema) was created by this tool shows how all of these definitions are merged together. In particular if you look at `IRecognizer` you will see the definition that includes a string, or the complete definition of `Recognizer`.
|
||||
To extend an existing .schema file use `$role: "extends(<kind>)"`. This will add onto the existing definitions in `<kind>`.
|
||||
|
||||
[root.dialog](test/examples/root.dialog) Shows how you could use the resulting schema to enter in JSON schema and get intellisense.
|
||||
To refer to a type in a property, use `$kind:"<kind>"` and the corresponding kind will be wired into your schema. The merger combines all of the component .schema files into a single .schema file that has resolved all external `$ref`, merged `allOf` and connected together schemas through `$role` and `$kind`.
|
||||
|
||||
For `<kind>[.<locale>].uischema` files, use `$schema: "https://schemas.botframework.com/schemas/ui/v1.0/ui.schema"` to define their contents. The `<kind>` must be found in the .schema file and the optional `<locale>` is a string like en-us. All of the individual .uischema files will be combined into a composite one per-locale. If definitions conflict, the definition found first in the topological sort of bread-first, parent before child will be used.
|
||||
|
||||
For C#, nuget does not deal well with content files so all declarative .dialog, .lu, .lg, and .qna files will be copied into `generated/<package>` so you can easily include all of them in your project output.
|
||||
|
||||
For examples look at these files:
|
||||
|
||||
- [IRecognizer.schema](../test/schemas/IRecognizer.schema) defines the place holder for `IRecognizer` including a default option which is a bare string.
|
||||
- [Recognizer.schema](../test/schemas/Recognizer.schema) includes `$role:"implements(IRecognizer)"` which extends the `IRecognizer` definition when merged.
|
||||
- [root.schema](../test/schemas/root.schema) is a schema file that includes `$kind:"IRecognizer"` in order to make use of the `IRecognizer` place holder. The `$role: []` ensures that this is available as a top-level object.
|
||||
- [app.schema](../test/schemas/app.schema) was created by this tool shows how all of these definitions are merged together. In particular if you look at `IRecognizer` you will see the definition that includes a string, or the complete definition of `Recognizer`.
|
||||
- [nuget3.en-us.uischema](../test/commands/dialog/projects/project3/nuget3.en-us.uischema) shows an example component .uischema file.
|
||||
- [project3.en-us.uischema](../test/commands/dialog/oracles/project3.en-us.uischema) shows a merged .uischema file.
|
||||
|
||||
[root.dialog](../test/examples/root.dialog) Shows how you could use the resulting schema to enter in JSON schema and get intellisense.
|
||||
|
||||
## Verify
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
"seedrandom": "~3.0.5",
|
||||
"tslib": "^1.10.0",
|
||||
"xml2js": "^0.4.19",
|
||||
"json-ptr": "~1.2.0",
|
||||
"json-ptr": "~1.3.0",
|
||||
"json-schema-merge-allof": "~0.7.0",
|
||||
"@snyk/nuget-semver": "~1.3.0"
|
||||
},
|
||||
|
|
|
@ -3,33 +3,35 @@
|
|||
* Licensed under the MIT License.
|
||||
*/
|
||||
|
||||
import { Command, flags } from '@microsoft/bf-cli-command'
|
||||
import {Command, flags} from '@microsoft/bf-cli-command'
|
||||
import SchemaMerger from '../../library/schemaMerger'
|
||||
|
||||
export default class DialogMerge extends Command {
|
||||
static description = 'Merge component .schema files into an app.schema.'
|
||||
static description = 'Merge <kind>.schema and <kind>[.<locale>].uischema definitions from a project and its dependencies into a single .schema for describing .dialog files and a per locale .uischema for describing how Composer shows them. For C#, ensures all nuget declarative resources are included in the same location.'
|
||||
|
||||
static args = [
|
||||
{ name: 'patterns', required: true, description: 'Any number of glob regex patterns to match .schema, .csproj, or package.json files.'},
|
||||
{name: 'patterns', required: true, description: 'Any number of glob regex patterns to match .csproj, .nuspec or package.json files.'},
|
||||
]
|
||||
|
||||
static strict = false
|
||||
|
||||
static flags: flags.Input<any> = {
|
||||
debug: flags.boolean({ char: 'd', description: 'Generate debug files.', hidden: true, default: false}),
|
||||
help: flags.help({ char: 'h' }),
|
||||
output: flags.string({ char: 'o', description: 'Output path and filename for merged schema.', default: 'app.schema', required: false }),
|
||||
verbose: flags.boolean({ char: 'v', description: 'Show verbose logging of files as they are processed.', default: false }),
|
||||
debug: flags.boolean({char: 'd', description: 'Generate debug files.', hidden: true, default: false}),
|
||||
extension: flags.string({description: 'Extension to include as a resource for C#.', required: false, multiple: true, default: ['.dialog', '.lg', '.lu', '.schema', '.qna', '.uischema']}),
|
||||
help: flags.help({char: 'h'}),
|
||||
nugetRoot: flags.string({description: 'Nuget root directory for debugging.', hidden: true}),
|
||||
output: flags.string({char: 'o', description: 'Output path and filename for merged .schema and .uischema. Defaults to first project name.', required: false}),
|
||||
verbose: flags.boolean({char: 'v', description: 'Show verbose logging of files as they are processed.', default: false}),
|
||||
}
|
||||
|
||||
static examples = [
|
||||
'$ bf dialog:merge *.csproj',
|
||||
'$ bf dialog:merge libraries/**/*.schema **/*.csproj -o app.schema'
|
||||
'$ bf dialog:merge myProject.csproj plugins/*.nuspec',
|
||||
'$ bf dialog:merge package.json -o app.schema'
|
||||
]
|
||||
|
||||
async run() {
|
||||
const { argv, flags } = this.parse(DialogMerge)
|
||||
let merger = new SchemaMerger(argv, flags.output, flags.verbose, this.log, this.warn, this.error, flags.debug)
|
||||
await merger.mergeSchemas()
|
||||
const {argv, flags} = this.parse(DialogMerge)
|
||||
let merger = new SchemaMerger(argv, flags.output, flags.verbose, this.log, this.warn, this.error, flags.extension, flags.debug, flags.nugetRoot)
|
||||
await merger.merge()
|
||||
}
|
||||
}
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,23 @@
|
|||
@echo off
|
||||
setlocal
|
||||
|
||||
call rush build
|
||||
set ds=..\..\..\bin\run
|
||||
|
||||
echo *** loose schema
|
||||
call node %ds% dialog:merge schemas/*.schema -o oracles/app.schema --verbose
|
||||
echo.
|
||||
|
||||
echo *** project3.csproj
|
||||
call node %ds% dialog:merge projects/project3/project3.csproj -o oracles/project3 --nugetRoot nuget --verbose
|
||||
echo.
|
||||
|
||||
echo *** project5.csproj
|
||||
call node %ds% dialog:merge projects/project5/project5.csproj -o oracles/project5 --nugetRoot nuget --verbose
|
||||
echo.
|
||||
|
||||
echo *** root-package
|
||||
call node %ds% dialog:merge npm/node_modules/root-package/package.json -o oracles/root-package --verbose
|
||||
|
||||
rem remove copied assets
|
||||
rd /s /q oracles\generated
|
|
@ -5,7 +5,7 @@
|
|||
// tslint:disable:no-console
|
||||
// tslint:disable:no-object-literal-type-assertion
|
||||
|
||||
import { assert } from 'chai'
|
||||
import {assert} from 'chai'
|
||||
import * as fs from 'fs-extra'
|
||||
import 'mocha'
|
||||
import * as os from 'os'
|
||||
|
@ -30,11 +30,52 @@ async function merge(patterns: string[], output?: string, verbose?: boolean): Pr
|
|||
console.log(msg)
|
||||
lines.push(msg)
|
||||
}
|
||||
let merger = new SchemaMerger(patterns, output || ppath.join(tempDir, 'generated.schema'), verbose || false, logger, logger, logger, false, ppath.join(srcDir, 'nuget'))
|
||||
let merged = await merger.mergeSchemas()
|
||||
let merger = new SchemaMerger(patterns,
|
||||
output ? ppath.join(tempDir, output) : '',
|
||||
verbose || false,
|
||||
logger, logger, logger,
|
||||
undefined, false,
|
||||
ppath.join(srcDir, 'nuget'))
|
||||
let merged = await merger.merge()
|
||||
return [merged, lines]
|
||||
}
|
||||
|
||||
async function compareToOracle(name: string): Promise<object> {
|
||||
let generatedPath = ppath.join(tempDir, name)
|
||||
let generated = await fs.readJSON(generatedPath)
|
||||
let oraclePath = ppath.join('oracles', name)
|
||||
let oracle = await fs.readJSON(oraclePath)
|
||||
let oracles = JSON.stringify(oracle)
|
||||
let generateds = JSON.stringify(generated)
|
||||
if (oracles !== generateds) {
|
||||
console.log(`Oracle : ${oracles.length}`)
|
||||
console.log(`Generated: ${generateds.length}`)
|
||||
let max = oracles.length
|
||||
if (max > generateds.length) {
|
||||
max = generateds.length
|
||||
}
|
||||
let idx: number
|
||||
for (idx = 0; idx < max; ++idx) {
|
||||
if (oracles[idx] !== generateds[idx]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
let start = idx - 40
|
||||
if (start < 0) {
|
||||
start = 0
|
||||
}
|
||||
let end = idx + 40
|
||||
if (end > max) {
|
||||
end = max
|
||||
}
|
||||
console.log(`Oracle : ${oracles.substring(start, end)}`)
|
||||
console.log(`Generated: ${generateds.substring(start, end)}`)
|
||||
assert(false,
|
||||
`${ppath.resolve(generatedPath)} does not match oracle ${ppath.resolve(oraclePath)}`)
|
||||
}
|
||||
return generated
|
||||
}
|
||||
|
||||
describe('dialog:merge', async () => {
|
||||
before(async () => {
|
||||
// If you want to regenerate the oracle *.schema files, run schemas/makeschemas.cmd
|
||||
|
@ -43,49 +84,19 @@ describe('dialog:merge', async () => {
|
|||
process.chdir(srcDir)
|
||||
})
|
||||
|
||||
xit('app.schema', async () => {
|
||||
it('app.schema', async () => {
|
||||
console.log('Start app.schema')
|
||||
let [merged, lines] = await merge(['schemas/*.schema'])
|
||||
assert(merged, 'Could not merge schemas')
|
||||
assert(countMatches(/error|warning/i, lines) === 1, 'Error merging schemas')
|
||||
let oracle = await fs.readJSON('schemas/app.schema')
|
||||
let generatedPath = ppath.join(tempDir, 'generated.schema')
|
||||
let generated = await fs.readJSON(generatedPath)
|
||||
let oracles = JSON.stringify(oracle)
|
||||
let generateds = JSON.stringify(generated)
|
||||
if (oracles !== generateds) {
|
||||
console.log(`Oracle : ${oracles.length}`)
|
||||
console.log(`Generated: ${generateds.length}`)
|
||||
let max = oracles.length
|
||||
if (max > generateds.length) {
|
||||
max = generateds.length
|
||||
}
|
||||
let idx: number
|
||||
for (idx = 0; idx < max; ++idx) {
|
||||
if (oracles[idx] !== generateds[idx]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
let start = idx - 40
|
||||
if (start < 0) {
|
||||
start = 0
|
||||
}
|
||||
let end = idx + 40
|
||||
if (end > max) {
|
||||
end = max
|
||||
}
|
||||
console.log(`Oracle : ${oracles.substring(start, end)}`)
|
||||
console.log(`Generated: ${generateds.substring(start, end)}`)
|
||||
assert(false,
|
||||
`Schema ${ppath.resolve(generatedPath)} does not match ${ppath.resolve('schemas/app.schema')}`)
|
||||
}
|
||||
let [merged, lines] = await merge(['schemas/*.schema'], 'app.schema')
|
||||
assert(merged, 'Could not merge')
|
||||
assert(countMatches(/error|warning/i, lines) === 0, 'Error merging schemas')
|
||||
await compareToOracle('app.schema')
|
||||
})
|
||||
|
||||
it('bad json', async () => {
|
||||
console.log('\nStart bad json')
|
||||
let [merged, lines] = await merge(['schemas/*.schema', 'schemas/badSchemas/badJson.schema'])
|
||||
assert(!merged, 'Merging should have failed')
|
||||
assert(countMatches(/error|warning/i, lines) === 2, 'Extra errors or warnings')
|
||||
assert(countMatches(/error|warning/i, lines) === 1, 'Wrong number of errors or warnings')
|
||||
assert(countMatches('Unexpected token', lines) === 1, 'Did not detect bad JSON')
|
||||
})
|
||||
|
||||
|
@ -93,7 +104,7 @@ describe('dialog:merge', async () => {
|
|||
console.log('\nStart schema mismatch')
|
||||
let [merged, lines] = await merge(['schemas/*.schema', 'schemas/badSchemas/schemaMismatch.schema'])
|
||||
assert(merged, 'Merging failed')
|
||||
assert(countMatches(/error|warning/i, lines) === 2, 'Extra errors or warnings')
|
||||
assert(countMatches(/error|warning/i, lines) === 1, 'Wrong number of errors or warnings')
|
||||
assert(countMatches('does not match', lines) === 1, 'Did not detect schema mismatch')
|
||||
})
|
||||
|
||||
|
@ -101,7 +112,7 @@ describe('dialog:merge', async () => {
|
|||
console.log('\nStart no allof')
|
||||
let [merged, lines] = await merge(['schemas/*.schema', 'schemas/badSchemas/allof.schema'])
|
||||
assert(!merged, 'Merging should have failed')
|
||||
assert(countMatches(/error|warning/i, lines) === 2, 'Extra errors or warnings')
|
||||
assert(countMatches(/error|warning/i, lines) === 1, 'Wrong number of errors or warnings')
|
||||
assert(countMatches('allOf', lines) === 1, 'Did not detect allOf in schema')
|
||||
})
|
||||
|
||||
|
@ -109,7 +120,7 @@ describe('dialog:merge', async () => {
|
|||
console.log('\nStart missing extends')
|
||||
let [merged, lines] = await merge(['schemas/*.schema', 'schemas/badSchemas/missingExtends.schema'])
|
||||
assert(!merged, 'Merging should have failed')
|
||||
assert(countMatches(/error|warning/i, lines) === 2, 'Extra errors or warnings')
|
||||
assert(countMatches(/error|warning/i, lines) === 1, 'Wrong number of errors or warnings')
|
||||
assert(countMatches('it is not included', lines) === 1, 'Did not detect missing extends in schema')
|
||||
})
|
||||
|
||||
|
@ -117,7 +128,7 @@ describe('dialog:merge', async () => {
|
|||
console.log('\nStart missing schema reference')
|
||||
let [merged, lines] = await merge(['schemas/*.schema', 'schemas/badSchemas/missingSchemaRef.schema'])
|
||||
assert(!merged, 'Merging should have failed')
|
||||
assert(countMatches(/error|warning/i, lines) === 2, 'Extra errors or warnings')
|
||||
assert(countMatches(/error|warning/i, lines) === 1, 'Wrong number of errors or warnings')
|
||||
assert(countMatches('does not exist', lines) === 1, 'Did not detect missing schema ref')
|
||||
})
|
||||
|
||||
|
@ -125,7 +136,7 @@ describe('dialog:merge', async () => {
|
|||
console.log('\nStart bad role')
|
||||
let [merged, lines] = await merge(['schemas/*.schema', 'schemas/badSchemas/badRole.schema'])
|
||||
assert(!merged, 'Merging should have failed')
|
||||
assert(countMatches(/error|warning/i, lines) === 3, 'Extra errors or warnings')
|
||||
assert(countMatches(/error|warning/i, lines) === 2, 'Wrong number of errors or warnings')
|
||||
assert(countMatches('is not valid for component', lines) === 1, 'Did not detect bad component $role')
|
||||
assert(countMatches('is not valid in properties/foo', lines) === 1, 'Did not detect bad property $role')
|
||||
})
|
||||
|
@ -134,27 +145,43 @@ describe('dialog:merge', async () => {
|
|||
console.log('\nStart duplicate $kind')
|
||||
let [merged, lines] = await merge(['schemas/*.schema', 'schemas/badSchemas/prompt.schema'])
|
||||
assert(!merged, 'Merging should have failed')
|
||||
assert(countMatches(/error|warning/i, lines) === 2, 'Extra errors or warnings')
|
||||
assert(countMatches('Redefines prompt', lines) === 1, 'Did not detect duplicate $kind')
|
||||
assert(countMatches(/error|warning/i, lines) === 1, 'Wrong number of errors or warnings')
|
||||
assert(countMatches('prompt.schema', lines) === 3, 'Did not detect duplicate $kind')
|
||||
})
|
||||
|
||||
it('missing implementation', async () => {
|
||||
console.log('\nStart missing implementation')
|
||||
let [merged, lines] = await merge(['schemas/*.schema', 'schemas/badSchemas/missingImplementation.schema'])
|
||||
assert(!merged, 'Merging should have failed')
|
||||
assert(countMatches(/error|warning/i, lines) === 2, 'Extra errors or warnings')
|
||||
assert(countMatches(/error|warning/i, lines) === 1, 'Wrong number of errors or warnings')
|
||||
assert(countMatches('no implementations', lines) === 1, 'Did not detect missing implementations')
|
||||
})
|
||||
|
||||
it('csproj', async () => {
|
||||
console.log('\nStart csproj')
|
||||
let [merged, lines] = await merge(['projects/project1/project1.csproj'], undefined, true)
|
||||
let [merged, lines] = await merge(['projects/project3/project3.csproj'], 'project3.schema', true)
|
||||
let errors = countMatches(/error|warning/i, lines)
|
||||
if (errors === 0) {
|
||||
assert(merged, 'Could not merge schemas')
|
||||
} else {
|
||||
assert(!merged, 'Should not have merged schemas')
|
||||
}
|
||||
assert(errors === 0, 'Should not have got errors')
|
||||
assert(merged, 'Could not merge')
|
||||
assert(countMatches(/Following.*project3/, lines) === 1, 'Did not follow project1')
|
||||
assert(countMatches(/Following nuget.*nuget3.*1.0.0/, lines) === 1, 'Did not follow nuget3')
|
||||
assert(countMatches(/Parsing.*nuget3.schema/, lines) === 1, 'Missing nuget3.schema')
|
||||
assert(countMatches(/Copying/i, lines) === 7, 'Wrong number of copies')
|
||||
assert(countMatches(/Copying.*nuget3.lg/i, lines) === 1, 'Did not copy .lg')
|
||||
assert(countMatches(/Copying.*nuget3.lu/i, lines) === 1, 'Did not copy .lu')
|
||||
assert(countMatches(/Copying.*nuget3.qna/i, lines) === 1, 'Did not copy .qna')
|
||||
assert(countMatches(/Copying.*nuget3.*uischema/i, lines) === 2, 'Did not copy .uischema')
|
||||
assert(countMatches(/Copying.*nuget3.schema/i, lines) === 1, 'Did not copy .schema')
|
||||
assert(await fs.pathExists(ppath.join(tempDir, 'generated', 'nuget3', 'assets', 'nuget3.qna')), 'Did not copy directory')
|
||||
await compareToOracle('project3.schema')
|
||||
await compareToOracle('project3.en-us.uischema')
|
||||
})
|
||||
|
||||
it('csproj-errors', async () => {
|
||||
console.log('\nStart csproj-errors')
|
||||
let [merged, lines] = await merge(['projects/project1/project1.csproj'], undefined, true)
|
||||
assert(!merged, 'Merging should faile')
|
||||
assert(countMatches(/error|warning/i, lines) === 6, 'Wrong number of errors or warnings')
|
||||
assert(countMatches(/Following.*project1/, lines) === 1, 'Did not follow project1')
|
||||
assert(countMatches(/Following nuget.*nuget1.*10.0.1/, lines) === 1, 'Did not follow nuget1')
|
||||
assert(countMatches(/Following.*project2/, lines) === 1, 'Did not follow project2')
|
||||
|
@ -164,17 +191,64 @@ describe('dialog:merge', async () => {
|
|||
assert(countMatches(/Parsing.*nuget2.schema/, lines) === 1, 'Missing nuget2.schema')
|
||||
assert(countMatches(/Parsing.*nuget3.schema/, lines) === 1, 'Missing nuget3.schema')
|
||||
assert(countMatches(/Parsing.*project2.schema/, lines) === 1, 'Missing project2.schema')
|
||||
assert(countMatches(/multiple.dialog/, lines) === 3, 'Missing multiple definitions')
|
||||
})
|
||||
|
||||
it('csproj-uierrors', async () => {
|
||||
console.log('\nStart csproj-uierrors')
|
||||
let [merged, lines] = await merge(['projects/project4/project4.csproj'], 'project4.schema', true)
|
||||
assert(!merged, 'Merging should fail')
|
||||
assert(countMatches(/error|warning/i, lines) === 7, 'Wrong number of errors or warnings')
|
||||
assert(countMatches(/nokind does not exist/i, lines) === 1, 'Missing nokind')
|
||||
assert(countMatches(/nonExistentProperty/i, lines) === 4, 'Wrong number of non-existent properties')
|
||||
assert(countMatches(/order.nonExistentOrder/i, lines) === 2, 'Wrong number of non-existent orders')
|
||||
})
|
||||
|
||||
it('csproj-config', async () => {
|
||||
console.log('\nStart csproj-config')
|
||||
let [merged, lines] = await merge(['projects/project5/project5.csproj'], 'project5.schema', true)
|
||||
assert(merged, 'Merging should succeed')
|
||||
assert(countMatches(/error|warning/i, lines) === 0, 'Wrong number of errors or warnings')
|
||||
assert(countMatches(/packages.config/i, lines) === 1, 'Missing packages.config')
|
||||
await compareToOracle('project5.schema')
|
||||
await compareToOracle('project5.en-us.uischema')
|
||||
})
|
||||
|
||||
it('package.json', async () => {
|
||||
console.log('\nStart package.json')
|
||||
let [merged, lines] = await merge(['npm/node_modules/root-package/package.json'], undefined, true)
|
||||
assert(merged, 'Could not merge schemas')
|
||||
assert(countMatches(/error|warning/i, lines) === 0, 'Extra errors or warnings')
|
||||
let [merged, lines] = await merge(['npm/node_modules/root-package/package.json'], 'root-package.schema', true)
|
||||
assert(merged, 'Could not merge')
|
||||
assert(countMatches(/error|warning/i, lines) === 0, 'Wrong number of errors or warnings')
|
||||
assert(countMatches('root-package.schema', lines) === 1, 'Missing root-package.schema')
|
||||
assert(countMatches('dependent-package.schema', lines) === 1, 'Missing dependent-package.schema')
|
||||
assert(countMatches('parent-package.schema', lines) === 1, 'Missing parent-package.schema')
|
||||
assert(countMatches('no-package.schema', lines) === 0, 'Extra no-package.schema')
|
||||
await compareToOracle('root-package.schema')
|
||||
await compareToOracle('root-package.uischema')
|
||||
})
|
||||
|
||||
it('nuspec', async () => {
|
||||
// This is more complicated because it is also testing the output name inference
|
||||
// which ends up in the directory where the command is run from
|
||||
console.log('\nStart nuspec')
|
||||
let path = ppath.join(tempDir, 'nuget1/')
|
||||
await fs.ensureDir(path)
|
||||
await fs.copy('nuget/nuget1/10.0.1/', path)
|
||||
await fs.copyFile('schemas/packageBase.json', ppath.join(path, 'packageBase.json'))
|
||||
await fs.copyFile(ppath.join(path, 'nuget1-10.schema.local'), ppath.join(path, 'nuget1-10.schema'))
|
||||
let cwd = process.cwd()
|
||||
try {
|
||||
process.chdir(path)
|
||||
let [merged, lines] = await merge(['nuget1.nuspec'], undefined, true)
|
||||
assert(merged, 'Could not merge')
|
||||
assert(fs.existsSync('nuget1.schema')
|
||||
&& fs.existsSync('nuget1.en-us.uischema'),
|
||||
'Did not infer output')
|
||||
assert(countMatches(/error|warning/i, lines) === 0, 'Wrong number of errors or warnings')
|
||||
assert(countMatches('nuget1.nuspec', lines) === 1, 'Missing nuget1.nuspec')
|
||||
} finally {
|
||||
process.chdir(cwd)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
|
|
1
packages/dialog/test/commands/dialog/npm/node_modules/parent-package/package.json
сгенерированный
поставляемый
1
packages/dialog/test/commands/dialog/npm/node_modules/parent-package/package.json
сгенерированный
поставляемый
|
@ -1,3 +1,4 @@
|
|||
{
|
||||
"name": "parent-package",
|
||||
"version": "1.0.0"
|
||||
}
|
6
packages/dialog/test/commands/dialog/npm/node_modules/parent-package/parent-package.schema
сгенерированный
поставляемый
6
packages/dialog/test/commands/dialog/npm/node_modules/parent-package/parent-package.schema
сгенерированный
поставляемый
|
@ -1,6 +1,4 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$role": [],
|
||||
"title": "Some node",
|
||||
"description": "Definition."
|
||||
"title": "parent-package Schema",
|
||||
"$ref": "../../../schemas/packageBase.json"
|
||||
}
|
7
packages/dialog/test/commands/dialog/npm/node_modules/parent-package/parent-package.uischema
сгенерированный
поставляемый
Normal file
7
packages/dialog/test/commands/dialog/npm/node_modules/parent-package/parent-package.uischema
сгенерированный
поставляемый
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"$schema": "https://schemas.botframework.com/schemas/ui/v1.0/ui.schema",
|
||||
"form": {
|
||||
"description": "parent-package",
|
||||
"subtitle": "From parent-package"
|
||||
}
|
||||
}
|
6
packages/dialog/test/commands/dialog/npm/node_modules/root-package/dependent-package.uischema
сгенерированный
поставляемый
Normal file
6
packages/dialog/test/commands/dialog/npm/node_modules/root-package/dependent-package.uischema
сгенерированный
поставляемый
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"$schema": "https://schemas.botframework.com/schemas/ui/v1.0/ui.schema",
|
||||
"form": {
|
||||
"description": "root-package"
|
||||
}
|
||||
}
|
6
packages/dialog/test/commands/dialog/npm/node_modules/root-package/node_modules/dependent-package/dependent-package.schema
сгенерированный
поставляемый
6
packages/dialog/test/commands/dialog/npm/node_modules/root-package/node_modules/dependent-package/dependent-package.schema
сгенерированный
поставляемый
|
@ -1,6 +1,4 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$role": [],
|
||||
"title": "Some node",
|
||||
"description": "Definition."
|
||||
"title": "dependent-package Schema",
|
||||
"$ref": "../../../../../schemas/packageBase.json"
|
||||
}
|
6
packages/dialog/test/commands/dialog/npm/node_modules/root-package/node_modules/dependent-package/dependent-package.uischema
сгенерированный
поставляемый
Normal file
6
packages/dialog/test/commands/dialog/npm/node_modules/root-package/node_modules/dependent-package/dependent-package.uischema
сгенерированный
поставляемый
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"$schema": "https://schemas.botframework.com/schemas/ui/v1.0/ui.schema",
|
||||
"form": {
|
||||
"description": "dependent-package"
|
||||
}
|
||||
}
|
1
packages/dialog/test/commands/dialog/npm/node_modules/root-package/node_modules/dependent-package/package.json
сгенерированный
поставляемый
1
packages/dialog/test/commands/dialog/npm/node_modules/root-package/node_modules/dependent-package/package.json
сгенерированный
поставляемый
|
@ -1,3 +1,4 @@
|
|||
{
|
||||
"name": "dependent-package",
|
||||
"version": "1.0.0"
|
||||
}
|
6
packages/dialog/test/commands/dialog/npm/node_modules/root-package/node_modules/no-package/no-package.schema
сгенерированный
поставляемый
6
packages/dialog/test/commands/dialog/npm/node_modules/root-package/node_modules/no-package/no-package.schema
сгенерированный
поставляемый
|
@ -1,6 +1,4 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$role": [],
|
||||
"title": "Some node",
|
||||
"description": "Definition."
|
||||
"title": "no-package Schema",
|
||||
"$ref": "../../../../../../schemas/packageBase.json"
|
||||
}
|
2
packages/dialog/test/commands/dialog/npm/node_modules/root-package/package.json
сгенерированный
поставляемый
2
packages/dialog/test/commands/dialog/npm/node_modules/root-package/package.json
сгенерированный
поставляемый
|
@ -1,4 +1,6 @@
|
|||
{
|
||||
"name": "root-package",
|
||||
"version": "1.9.2",
|
||||
"dependencies": {
|
||||
"dependent-package": "^1.0.0",
|
||||
"parent-package": "1.0.0"
|
||||
|
|
6
packages/dialog/test/commands/dialog/npm/node_modules/root-package/root-package.schema
сгенерированный
поставляемый
6
packages/dialog/test/commands/dialog/npm/node_modules/root-package/root-package.schema
сгенерированный
поставляемый
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$role": [],
|
||||
"title": "Some node",
|
||||
"description": "Definition."
|
||||
}
|
0
packages/dialog/test/commands/dialog/nuget/nuget1/10.0.1/assets/nuget1-10.lg
поставляемый
Normal file
0
packages/dialog/test/commands/dialog/nuget/nuget1/10.0.1/assets/nuget1-10.lg
поставляемый
Normal file
0
packages/dialog/test/commands/dialog/nuget/nuget1/10.0.1/assets/nuget1-10.lu
поставляемый
Normal file
0
packages/dialog/test/commands/dialog/nuget/nuget1/10.0.1/assets/nuget1-10.lu
поставляемый
Normal file
0
packages/dialog/test/commands/dialog/nuget/nuget1/10.0.1/assets/nuget1-10.qna
поставляемый
Normal file
0
packages/dialog/test/commands/dialog/nuget/nuget1/10.0.1/assets/nuget1-10.qna
поставляемый
Normal file
7
packages/dialog/test/commands/dialog/nuget/nuget1/10.0.1/nuget1-10.en-us.uischema
поставляемый
Normal file
7
packages/dialog/test/commands/dialog/nuget/nuget1/10.0.1/nuget1-10.en-us.uischema
поставляемый
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"$schema": "https://schemas.botframework.com/schemas/ui/v1.0/ui.schema",
|
||||
"form": {
|
||||
"description": "nuget1-10",
|
||||
"subtitle": "From nuget1-10"
|
||||
}
|
||||
}
|
|
@ -1,6 +1,4 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$role": [],
|
||||
"title": "Some node",
|
||||
"description": "Definition."
|
||||
"title": "nuget1-10 Schema",
|
||||
"$ref": "../../../schemas/packageBase.json"
|
||||
}
|
4
packages/dialog/test/commands/dialog/nuget/nuget1/10.0.1/nuget1-10.schema.local
поставляемый
Normal file
4
packages/dialog/test/commands/dialog/nuget/nuget1/10.0.1/nuget1-10.schema.local
поставляемый
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"title": "nuget1-10 Schema",
|
||||
"$ref": "./packageBase.json"
|
||||
}
|
0
packages/dialog/test/commands/dialog/nuget/nuget1/11.0.0/assets/nuget1-11.lg
поставляемый
Normal file
0
packages/dialog/test/commands/dialog/nuget/nuget1/11.0.0/assets/nuget1-11.lg
поставляемый
Normal file
0
packages/dialog/test/commands/dialog/nuget/nuget1/11.0.0/assets/nuget1-11.lu
поставляемый
Normal file
0
packages/dialog/test/commands/dialog/nuget/nuget1/11.0.0/assets/nuget1-11.lu
поставляемый
Normal file
0
packages/dialog/test/commands/dialog/nuget/nuget1/11.0.0/assets/nuget1-11.qna
поставляемый
Normal file
0
packages/dialog/test/commands/dialog/nuget/nuget1/11.0.0/assets/nuget1-11.qna
поставляемый
Normal file
7
packages/dialog/test/commands/dialog/nuget/nuget1/11.0.0/nuget1-11.en-us.uischema
поставляемый
Normal file
7
packages/dialog/test/commands/dialog/nuget/nuget1/11.0.0/nuget1-11.en-us.uischema
поставляемый
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"$schema": "https://schemas.botframework.com/schemas/ui/v1.0/ui.schema",
|
||||
"form": {
|
||||
"description": "nuget1-11",
|
||||
"subtitle": "From nuget1-11"
|
||||
}
|
||||
}
|
|
@ -1,6 +1,4 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$role": [],
|
||||
"title": "Some node",
|
||||
"description": "Definition."
|
||||
"title": "nuget1-11 Schema",
|
||||
"$ref": "../../../schemas/packageBase.json"
|
||||
}
|
0
packages/dialog/test/commands/dialog/nuget/nuget2/1.0.1/assets/nuget2.qna
поставляемый
Normal file
0
packages/dialog/test/commands/dialog/nuget/nuget2/1.0.1/assets/nuget2.qna
поставляемый
Normal file
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"$role": [],
|
||||
"title": "Some node",
|
||||
"description": "Definition."
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>nuget2</id>
|
||||
<version>10.0.1</version>
|
||||
<version>1.0.1</version>
|
||||
<title>nuget2</title>
|
||||
<dependencies>
|
||||
</dependencies>
|
||||
|
|
0
packages/dialog/test/commands/dialog/nuget/nuget3/1.0.0/assets/nuget3.qna
поставляемый
Normal file
0
packages/dialog/test/commands/dialog/nuget/nuget3/1.0.0/assets/nuget3.qna
поставляемый
Normal file
77
packages/dialog/test/commands/dialog/nuget/nuget3/1.0.0/nuget3.en-us.uischema
поставляемый
Normal file
77
packages/dialog/test/commands/dialog/nuget/nuget3/1.0.0/nuget3.en-us.uischema
поставляемый
Normal file
|
@ -0,0 +1,77 @@
|
|||
{
|
||||
"$schema": "https://schemas.botframework.com/schemas/ui/v1.0/ui.schema",
|
||||
"form": {
|
||||
"description": "Nuget3 en-us",
|
||||
"label": "Nuget3 en-us",
|
||||
"order": [
|
||||
"Object"
|
||||
],
|
||||
"properties": {
|
||||
"Object": {
|
||||
"description": "This is Object",
|
||||
"label": "Nuget3 en-us",
|
||||
"order": [
|
||||
"subObject"
|
||||
],
|
||||
"properties": {
|
||||
"subObject": {
|
||||
"label": "Nuget3 en-us",
|
||||
"description": "This is subObject"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SimpleArray": {
|
||||
"description": "This is SimpleArray",
|
||||
"label": "Nuget3 en-us"
|
||||
},
|
||||
"Array": {
|
||||
"description": "This is Array",
|
||||
"label": "Nuget3 en-us",
|
||||
"order": [
|
||||
"subArray"
|
||||
],
|
||||
"properties": {
|
||||
"subArray": {
|
||||
"description": "This is subArray",
|
||||
"label": "Nuget3 en-us"
|
||||
}
|
||||
}
|
||||
},
|
||||
"AnyOf": {
|
||||
"description": "This is AnyOf",
|
||||
"label": "Nuget3 en-us",
|
||||
"order": [
|
||||
"anyOf1"
|
||||
],
|
||||
"properties": {
|
||||
"anyOf1": {
|
||||
"description": "This is anyOf1",
|
||||
"label": "Nuget3 en-us",
|
||||
"order": [
|
||||
"subAnyOf1"
|
||||
],
|
||||
"properties": {
|
||||
"subAnyOf1": {
|
||||
"description": "This is subAnyOf1",
|
||||
"label": "Nuget3 en-us"
|
||||
}
|
||||
}
|
||||
},
|
||||
"anyOf2": {
|
||||
"description": "This is anyOf2",
|
||||
"label": "Nuget3 en-us",
|
||||
"order": [
|
||||
"subAnyOf2"
|
||||
],
|
||||
"properties": {
|
||||
"subAnyOf2": {
|
||||
"description": "This is subAnyOf2",
|
||||
"label": "Nuget3 en-us"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>nuget3</id>
|
||||
<version>10.0.1</version>
|
||||
<version>1.0.0</version>
|
||||
<title>nuget2</title>
|
||||
<dependencies>
|
||||
</dependencies>
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$role": [],
|
||||
"title": "Some node",
|
||||
"description": "Definition."
|
||||
"title": "Nuget3 schema",
|
||||
"$ref": "../../../schemas/packageBase.json"
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
{
|
||||
"$schema": "https://schemas.botframework.com/schemas/ui/v1.0/ui.schema",
|
||||
"form": {
|
||||
"description": "Nuget3",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"Object"
|
||||
],
|
||||
"properties": {
|
||||
"Object": {
|
||||
"description": "This is Object",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"subObject"
|
||||
],
|
||||
"properties": {
|
||||
"subObject": {
|
||||
"label": "Nuget3",
|
||||
"description": "This is subObject"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SimpleArray": {
|
||||
"description": "This is SimpleArray",
|
||||
"label": "Nuget3"
|
||||
},
|
||||
"Array": {
|
||||
"description": "This is Array",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"subArray"
|
||||
],
|
||||
"properties": {
|
||||
"subArray": {
|
||||
"description": "This is subArray",
|
||||
"label": "Nuget3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"AnyOf": {
|
||||
"description": "This is AnyOf",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"anyOf1"
|
||||
],
|
||||
"properties": {
|
||||
"anyOf1": {
|
||||
"description": "This is anyOf1",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"subAnyOf1"
|
||||
],
|
||||
"properties": {
|
||||
"subAnyOf1": {
|
||||
"description": "This is subAnyOf1",
|
||||
"label": "Nuget3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"anyOf2": {
|
||||
"description": "This is anyOf2",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"subAnyOf2"
|
||||
],
|
||||
"properties": {
|
||||
"subAnyOf2": {
|
||||
"description": "This is subAnyOf2",
|
||||
"label": "Nuget3"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,494 @@
|
|||
{
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"type": "object",
|
||||
"title": "Component kinds",
|
||||
"description": "These are all of the kinds that can be created by the loader.",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/Recognizer"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/RecognizerTypeMismatch"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/prompt"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/root"
|
||||
}
|
||||
],
|
||||
"definitions": {
|
||||
"INothing": {
|
||||
"title": "Microsoft Nothing",
|
||||
"description": "Definition of a union type with no implementations.",
|
||||
"$role": "interface"
|
||||
},
|
||||
"IRecognizer": {
|
||||
"$role": "interface",
|
||||
"$comment": "Has multiple implementations",
|
||||
"title": "Recognizer",
|
||||
"description": "Recognizer interface.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"title": "Reference to IRecognizer",
|
||||
"description": "Reference to IRecognizer .dialog file."
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/Recognizer"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/RecognizerTypeMismatch"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Recognizer": {
|
||||
"$role": "implements(IRecognizer)",
|
||||
"required": [
|
||||
"req",
|
||||
"$kind"
|
||||
],
|
||||
"definitions": {
|
||||
"insideDef": {
|
||||
"$role": "expression",
|
||||
"title": "Inside",
|
||||
"description": "Something inside."
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"req": {
|
||||
"$role": "expression",
|
||||
"title": "Required",
|
||||
"description": "Something required."
|
||||
},
|
||||
"opt": {
|
||||
"type": "string",
|
||||
"title": "Optional",
|
||||
"description": "Something optional."
|
||||
},
|
||||
"complex": {
|
||||
"title": "Complex",
|
||||
"description": "Complex object.",
|
||||
"properties": {
|
||||
"inside": {
|
||||
"$ref": "#/definitions/Recognizer/definitions/insideDef"
|
||||
}
|
||||
}
|
||||
},
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$",
|
||||
"const": "Recognizer"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"RecognizerTypeMismatch": {
|
||||
"$role": "implements(IRecognizer)",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"$kind"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$",
|
||||
"const": "RecognizerTypeMismatch"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"arrayExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Array or expression",
|
||||
"description": "Array or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "array",
|
||||
"title": "Array",
|
||||
"description": "Array constant."
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression"
|
||||
}
|
||||
]
|
||||
},
|
||||
"basePrompt": {
|
||||
"$comment": "This is a base schema that cannot be instantiated.",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"$kind"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"prompt": {
|
||||
"type": "string",
|
||||
"title": "Base prompt",
|
||||
"description": "Base prompt."
|
||||
},
|
||||
"alternatePrompt": {
|
||||
"title": "Alternate",
|
||||
"description": "Alternate prompt of anything."
|
||||
},
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$",
|
||||
"const": "basePrompt"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"booleanExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Boolean or expression",
|
||||
"description": "Boolean constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean constant.",
|
||||
"default": false,
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=user.isVip"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"component": {
|
||||
"required": [
|
||||
"$kind"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"condition": {
|
||||
"$role": "expression",
|
||||
"title": "Boolean condition",
|
||||
"description": "Boolean constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/expression"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean value.",
|
||||
"default": true,
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"equalsExpression": {
|
||||
"$role": "expression",
|
||||
"type": "string",
|
||||
"title": "Expression",
|
||||
"description": "Expression starting with =.",
|
||||
"pattern": "^=.*\\S.*",
|
||||
"examples": [
|
||||
"=user.name"
|
||||
]
|
||||
},
|
||||
"expression": {
|
||||
"$role": "expression",
|
||||
"type": "string",
|
||||
"title": "Expression",
|
||||
"description": "Expression to evaluate.",
|
||||
"pattern": "^.*\\S.*",
|
||||
"examples": [
|
||||
"user.age > 13"
|
||||
]
|
||||
},
|
||||
"integerExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Integer or expression",
|
||||
"description": "Integer constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "integer",
|
||||
"title": "Integer",
|
||||
"description": "Integer constant.",
|
||||
"default": 0,
|
||||
"examples": [
|
||||
15
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=user.age"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"numberExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Number or expression",
|
||||
"description": "Number constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "number",
|
||||
"title": "Number",
|
||||
"description": "Number constant.",
|
||||
"default": 0,
|
||||
"examples": [
|
||||
15.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=dialog.quantity"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"objectExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Object or expression",
|
||||
"description": "Object or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"title": "Object",
|
||||
"description": "Object constant."
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression"
|
||||
}
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"$role": "extends(basePrompt)",
|
||||
"required": [
|
||||
"prompt",
|
||||
"$kind"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"prompt": {
|
||||
"type": "string",
|
||||
"title": "Base prompt",
|
||||
"description": "Base prompt."
|
||||
},
|
||||
"alternatePrompt": {
|
||||
"title": "Alternate",
|
||||
"description": "Alternate prompt of anything."
|
||||
},
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$",
|
||||
"const": "prompt"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"role": {
|
||||
"title": "$role",
|
||||
"description": "Defines the role played in the dialog schema from [expression|interface|implements($kind)|extends($kind)].",
|
||||
"type": "string",
|
||||
"pattern": "^((expression)|(interface)|(implements\\([a-zA-Z][a-zA-Z0-9.]*\\))|(extends\\([a-zA-Z][a-zA-Z0-9.]*\\)))$"
|
||||
},
|
||||
"root": {
|
||||
"$role": [],
|
||||
"required": [
|
||||
"recognizers",
|
||||
"$kind"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"recognizers": {
|
||||
"type": "array",
|
||||
"title": "Recognizers",
|
||||
"description": "Some recognizers.",
|
||||
"items": {
|
||||
"$kind": "IRecognizer",
|
||||
"$ref": "#/definitions/IRecognizer"
|
||||
}
|
||||
},
|
||||
"prompt": {
|
||||
"$kind": "prompt",
|
||||
"title": "A prompt",
|
||||
"description": "A prompt.",
|
||||
"$ref": "#/definitions/prompt"
|
||||
},
|
||||
"condition": {
|
||||
"title": "Condition",
|
||||
"description": "A condition to test",
|
||||
"$ref": "#/definitions/booleanExpression"
|
||||
},
|
||||
"property": {
|
||||
"type": "string",
|
||||
"title": "Something",
|
||||
"description": "About something."
|
||||
},
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$",
|
||||
"const": "root"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"stringExpression": {
|
||||
"$role": "expression",
|
||||
"title": "String or expression",
|
||||
"description": "Interpolated string or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"title": "String",
|
||||
"description": "Interpolated string",
|
||||
"pattern": "^(?!(=)).*",
|
||||
"examples": [
|
||||
"Hello ${user.name}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=concat('x','y','z')"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"valueExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Any or expression",
|
||||
"description": "Any constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"title": "Object",
|
||||
"description": "Object constant."
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"title": "Array",
|
||||
"description": "Array constant."
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"title": "String",
|
||||
"description": "Interpolated string.",
|
||||
"pattern": "^(?!(=)).*",
|
||||
"examples": [
|
||||
"Hello ${user.name}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean constant",
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"title": "Number",
|
||||
"description": "Number constant.",
|
||||
"examples": [
|
||||
15.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=..."
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
{
|
||||
"nuget3": {
|
||||
"$schema": "https://schemas.botframework.com/schemas/ui/v1.0/ui.schema",
|
||||
"form": {
|
||||
"description": "Nuget3 en-us",
|
||||
"label": "Project3",
|
||||
"order": [
|
||||
"*"
|
||||
],
|
||||
"properties": {
|
||||
"AnyOf": {
|
||||
"description": "This is AnyOf",
|
||||
"label": "Project3",
|
||||
"order": [
|
||||
"*"
|
||||
],
|
||||
"properties": {
|
||||
"anyOf1": {
|
||||
"description": "This is anyOf1",
|
||||
"label": "Project3",
|
||||
"order": [
|
||||
"*"
|
||||
],
|
||||
"properties": {
|
||||
"subAnyOf1": {
|
||||
"description": "This is subAnyOf1",
|
||||
"label": "Project3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"anyOf2": {
|
||||
"description": "This is anyOf2",
|
||||
"label": "Project3",
|
||||
"order": [
|
||||
"*"
|
||||
],
|
||||
"properties": {
|
||||
"subAnyOf2": {
|
||||
"description": "This is subAnyOf2",
|
||||
"label": "Project3"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Array": {
|
||||
"description": "This is Array",
|
||||
"label": "Project3",
|
||||
"order": [
|
||||
"*"
|
||||
],
|
||||
"properties": {
|
||||
"subArray": {
|
||||
"description": "This is subArray",
|
||||
"label": "Project3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Object": {
|
||||
"description": "This is Object",
|
||||
"label": "Project3",
|
||||
"order": [
|
||||
"*"
|
||||
],
|
||||
"properties": {
|
||||
"subObject": {
|
||||
"description": "This is subObject",
|
||||
"label": "Project3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SimpleArray": {
|
||||
"description": "This is SimpleArray",
|
||||
"label": "Project3"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,362 @@
|
|||
{
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"type": "object",
|
||||
"title": "Component kinds",
|
||||
"description": "These are all of the kinds that can be created by the loader.",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/nuget3"
|
||||
}
|
||||
],
|
||||
"definitions": {
|
||||
"arrayExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Array or expression",
|
||||
"description": "Array or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "array",
|
||||
"title": "Array",
|
||||
"description": "Array constant."
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression"
|
||||
}
|
||||
]
|
||||
},
|
||||
"booleanExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Boolean or expression",
|
||||
"description": "Boolean constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean constant.",
|
||||
"default": false,
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=user.isVip"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"component": {
|
||||
"required": [
|
||||
"$kind"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"condition": {
|
||||
"$role": "expression",
|
||||
"title": "Boolean condition",
|
||||
"description": "Boolean constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/expression"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean value.",
|
||||
"default": true,
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"equalsExpression": {
|
||||
"$role": "expression",
|
||||
"type": "string",
|
||||
"title": "Expression",
|
||||
"description": "Expression starting with =.",
|
||||
"pattern": "^=.*\\S.*",
|
||||
"examples": [
|
||||
"=user.name"
|
||||
]
|
||||
},
|
||||
"expression": {
|
||||
"$role": "expression",
|
||||
"type": "string",
|
||||
"title": "Expression",
|
||||
"description": "Expression to evaluate.",
|
||||
"pattern": "^.*\\S.*",
|
||||
"examples": [
|
||||
"user.age > 13"
|
||||
]
|
||||
},
|
||||
"integerExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Integer or expression",
|
||||
"description": "Integer constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "integer",
|
||||
"title": "Integer",
|
||||
"description": "Integer constant.",
|
||||
"default": 0,
|
||||
"examples": [
|
||||
15
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=user.age"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"nuget3": {
|
||||
"$role": [],
|
||||
"title": "Nuget3 schema",
|
||||
"description": "Example schema for packages.",
|
||||
"$package": {
|
||||
"name": "nuget3",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"type": "object",
|
||||
"required": [
|
||||
"$kind"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"Object": {
|
||||
"type": "object",
|
||||
"title": " object",
|
||||
"description": "This is an object.",
|
||||
"properties": {
|
||||
"subObject": {
|
||||
"type": "string",
|
||||
"title": "SubObject",
|
||||
"description": "SubObject property of Object."
|
||||
}
|
||||
}
|
||||
},
|
||||
"SimpleArray": {
|
||||
"type": "array",
|
||||
"title": " Empty Array",
|
||||
"description": "This is simple items array.",
|
||||
"items": true
|
||||
},
|
||||
"Array": {
|
||||
"type": "array",
|
||||
"title": " Array",
|
||||
"description": "This is a complex item array.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"title": "Array item",
|
||||
"description": "This is an array item.",
|
||||
"properties": {
|
||||
"subArray": {
|
||||
"type": "integer",
|
||||
"title": "Integer item",
|
||||
"description": "Integer item"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"AnyOf": {
|
||||
"title": " AnyOf",
|
||||
"description": "This is an anyOf.",
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"title": "AnyOf1",
|
||||
"description": "This is anyOf1 object.",
|
||||
"properties": {
|
||||
"anyOf1": {
|
||||
"type": "object",
|
||||
"title": "AnyOf1 object",
|
||||
"description": "This is anyOf1.",
|
||||
"properties": {
|
||||
"subAnyOf1": {
|
||||
"type": "string",
|
||||
"title": "SubAnyOf1",
|
||||
"description": "SubAnyOf1 string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"title": "AnyOf2",
|
||||
"description": "This is anyOf2 object.",
|
||||
"properties": {
|
||||
"anyOf2": {
|
||||
"type": "object",
|
||||
"title": "AnyOf2 object",
|
||||
"description": "This is anyOf2.",
|
||||
"properties": {
|
||||
"subAnyOf2": {
|
||||
"type": "string",
|
||||
"title": "SubAnyOf2",
|
||||
"description": "SubAnyOf2 string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$",
|
||||
"const": "nuget3"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"numberExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Number or expression",
|
||||
"description": "Number constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "number",
|
||||
"title": "Number",
|
||||
"description": "Number constant.",
|
||||
"default": 0,
|
||||
"examples": [
|
||||
15.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=dialog.quantity"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"objectExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Object or expression",
|
||||
"description": "Object or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"title": "Object",
|
||||
"description": "Object constant."
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression"
|
||||
}
|
||||
]
|
||||
},
|
||||
"role": {
|
||||
"title": "$role",
|
||||
"description": "Defines the role played in the dialog schema from [expression|interface|implements($kind)|extends($kind)].",
|
||||
"type": "string",
|
||||
"pattern": "^((expression)|(interface)|(implements\\([a-zA-Z][a-zA-Z0-9.]*\\))|(extends\\([a-zA-Z][a-zA-Z0-9.]*\\)))$"
|
||||
},
|
||||
"stringExpression": {
|
||||
"$role": "expression",
|
||||
"title": "String or expression",
|
||||
"description": "Interpolated string or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"title": "String",
|
||||
"description": "Interpolated string",
|
||||
"pattern": "^(?!(=)).*",
|
||||
"examples": [
|
||||
"Hello ${user.name}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=concat('x','y','z')"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"valueExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Any or expression",
|
||||
"description": "Any constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"title": "Object",
|
||||
"description": "Object constant."
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"title": "Array",
|
||||
"description": "Array constant."
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"title": "String",
|
||||
"description": "Interpolated string.",
|
||||
"pattern": "^(?!(=)).*",
|
||||
"examples": [
|
||||
"Hello ${user.name}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean constant",
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"title": "Number",
|
||||
"description": "Number constant.",
|
||||
"examples": [
|
||||
15.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=..."
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
{
|
||||
"nuget3": {
|
||||
"$schema": "https://schemas.botframework.com/schemas/ui/v1.0/ui.schema",
|
||||
"form": {
|
||||
"description": "Nuget3",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"Object"
|
||||
],
|
||||
"properties": {
|
||||
"AnyOf": {
|
||||
"description": "This is AnyOf",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"anyOf1"
|
||||
],
|
||||
"properties": {
|
||||
"anyOf1": {
|
||||
"description": "This is anyOf1",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"subAnyOf1"
|
||||
],
|
||||
"properties": {
|
||||
"subAnyOf1": {
|
||||
"description": "This is subAnyOf1",
|
||||
"label": "Nuget3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"anyOf2": {
|
||||
"description": "This is anyOf2",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"subAnyOf2"
|
||||
],
|
||||
"properties": {
|
||||
"subAnyOf2": {
|
||||
"description": "This is subAnyOf2",
|
||||
"label": "Nuget3"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Array": {
|
||||
"description": "This is Array",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"subArray"
|
||||
],
|
||||
"properties": {
|
||||
"subArray": {
|
||||
"description": "This is subArray",
|
||||
"label": "Nuget3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Object": {
|
||||
"description": "This is Object",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"subObject"
|
||||
],
|
||||
"properties": {
|
||||
"subObject": {
|
||||
"description": "This is subObject",
|
||||
"label": "Nuget3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SimpleArray": {
|
||||
"description": "This is SimpleArray",
|
||||
"label": "Nuget3"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
{
|
||||
"nuget3": {
|
||||
"$schema": "https://schemas.botframework.com/schemas/ui/v1.0/ui.schema",
|
||||
"form": {
|
||||
"description": "Nuget3 en-us",
|
||||
"label": "Nuget3 en-us",
|
||||
"order": [
|
||||
"Object"
|
||||
],
|
||||
"properties": {
|
||||
"AnyOf": {
|
||||
"description": "This is AnyOf",
|
||||
"label": "Nuget3 en-us",
|
||||
"order": [
|
||||
"anyOf1"
|
||||
],
|
||||
"properties": {
|
||||
"anyOf1": {
|
||||
"description": "This is anyOf1",
|
||||
"label": "Nuget3 en-us",
|
||||
"order": [
|
||||
"subAnyOf1"
|
||||
],
|
||||
"properties": {
|
||||
"subAnyOf1": {
|
||||
"description": "This is subAnyOf1",
|
||||
"label": "Nuget3 en-us"
|
||||
}
|
||||
}
|
||||
},
|
||||
"anyOf2": {
|
||||
"description": "This is anyOf2",
|
||||
"label": "Nuget3 en-us",
|
||||
"order": [
|
||||
"subAnyOf2"
|
||||
],
|
||||
"properties": {
|
||||
"subAnyOf2": {
|
||||
"description": "This is subAnyOf2",
|
||||
"label": "Nuget3 en-us"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Array": {
|
||||
"description": "This is Array",
|
||||
"label": "Nuget3 en-us",
|
||||
"order": [
|
||||
"subArray"
|
||||
],
|
||||
"properties": {
|
||||
"subArray": {
|
||||
"description": "This is subArray",
|
||||
"label": "Nuget3 en-us"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Object": {
|
||||
"description": "This is Object",
|
||||
"label": "Nuget3 en-us",
|
||||
"order": [
|
||||
"subObject"
|
||||
],
|
||||
"properties": {
|
||||
"subObject": {
|
||||
"description": "This is subObject",
|
||||
"label": "Nuget3 en-us"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SimpleArray": {
|
||||
"description": "This is SimpleArray",
|
||||
"label": "Nuget3 en-us"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,362 @@
|
|||
{
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"type": "object",
|
||||
"title": "Component kinds",
|
||||
"description": "These are all of the kinds that can be created by the loader.",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/nuget3"
|
||||
}
|
||||
],
|
||||
"definitions": {
|
||||
"arrayExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Array or expression",
|
||||
"description": "Array or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "array",
|
||||
"title": "Array",
|
||||
"description": "Array constant."
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression"
|
||||
}
|
||||
]
|
||||
},
|
||||
"booleanExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Boolean or expression",
|
||||
"description": "Boolean constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean constant.",
|
||||
"default": false,
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=user.isVip"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"component": {
|
||||
"required": [
|
||||
"$kind"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"condition": {
|
||||
"$role": "expression",
|
||||
"title": "Boolean condition",
|
||||
"description": "Boolean constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/expression"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean value.",
|
||||
"default": true,
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"equalsExpression": {
|
||||
"$role": "expression",
|
||||
"type": "string",
|
||||
"title": "Expression",
|
||||
"description": "Expression starting with =.",
|
||||
"pattern": "^=.*\\S.*",
|
||||
"examples": [
|
||||
"=user.name"
|
||||
]
|
||||
},
|
||||
"expression": {
|
||||
"$role": "expression",
|
||||
"type": "string",
|
||||
"title": "Expression",
|
||||
"description": "Expression to evaluate.",
|
||||
"pattern": "^.*\\S.*",
|
||||
"examples": [
|
||||
"user.age > 13"
|
||||
]
|
||||
},
|
||||
"integerExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Integer or expression",
|
||||
"description": "Integer constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "integer",
|
||||
"title": "Integer",
|
||||
"description": "Integer constant.",
|
||||
"default": 0,
|
||||
"examples": [
|
||||
15
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=user.age"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"nuget3": {
|
||||
"$role": [],
|
||||
"title": "Nuget3 schema",
|
||||
"description": "Example schema for packages.",
|
||||
"$package": {
|
||||
"name": "nuget3",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"type": "object",
|
||||
"required": [
|
||||
"$kind"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"Object": {
|
||||
"type": "object",
|
||||
"title": " object",
|
||||
"description": "This is an object.",
|
||||
"properties": {
|
||||
"subObject": {
|
||||
"type": "string",
|
||||
"title": "SubObject",
|
||||
"description": "SubObject property of Object."
|
||||
}
|
||||
}
|
||||
},
|
||||
"SimpleArray": {
|
||||
"type": "array",
|
||||
"title": " Empty Array",
|
||||
"description": "This is simple items array.",
|
||||
"items": true
|
||||
},
|
||||
"Array": {
|
||||
"type": "array",
|
||||
"title": " Array",
|
||||
"description": "This is a complex item array.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"title": "Array item",
|
||||
"description": "This is an array item.",
|
||||
"properties": {
|
||||
"subArray": {
|
||||
"type": "integer",
|
||||
"title": "Integer item",
|
||||
"description": "Integer item"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"AnyOf": {
|
||||
"title": " AnyOf",
|
||||
"description": "This is an anyOf.",
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"title": "AnyOf1",
|
||||
"description": "This is anyOf1 object.",
|
||||
"properties": {
|
||||
"anyOf1": {
|
||||
"type": "object",
|
||||
"title": "AnyOf1 object",
|
||||
"description": "This is anyOf1.",
|
||||
"properties": {
|
||||
"subAnyOf1": {
|
||||
"type": "string",
|
||||
"title": "SubAnyOf1",
|
||||
"description": "SubAnyOf1 string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"title": "AnyOf2",
|
||||
"description": "This is anyOf2 object.",
|
||||
"properties": {
|
||||
"anyOf2": {
|
||||
"type": "object",
|
||||
"title": "AnyOf2 object",
|
||||
"description": "This is anyOf2.",
|
||||
"properties": {
|
||||
"subAnyOf2": {
|
||||
"type": "string",
|
||||
"title": "SubAnyOf2",
|
||||
"description": "SubAnyOf2 string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$",
|
||||
"const": "nuget3"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"numberExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Number or expression",
|
||||
"description": "Number constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "number",
|
||||
"title": "Number",
|
||||
"description": "Number constant.",
|
||||
"default": 0,
|
||||
"examples": [
|
||||
15.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=dialog.quantity"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"objectExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Object or expression",
|
||||
"description": "Object or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"title": "Object",
|
||||
"description": "Object constant."
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression"
|
||||
}
|
||||
]
|
||||
},
|
||||
"role": {
|
||||
"title": "$role",
|
||||
"description": "Defines the role played in the dialog schema from [expression|interface|implements($kind)|extends($kind)].",
|
||||
"type": "string",
|
||||
"pattern": "^((expression)|(interface)|(implements\\([a-zA-Z][a-zA-Z0-9.]*\\))|(extends\\([a-zA-Z][a-zA-Z0-9.]*\\)))$"
|
||||
},
|
||||
"stringExpression": {
|
||||
"$role": "expression",
|
||||
"title": "String or expression",
|
||||
"description": "Interpolated string or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"title": "String",
|
||||
"description": "Interpolated string",
|
||||
"pattern": "^(?!(=)).*",
|
||||
"examples": [
|
||||
"Hello ${user.name}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=concat('x','y','z')"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"valueExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Any or expression",
|
||||
"description": "Any constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"title": "Object",
|
||||
"description": "Object constant."
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"title": "Array",
|
||||
"description": "Array constant."
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"title": "String",
|
||||
"description": "Interpolated string.",
|
||||
"pattern": "^(?!(=)).*",
|
||||
"examples": [
|
||||
"Hello ${user.name}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean constant",
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"title": "Number",
|
||||
"description": "Number constant.",
|
||||
"examples": [
|
||||
15.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=..."
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
{
|
||||
"nuget3": {
|
||||
"$schema": "https://schemas.botframework.com/schemas/ui/v1.0/ui.schema",
|
||||
"form": {
|
||||
"description": "Nuget3",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"Object"
|
||||
],
|
||||
"properties": {
|
||||
"AnyOf": {
|
||||
"description": "This is AnyOf",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"anyOf1"
|
||||
],
|
||||
"properties": {
|
||||
"anyOf1": {
|
||||
"description": "This is anyOf1",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"subAnyOf1"
|
||||
],
|
||||
"properties": {
|
||||
"subAnyOf1": {
|
||||
"description": "This is subAnyOf1",
|
||||
"label": "Nuget3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"anyOf2": {
|
||||
"description": "This is anyOf2",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"subAnyOf2"
|
||||
],
|
||||
"properties": {
|
||||
"subAnyOf2": {
|
||||
"description": "This is subAnyOf2",
|
||||
"label": "Nuget3"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Array": {
|
||||
"description": "This is Array",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"subArray"
|
||||
],
|
||||
"properties": {
|
||||
"subArray": {
|
||||
"description": "This is subArray",
|
||||
"label": "Nuget3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Object": {
|
||||
"description": "This is Object",
|
||||
"label": "Nuget3",
|
||||
"order": [
|
||||
"subObject"
|
||||
],
|
||||
"properties": {
|
||||
"subObject": {
|
||||
"description": "This is subObject",
|
||||
"label": "Nuget3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SimpleArray": {
|
||||
"description": "This is SimpleArray",
|
||||
"label": "Nuget3"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,478 @@
|
|||
{
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"type": "object",
|
||||
"title": "Component kinds",
|
||||
"description": "These are all of the kinds that can be created by the loader.",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/dependent-package"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/parent-package"
|
||||
}
|
||||
],
|
||||
"definitions": {
|
||||
"arrayExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Array or expression",
|
||||
"description": "Array or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "array",
|
||||
"title": "Array",
|
||||
"description": "Array constant."
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression"
|
||||
}
|
||||
]
|
||||
},
|
||||
"booleanExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Boolean or expression",
|
||||
"description": "Boolean constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean constant.",
|
||||
"default": false,
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=user.isVip"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"component": {
|
||||
"required": [
|
||||
"$kind"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"condition": {
|
||||
"$role": "expression",
|
||||
"title": "Boolean condition",
|
||||
"description": "Boolean constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/expression"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean value.",
|
||||
"default": true,
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"dependent-package": {
|
||||
"$role": [],
|
||||
"title": "dependent-package Schema",
|
||||
"description": "Example schema for packages.",
|
||||
"$package": {
|
||||
"name": "dependent-package",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"type": "object",
|
||||
"required": [
|
||||
"$kind"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"Object": {
|
||||
"type": "object",
|
||||
"title": " object",
|
||||
"description": "This is an object.",
|
||||
"properties": {
|
||||
"subObject": {
|
||||
"type": "string",
|
||||
"title": "SubObject",
|
||||
"description": "SubObject property of Object."
|
||||
}
|
||||
}
|
||||
},
|
||||
"SimpleArray": {
|
||||
"type": "array",
|
||||
"title": " Empty Array",
|
||||
"description": "This is simple items array.",
|
||||
"items": true
|
||||
},
|
||||
"Array": {
|
||||
"type": "array",
|
||||
"title": " Array",
|
||||
"description": "This is a complex item array.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"title": "Array item",
|
||||
"description": "This is an array item.",
|
||||
"properties": {
|
||||
"subArray": {
|
||||
"type": "integer",
|
||||
"title": "Integer item",
|
||||
"description": "Integer item"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"AnyOf": {
|
||||
"title": " AnyOf",
|
||||
"description": "This is an anyOf.",
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"title": "AnyOf1",
|
||||
"description": "This is anyOf1 object.",
|
||||
"properties": {
|
||||
"anyOf1": {
|
||||
"type": "object",
|
||||
"title": "AnyOf1 object",
|
||||
"description": "This is anyOf1.",
|
||||
"properties": {
|
||||
"subAnyOf1": {
|
||||
"type": "string",
|
||||
"title": "SubAnyOf1",
|
||||
"description": "SubAnyOf1 string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"title": "AnyOf2",
|
||||
"description": "This is anyOf2 object.",
|
||||
"properties": {
|
||||
"anyOf2": {
|
||||
"type": "object",
|
||||
"title": "AnyOf2 object",
|
||||
"description": "This is anyOf2.",
|
||||
"properties": {
|
||||
"subAnyOf2": {
|
||||
"type": "string",
|
||||
"title": "SubAnyOf2",
|
||||
"description": "SubAnyOf2 string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$",
|
||||
"const": "dependent-package"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"equalsExpression": {
|
||||
"$role": "expression",
|
||||
"type": "string",
|
||||
"title": "Expression",
|
||||
"description": "Expression starting with =.",
|
||||
"pattern": "^=.*\\S.*",
|
||||
"examples": [
|
||||
"=user.name"
|
||||
]
|
||||
},
|
||||
"expression": {
|
||||
"$role": "expression",
|
||||
"type": "string",
|
||||
"title": "Expression",
|
||||
"description": "Expression to evaluate.",
|
||||
"pattern": "^.*\\S.*",
|
||||
"examples": [
|
||||
"user.age > 13"
|
||||
]
|
||||
},
|
||||
"integerExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Integer or expression",
|
||||
"description": "Integer constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "integer",
|
||||
"title": "Integer",
|
||||
"description": "Integer constant.",
|
||||
"default": 0,
|
||||
"examples": [
|
||||
15
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=user.age"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"numberExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Number or expression",
|
||||
"description": "Number constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "number",
|
||||
"title": "Number",
|
||||
"description": "Number constant.",
|
||||
"default": 0,
|
||||
"examples": [
|
||||
15.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=dialog.quantity"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"objectExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Object or expression",
|
||||
"description": "Object or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"title": "Object",
|
||||
"description": "Object constant."
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression"
|
||||
}
|
||||
]
|
||||
},
|
||||
"parent-package": {
|
||||
"$role": [],
|
||||
"title": "parent-package Schema",
|
||||
"description": "Example schema for packages.",
|
||||
"$package": {
|
||||
"name": "parent-package",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"type": "object",
|
||||
"required": [
|
||||
"$kind"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"Object": {
|
||||
"type": "object",
|
||||
"title": " object",
|
||||
"description": "This is an object.",
|
||||
"properties": {
|
||||
"subObject": {
|
||||
"type": "string",
|
||||
"title": "SubObject",
|
||||
"description": "SubObject property of Object."
|
||||
}
|
||||
}
|
||||
},
|
||||
"SimpleArray": {
|
||||
"type": "array",
|
||||
"title": " Empty Array",
|
||||
"description": "This is simple items array.",
|
||||
"items": true
|
||||
},
|
||||
"Array": {
|
||||
"type": "array",
|
||||
"title": " Array",
|
||||
"description": "This is a complex item array.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"title": "Array item",
|
||||
"description": "This is an array item.",
|
||||
"properties": {
|
||||
"subArray": {
|
||||
"type": "integer",
|
||||
"title": "Integer item",
|
||||
"description": "Integer item"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"AnyOf": {
|
||||
"title": " AnyOf",
|
||||
"description": "This is an anyOf.",
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"title": "AnyOf1",
|
||||
"description": "This is anyOf1 object.",
|
||||
"properties": {
|
||||
"anyOf1": {
|
||||
"type": "object",
|
||||
"title": "AnyOf1 object",
|
||||
"description": "This is anyOf1.",
|
||||
"properties": {
|
||||
"subAnyOf1": {
|
||||
"type": "string",
|
||||
"title": "SubAnyOf1",
|
||||
"description": "SubAnyOf1 string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"title": "AnyOf2",
|
||||
"description": "This is anyOf2 object.",
|
||||
"properties": {
|
||||
"anyOf2": {
|
||||
"type": "object",
|
||||
"title": "AnyOf2 object",
|
||||
"description": "This is anyOf2.",
|
||||
"properties": {
|
||||
"subAnyOf2": {
|
||||
"type": "string",
|
||||
"title": "SubAnyOf2",
|
||||
"description": "SubAnyOf2 string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$",
|
||||
"const": "parent-package"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"role": {
|
||||
"title": "$role",
|
||||
"description": "Defines the role played in the dialog schema from [expression|interface|implements($kind)|extends($kind)].",
|
||||
"type": "string",
|
||||
"pattern": "^((expression)|(interface)|(implements\\([a-zA-Z][a-zA-Z0-9.]*\\))|(extends\\([a-zA-Z][a-zA-Z0-9.]*\\)))$"
|
||||
},
|
||||
"stringExpression": {
|
||||
"$role": "expression",
|
||||
"title": "String or expression",
|
||||
"description": "Interpolated string or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"title": "String",
|
||||
"description": "Interpolated string",
|
||||
"pattern": "^(?!(=)).*",
|
||||
"examples": [
|
||||
"Hello ${user.name}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=concat('x','y','z')"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"valueExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Any or expression",
|
||||
"description": "Any constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"title": "Object",
|
||||
"description": "Object constant."
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"title": "Array",
|
||||
"description": "Array constant."
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"title": "String",
|
||||
"description": "Interpolated string.",
|
||||
"pattern": "^(?!(=)).*",
|
||||
"examples": [
|
||||
"Hello ${user.name}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean constant",
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"title": "Number",
|
||||
"description": "Number constant.",
|
||||
"examples": [
|
||||
15.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=..."
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"dependent-package": {
|
||||
"$schema": "https://schemas.botframework.com/schemas/ui/v1.0/ui.schema",
|
||||
"form": {
|
||||
"description": "root-package"
|
||||
}
|
||||
},
|
||||
"parent-package": {
|
||||
"$schema": "https://schemas.botframework.com/schemas/ui/v1.0/ui.schema",
|
||||
"form": {
|
||||
"description": "parent-package",
|
||||
"subtitle": "From parent-package"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="nuget1" version="10.0.0" targetFramework="net461" />
|
||||
</packages>
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"title": "project1 nuget1-10 Schema",
|
||||
"$ref": "../../schemas/packageBase.json"
|
||||
}
|
25
packages/dialog/test/commands/dialog/projects/project1/obj/Debug/netcoreapp2.1/project1.AssemblyInfo.cs
поставляемый
Normal file
25
packages/dialog/test/commands/dialog/projects/project1/obj/Debug/netcoreapp2.1/project1.AssemblyInfo.cs
поставляемый
Normal file
|
@ -0,0 +1,25 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Microsoft")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyCopyrightAttribute("© Microsoft Corporation. All rights reserved.")]
|
||||
[assembly: System.Reflection.AssemblyDescriptionAttribute(@"LUISGen is a tool for generating a strongly typed C# class or typescript interface to make consuming LUIS output easier in the Microsoft Bot Builder SDK. This enables build-time error checking and intellisense against the intents and entities of your LUIS application model.")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.0.1.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("2.0.1-local")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("Microsoft Bot Framework")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("project1")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("2.0.1.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
|
@ -0,0 +1 @@
|
|||
2cf015fff2a95d5ae09a72891bef91ecc659ee75
|
25
packages/dialog/test/commands/dialog/projects/project2/obj/Debug/netcoreapp2.1/project2.AssemblyInfo.cs
поставляемый
Normal file
25
packages/dialog/test/commands/dialog/projects/project2/obj/Debug/netcoreapp2.1/project2.AssemblyInfo.cs
поставляемый
Normal file
|
@ -0,0 +1,25 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Microsoft")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyCopyrightAttribute("© Microsoft Corporation. All rights reserved.")]
|
||||
[assembly: System.Reflection.AssemblyDescriptionAttribute(@"LUISGen is a tool for generating a strongly typed C# class or typescript interface to make consuming LUIS output easier in the Microsoft Bot Builder SDK. This enables build-time error checking and intellisense against the intents and entities of your LUIS application model.")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.0.1.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("2.0.1-local")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("Microsoft Bot Framework")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("project2")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("2.0.1.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
|
@ -0,0 +1 @@
|
|||
08c3aad43b5f570d5237f1018fdc9819ce52239e
|
|
@ -1,6 +1,56 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"$role": [],
|
||||
"title": "Some node",
|
||||
"description": "Definition."
|
||||
"description": "Definition.",
|
||||
"properties": {
|
||||
"project2Object": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"subproject2Object": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"project2EmptyArray": {
|
||||
"type": "array",
|
||||
"items": true
|
||||
},
|
||||
"project2Array": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"subproject2Array": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"project2AnyOf": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"anyOf1": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"subproject2AnyOf1": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"anyOf2": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"subproject2AnyOf2": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,66 @@
|
|||
{
|
||||
"$schema": "https://schemas.botframework.com/schemas/ui/v1.0/ui.schema",
|
||||
"form": {
|
||||
"label": "Project3",
|
||||
"order": [
|
||||
"*"
|
||||
],
|
||||
"properties": {
|
||||
"Object": {
|
||||
"label": "Project3",
|
||||
"order": [
|
||||
"*"
|
||||
],
|
||||
"properties": {
|
||||
"subObject": {
|
||||
"label": "Project3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SimpleArray": {
|
||||
"label": "Project3"
|
||||
},
|
||||
"Array": {
|
||||
"label": "Project3",
|
||||
"order": [
|
||||
"*"
|
||||
],
|
||||
"properties": {
|
||||
"subArray": {
|
||||
"label": "Project3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"AnyOf": {
|
||||
"label": "Project3",
|
||||
"order": [
|
||||
"*"
|
||||
],
|
||||
"properties": {
|
||||
"anyOf1": {
|
||||
"label": "Project3",
|
||||
"order":[
|
||||
"*"
|
||||
],
|
||||
"properties": {
|
||||
"subAnyOf1": {
|
||||
"label": "Project3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"anyOf2": {
|
||||
"label": "Project3",
|
||||
"order": [
|
||||
"*"
|
||||
],
|
||||
"properties": {
|
||||
"subAnyOf2": {
|
||||
"label": "Project3"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
25
packages/dialog/test/commands/dialog/projects/project3/obj/Debug/netcoreapp2.1/project3.AssemblyInfo.cs
поставляемый
Normal file
25
packages/dialog/test/commands/dialog/projects/project3/obj/Debug/netcoreapp2.1/project3.AssemblyInfo.cs
поставляемый
Normal file
|
@ -0,0 +1,25 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Microsoft")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyCopyrightAttribute("© Microsoft Corporation. All rights reserved.")]
|
||||
[assembly: System.Reflection.AssemblyDescriptionAttribute(@"LUISGen is a tool for generating a strongly typed C# class or typescript interface to make consuming LUIS output easier in the Microsoft Bot Builder SDK. This enables build-time error checking and intellisense against the intents and entities of your LUIS application model.")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("2.0.1.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("2.0.1-local")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("Microsoft Bot Framework")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("project3")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("2.0.1.0")]
|
||||
|
||||
// Generated by the MSBuild WriteCodeFragment class.
|
||||
|
|
@ -0,0 +1 @@
|
|||
00eefe08fe012b8c4431923cf49a80c395458d86
|
|
@ -0,0 +1,44 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<Version Condition=" '$(PackageVersion)' == '' ">2.0.1-local</Version>
|
||||
<Version Condition=" '$(PackageVersion)' != '' ">$(PackageVersion)</Version>
|
||||
<PackageVersion Condition=" '$(PackageVersion)' == '' ">2.0.1-local</PackageVersion>
|
||||
<PackageVersion Condition=" '$(PackageVersion)' != '' ">$(PackageVersion)</PackageVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<VersionPrefix>2.0.1</VersionPrefix>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||
<Authors>microsoft,BotFramework,nugetbotbuilder</Authors>
|
||||
<Company>Microsoft</Company>
|
||||
<Description>LUISGen is a tool for generating a strongly typed C# class or typescript interface to make consuming LUIS output easier in the Microsoft Bot Builder SDK. This enables build-time error checking and intellisense against the intents and entities of your LUIS application model.</Description>
|
||||
<Product>Microsoft Bot Framework</Product>
|
||||
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
|
||||
<PackageProjectUrl>https://github.com/Microsoft/botbuilder-tools/tree/master/packages/LUISGen</PackageProjectUrl>
|
||||
<PackageIconUrl>http://docs.botframework.com/images/bot_icon.png</PackageIconUrl>
|
||||
<PackageLicenseUrl>https://github.com/Microsoft/BotBuilder/blob/master/LICENSE</PackageLicenseUrl>
|
||||
<RepositoryUrl>https://github.com/Microsoft/botbuilder-tools</RepositoryUrl>
|
||||
<LicenseUrl>https://github.com/Microsoft/BotBuilder-tools/blob/master/LICENSE</LicenseUrl>
|
||||
<RepositoryType />
|
||||
<PackageTags>bots;ai;botframework;botbuilder;luis</PackageTags>
|
||||
<NeutralLanguage />
|
||||
|
||||
<PackAsTool>true</PackAsTool>
|
||||
<ToolCommandName>luisgen</ToolCommandName>
|
||||
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
|
||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<SignAssembly>true</SignAssembly>
|
||||
<DelaySign>true</DelaySign>
|
||||
<AssemblyOriginatorKeyFile>..\..\..\build\35MSSharedLib1024.snk</AssemblyOriginatorKeyFile>
|
||||
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="nuget3" Version="1.0.0" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"$schema": "https://schemas.botframework.com/schemas/ui/v1.0/ui.schema",
|
||||
"form": {
|
||||
"description": "Does not exist",
|
||||
"properties": {
|
||||
"prop": {}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
"$schema": "https://schemas.botframework.com/schemas/ui/v1.0/ui.schema",
|
||||
"form": {
|
||||
"label": "Project4",
|
||||
"order": [
|
||||
"nonExistentOrder"
|
||||
],
|
||||
"properties": {
|
||||
"nonExistentProperty": {},
|
||||
"Object": {
|
||||
"label": "Project4",
|
||||
"order": [
|
||||
"nonExistentOrder"
|
||||
],
|
||||
"properties": {
|
||||
"subObject": {
|
||||
"label": "Project4"
|
||||
},
|
||||
"NonExistentProperty": {
|
||||
"properties": {
|
||||
"MoreNonExistent": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"SimpleArray": {
|
||||
"label": "Project4"
|
||||
},
|
||||
"Array": {
|
||||
"label": "Project4",
|
||||
"properties": {
|
||||
"subArray": {
|
||||
"label": "Project4"
|
||||
},
|
||||
"nonExistentProperty": {}
|
||||
}
|
||||
},
|
||||
"AnyOf": {
|
||||
"label": "Project4",
|
||||
"properties": {
|
||||
"anyOf1": {
|
||||
"label": "Project4",
|
||||
"properties": {
|
||||
"subAnyOf1": {
|
||||
"label": "Project4"
|
||||
},
|
||||
"nonExistentProperty": {}
|
||||
}
|
||||
},
|
||||
"anyOf2": {
|
||||
"label": "Project4",
|
||||
"properties": {
|
||||
"subAnyOf2": {
|
||||
"label": "Project4"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<Version Condition=" '$(PackageVersion)' == '' ">2.0.1-local</Version>
|
||||
<Version Condition=" '$(PackageVersion)' != '' ">$(PackageVersion)</Version>
|
||||
<PackageVersion Condition=" '$(PackageVersion)' == '' ">2.0.1-local</PackageVersion>
|
||||
<PackageVersion Condition=" '$(PackageVersion)' != '' ">$(PackageVersion)</PackageVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<VersionPrefix>2.0.1</VersionPrefix>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||
<Authors>microsoft,BotFramework,nugetbotbuilder</Authors>
|
||||
<Company>Microsoft</Company>
|
||||
<Description>LUISGen is a tool for generating a strongly typed C# class or typescript interface to make consuming LUIS output easier in the Microsoft Bot Builder SDK. This enables build-time error checking and intellisense against the intents and entities of your LUIS application model.</Description>
|
||||
<Product>Microsoft Bot Framework</Product>
|
||||
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
|
||||
<PackageProjectUrl>https://github.com/Microsoft/botbuilder-tools/tree/master/packages/LUISGen</PackageProjectUrl>
|
||||
<PackageIconUrl>http://docs.botframework.com/images/bot_icon.png</PackageIconUrl>
|
||||
<PackageLicenseUrl>https://github.com/Microsoft/BotBuilder/blob/master/LICENSE</PackageLicenseUrl>
|
||||
<RepositoryUrl>https://github.com/Microsoft/botbuilder-tools</RepositoryUrl>
|
||||
<LicenseUrl>https://github.com/Microsoft/BotBuilder-tools/blob/master/LICENSE</LicenseUrl>
|
||||
<RepositoryType />
|
||||
<PackageTags>bots;ai;botframework;botbuilder;luis</PackageTags>
|
||||
<NeutralLanguage />
|
||||
|
||||
<PackAsTool>true</PackAsTool>
|
||||
<ToolCommandName>luisgen</ToolCommandName>
|
||||
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
|
||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<SignAssembly>true</SignAssembly>
|
||||
<DelaySign>true</DelaySign>
|
||||
<AssemblyOriginatorKeyFile>..\..\..\build\35MSSharedLib1024.snk</AssemblyOriginatorKeyFile>
|
||||
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="nuget3" Version="1.0.0" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="nuget3" version="1.0.0" targetFramework="net461" />
|
||||
</packages>
|
|
@ -0,0 +1,40 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<Version Condition=" '$(PackageVersion)' == '' ">2.0.1-local</Version>
|
||||
<Version Condition=" '$(PackageVersion)' != '' ">$(PackageVersion)</Version>
|
||||
<PackageVersion Condition=" '$(PackageVersion)' == '' ">2.0.1-local</PackageVersion>
|
||||
<PackageVersion Condition=" '$(PackageVersion)' != '' ">$(PackageVersion)</PackageVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<VersionPrefix>2.0.1</VersionPrefix>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
||||
<Authors>microsoft,BotFramework,nugetbotbuilder</Authors>
|
||||
<Company>Microsoft</Company>
|
||||
<Description>LUISGen is a tool for generating a strongly typed C# class or typescript interface to make consuming LUIS output easier in the Microsoft Bot Builder SDK. This enables build-time error checking and intellisense against the intents and entities of your LUIS application model.</Description>
|
||||
<Product>Microsoft Bot Framework</Product>
|
||||
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
|
||||
<PackageProjectUrl>https://github.com/Microsoft/botbuilder-tools/tree/master/packages/LUISGen</PackageProjectUrl>
|
||||
<PackageIconUrl>http://docs.botframework.com/images/bot_icon.png</PackageIconUrl>
|
||||
<PackageLicenseUrl>https://github.com/Microsoft/BotBuilder/blob/master/LICENSE</PackageLicenseUrl>
|
||||
<RepositoryUrl>https://github.com/Microsoft/botbuilder-tools</RepositoryUrl>
|
||||
<LicenseUrl>https://github.com/Microsoft/BotBuilder-tools/blob/master/LICENSE</LicenseUrl>
|
||||
<RepositoryType />
|
||||
<PackageTags>bots;ai;botframework;botbuilder;luis</PackageTags>
|
||||
<NeutralLanguage />
|
||||
|
||||
<PackAsTool>true</PackAsTool>
|
||||
<ToolCommandName>luisgen</ToolCommandName>
|
||||
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
|
||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<SignAssembly>true</SignAssembly>
|
||||
<DelaySign>true</DelaySign>
|
||||
<AssemblyOriginatorKeyFile>..\..\..\build\35MSSharedLib1024.snk</AssemblyOriginatorKeyFile>
|
||||
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"title": "Microsoft Nothing",
|
||||
"description": "Definition of a union type with no implementations.",
|
||||
"$role":"interface"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"$role": "interface",
|
||||
"$comment": "Has multiple implementations",
|
||||
"title": "Recognizer",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"$role": "implements(IRecognizer)",
|
||||
"properties": {
|
||||
"req": {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"$role": "implements(IRecognizer)"
|
||||
}
|
|
@ -1,492 +0,0 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"type": "object",
|
||||
"title": "Component kinds",
|
||||
"description": "These are all of the kinds that can be created by the loader.",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/Recognizer"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/RecognizerTypeMismatch"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/prompt"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/root"
|
||||
}
|
||||
],
|
||||
"definitions": {
|
||||
"INothing": {
|
||||
"title": "Microsoft Nothing",
|
||||
"description": "Definition of a union type with no implementations.",
|
||||
"$role": "interface"
|
||||
},
|
||||
"IRecognizer": {
|
||||
"$role": "interface",
|
||||
"$comment": "Has multiple implementations",
|
||||
"title": "Recognizer",
|
||||
"description": "Recognizer interface.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"title": "Reference to IRecognizer",
|
||||
"description": "Reference to IRecognizer .dialog file."
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/Recognizer"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/RecognizerTypeMismatch"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Recognizer": {
|
||||
"$role": "implements(IRecognizer)",
|
||||
"required": [
|
||||
"req",
|
||||
"$kind"
|
||||
],
|
||||
"definitions": {
|
||||
"insideDef": {
|
||||
"$role": "expression",
|
||||
"title": "Inside",
|
||||
"description": "Something inside."
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"req": {
|
||||
"$role": "expression",
|
||||
"title": "Required",
|
||||
"description": "Something required."
|
||||
},
|
||||
"opt": {
|
||||
"type": "string",
|
||||
"title": "Optional",
|
||||
"description": "Something optional."
|
||||
},
|
||||
"complex": {
|
||||
"title": "Complex",
|
||||
"description": "Complex object.",
|
||||
"properties": {
|
||||
"inside": {
|
||||
"$ref": "#/definitions/Recognizer/definitions/insideDef"
|
||||
}
|
||||
}
|
||||
},
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$",
|
||||
"const": "Recognizer"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"RecognizerTypeMismatch": {
|
||||
"$role": "implements(IRecognizer)",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"$kind"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$",
|
||||
"const": "RecognizerTypeMismatch"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"arrayExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Array or expression",
|
||||
"description": "Array or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "array",
|
||||
"title": "Array",
|
||||
"description": "Array constant."
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression"
|
||||
}
|
||||
]
|
||||
},
|
||||
"basePrompt": {
|
||||
"$comment": "This is a base schema that cannot be instantiated.",
|
||||
"type": "object",
|
||||
"required": [
|
||||
"$kind"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"prompt": {
|
||||
"type": "string",
|
||||
"title": "Base prompt",
|
||||
"description": "Base prompt."
|
||||
},
|
||||
"alternatePrompt": {
|
||||
"title": "Alternate",
|
||||
"description": "Alternate prompt of anything."
|
||||
},
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$",
|
||||
"const": "basePrompt"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"booleanExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Boolean or expression",
|
||||
"description": "Boolean constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean constant.",
|
||||
"default": false,
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=user.isVip"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"component": {
|
||||
"required": [
|
||||
"$kind"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"condition": {
|
||||
"$role": "expression",
|
||||
"title": "Boolean condition",
|
||||
"description": "Boolean constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/expression"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean value.",
|
||||
"default": true,
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"equalsExpression": {
|
||||
"type": "string",
|
||||
"title": "Expression",
|
||||
"description": "Expression starting with =.",
|
||||
"pattern": "^=.*\\S.*",
|
||||
"examples": [
|
||||
"=user.name"
|
||||
]
|
||||
},
|
||||
"expression": {
|
||||
"type": "string",
|
||||
"title": "Expression",
|
||||
"description": "Expression to evaluate.",
|
||||
"pattern": "^.*\\S.*",
|
||||
"examples": [
|
||||
"user.age > 13"
|
||||
]
|
||||
},
|
||||
"integerExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Integer or expression",
|
||||
"description": "Integer constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "integer",
|
||||
"title": "Integer",
|
||||
"description": "Integer constant.",
|
||||
"default": 0,
|
||||
"examples": [
|
||||
15
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=user.age"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"numberExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Number or expression",
|
||||
"description": "Number constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "number",
|
||||
"title": "Number",
|
||||
"description": "Number constant.",
|
||||
"default": 0,
|
||||
"examples": [
|
||||
15.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=dialog.quantity"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"objectExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Object or expression",
|
||||
"description": "Object or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"title": "Object",
|
||||
"description": "Object constant."
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression"
|
||||
}
|
||||
]
|
||||
},
|
||||
"prompt": {
|
||||
"$role": "extends(basePrompt)",
|
||||
"required": [
|
||||
"prompt",
|
||||
"$kind"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"prompt": {
|
||||
"type": "string",
|
||||
"title": "Base prompt",
|
||||
"description": "Base prompt."
|
||||
},
|
||||
"alternatePrompt": {
|
||||
"title": "Alternate",
|
||||
"description": "Alternate prompt of anything."
|
||||
},
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$",
|
||||
"const": "prompt"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"role": {
|
||||
"title": "$role",
|
||||
"description": "Defines the role played in the dialog schema from [expression|interface|implements($kind)|extends($kind)].",
|
||||
"type": "string",
|
||||
"pattern": "^((expression)|(interface)|(implements\\([a-zA-Z][a-zA-Z0-9.]*\\))|(extends\\([a-zA-Z][a-zA-Z0-9.]*\\)))$"
|
||||
},
|
||||
"root": {
|
||||
"$role": [],
|
||||
"required": [
|
||||
"recognizers",
|
||||
"$kind"
|
||||
],
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"recognizers": {
|
||||
"type": "array",
|
||||
"title": "Recognizers",
|
||||
"description": "Some recognizers.",
|
||||
"items": {
|
||||
"$kind": "IRecognizer",
|
||||
"$ref": "#/definitions/IRecognizer"
|
||||
}
|
||||
},
|
||||
"prompt": {
|
||||
"$kind": "prompt",
|
||||
"title": "A prompt",
|
||||
"description": "A prompt.",
|
||||
"$ref": "#/definitions/prompt"
|
||||
},
|
||||
"condition": {
|
||||
"title": "Condition",
|
||||
"description": "A condition to test",
|
||||
"$ref": "#/definitions/booleanExpression"
|
||||
},
|
||||
"property": {
|
||||
"type": "string",
|
||||
"title": "Something",
|
||||
"description": "About something."
|
||||
},
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$",
|
||||
"const": "root"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
}
|
||||
},
|
||||
"stringExpression": {
|
||||
"$role": "expression",
|
||||
"title": "String or expression",
|
||||
"description": "Interpolated string or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"title": "String",
|
||||
"description": "Interpolated string",
|
||||
"pattern": "^(?!(=)).*",
|
||||
"examples": [
|
||||
"Hello ${user.name}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=concat('x','y','z')"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"valueExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Any or expression",
|
||||
"description": "Any constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"title": "Object",
|
||||
"description": "Object constant."
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"title": "Array",
|
||||
"description": "Array constant."
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"title": "String",
|
||||
"description": "Interpolated string.",
|
||||
"pattern": "^(?!(=)).*",
|
||||
"examples": [
|
||||
"Hello ${user.name}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean constant",
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"title": "Number",
|
||||
"description": "Number constant.",
|
||||
"examples": [
|
||||
15.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=..."
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"allOf": [
|
||||
{"type": "string"},
|
||||
{"type": "number"}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"properties": {
|
||||
"foo":
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"$role": "expression",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"$role": "extends(missingSchema)"
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"$role": [],
|
||||
"properties": {
|
||||
"foo": {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"properties": {
|
||||
"foo": {
|
||||
"$ref": "schema:#/definitions/foo"
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema"
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema"
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"$comment": "This is a base schema that cannot be instantiated.",
|
||||
"properties": {
|
||||
"prompt": {
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
@echo off
|
||||
setlocal
|
||||
|
||||
call rush build
|
||||
set ds=..\..\..\..\bin\run
|
||||
call node %ds% dialog:merge *.schema -o app.schema
|
||||
|
|
@ -0,0 +1,87 @@
|
|||
{
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"$role": [],
|
||||
"title": "Example schema for packages",
|
||||
"description": "Example schema for packages.",
|
||||
"properties": {
|
||||
"Object": {
|
||||
"type": "object",
|
||||
"title": " object",
|
||||
"description": "This is an object.",
|
||||
"properties": {
|
||||
"subObject": {
|
||||
"type": "string",
|
||||
"title": "SubObject",
|
||||
"description": "SubObject property of Object."
|
||||
}
|
||||
}
|
||||
},
|
||||
"SimpleArray": {
|
||||
"type": "array",
|
||||
"title": " Empty Array",
|
||||
"description": "This is simple items array.",
|
||||
"items": true
|
||||
},
|
||||
"Array": {
|
||||
"type": "array",
|
||||
"title": " Array",
|
||||
"description": "This is a complex item array.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"title": "Array item",
|
||||
"description": "This is an array item.",
|
||||
"properties": {
|
||||
"subArray": {
|
||||
"type": "integer",
|
||||
"title": "Integer item",
|
||||
"description": "Integer item"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"AnyOf": {
|
||||
"title": " AnyOf",
|
||||
"description": "This is an anyOf.",
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"title": "AnyOf1",
|
||||
"description": "This is anyOf1 object.",
|
||||
"properties": {
|
||||
"anyOf1": {
|
||||
"type": "object",
|
||||
"title": "AnyOf1 object",
|
||||
"description": "This is anyOf1.",
|
||||
"properties": {
|
||||
"subAnyOf1": {
|
||||
"type": "string",
|
||||
"title": "SubAnyOf1",
|
||||
"description": "SubAnyOf1 string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"title": "AnyOf2",
|
||||
"description": "This is anyOf2 object.",
|
||||
"properties": {
|
||||
"anyOf2": {
|
||||
"type": "object",
|
||||
"title": "AnyOf2 object",
|
||||
"description": "This is anyOf2.",
|
||||
"properties": {
|
||||
"subAnyOf2": {
|
||||
"type": "string",
|
||||
"title": "SubAnyOf2",
|
||||
"description": "SubAnyOf2 string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"$role": "extends(basePrompt)",
|
||||
"required": [
|
||||
"prompt"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/microsoft/botframework-sdk/master/schemas/component/component.schema",
|
||||
"$schema": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"$role": [],
|
||||
"properties": {
|
||||
"recognizers": {
|
||||
|
|
Загрузка…
Ссылка в новой задаче