diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000000..9d11d0e9a8 --- /dev/null +++ b/.clang-format @@ -0,0 +1,30 @@ +--- +# this file work is a derivative of .clang-format which follows +# https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md +# +Language: Cpp +BasedOnStyle: Microsoft +AccessModifierOffset: -4 +AlignAfterOpenBracket: AlwaysBreak +AlignEscapedNewlines: DontAlign +AlwaysBreakBeforeMultilineStrings: true +AlwaysBreakTemplateDeclarations: Yes +BinPackArguments: false +BinPackParameters: false +BraceWrapping: + AfterCaseLabel: true + AfterUnion: true + AfterExternBlock: false +BreakConstructorInitializers: AfterColon +CompactNamespaces: true +IncludeBlocks: Regroup +IncludeCategories: + - Regex: '^"(stdafx.h|pch.h|precomp.h)"$' + Priority: -1 +NamespaceIndentation: Inner +PenaltyExcessCharacter: 1 +PointerAlignment: Left +SortIncludes: false +Standard: Cpp11 +UseTab: Never +... diff --git a/.editorconfig b/.editorconfig index 93f26da269..12cb1e43fd 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,6 +1,6 @@ root = true -[**.{cpp,h,java,mm,cs,ts,js}] +[**.{cpp,h,java,mm,cs}] indent_style = spaces indent_size = 4 charset = utf-8 diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index dd691565ff..ee5ece0e4d 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,4 +1,4 @@ -blank_issues_enabled: false +blank_issues_enabled: true contact_links: - name: Question about: Please ask questions on GitHub Discussions diff --git a/.gitignore b/.gitignore index 1a55e94ba9..11fc5dda13 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ ## files generated by popular Visual Studio add-ons. .gitconfig +scripts/hooks/pre-commit + # User-specific files *.suo *.user @@ -276,6 +278,8 @@ product.pbxproj **/.DS_Store .build/ xcuserdata/ +Pods/ +Podfile.lock #Generated header from MIDL **/UWP/Renderer/AdaptiveCards.Rendering.Uwp.h diff --git a/.pipelines/android-ci.yml b/.pipelines/android-ci.yml index d237f83a57..41adbd7089 100644 --- a/.pipelines/android-ci.yml +++ b/.pipelines/android-ci.yml @@ -17,7 +17,7 @@ trigger: pool: name: Azure Pipelines - vmImage: macOS-10.14 + vmImage: macOS-latest steps: - task: Gradle@2 diff --git a/.pipelines/clang-format-ci.yml b/.pipelines/clang-format-ci.yml new file mode 100644 index 0000000000..ce02de6555 --- /dev/null +++ b/.pipelines/clang-format-ci.yml @@ -0,0 +1,61 @@ +name: $(Year:yy).$(Month).$(DayOfMonth).$(rev:r) + +pr: + branches: + include: + - main + +pool: + vmImage: ubuntu-latest + +steps: +- task: NodeTool@0 + inputs: + versionSpec: '14.x' + displayName: 'Install Node.js' + +- script: | + npm i -g npm@latest + displayName: 'npm i -g npm@latest' + workingDirectory: source/nodejs + +- script: | + npm install + displayName: 'npm install' + workingDirectory: source/nodejs + +- script: | + npm run verify --verbose + displayName: 'npm run verify --verbose' + workingDirectory: source/nodejs + +- bash: | + echo "##[command]Three ways to fix the format problem" + echo '##[command]1. powershell -ExecutionPolicy Bypass scripts\FormatSource.ps1 -ModifiedOnly $False' + echo "##[command]2. or cd source\nodejs, then npm run format --verbse" + echo "##[command]3. or download format.patch from pippeline, then git apply format.patch" + displayName: 'How to fix the format problem' + condition: failed() + +- script: | + npm run format --verbose + displayName: 'npm run format --verbose' + workingDirectory: source/nodejs + condition: failed() + +- script: | + git diff > format.patch + displayName: 'create format.patch' + condition: failed() + +- task: CopyFiles@2 + inputs: + contents: 'format.patch' + targetFolder: $(Build.ArtifactStagingDirectory) + condition: failed() + +- task: PublishBuildArtifacts@1 + inputs: + pathToPublish: $(Build.ArtifactStagingDirectory) + artifactName: drop + condition: failed() \ No newline at end of file diff --git a/.pipelines/ios-ci.yml b/.pipelines/ios-ci.yml new file mode 100644 index 0000000000..14b631f767 --- /dev/null +++ b/.pipelines/ios-ci.yml @@ -0,0 +1,25 @@ +# Xcode +# Build, test, and archive an Xcode workspace on macOS. +# Add steps that install certificates, test, sign, and distribute an app, save build artifacts, and more: +# https://docs.microsoft.com/azure/devops/pipelines/languages/xcode + +name: $(Year:yy).$(Month).$(DayOfMonth).$(rev:r) + +pr: + branches: + include: + - main + - feature/* + - release/* + +schedules: + - cron: "0 0 * * 6" + displayName: testing + branches: + include: + - main +pool: + vmImage: 'macos-latest' + +steps: + - template: templates/ios-ci-template.yml diff --git a/.pipelines/ios-heartbeat.yml b/.pipelines/ios-heartbeat.yml new file mode 100644 index 0000000000..f593913af2 --- /dev/null +++ b/.pipelines/ios-heartbeat.yml @@ -0,0 +1,65 @@ +name: $(Year:yy).$(Month).$(DayOfMonth).$(rev:r) + +pr: none +trigger: none + +schedules: + - cron: "1 7 1,15 * *" + displayName: Send Heartbeat + branches: + include: + - main +jobs: + - job: specLint + displayName: 'check podspec health' + pool: + vmImage: 'macos-latest' + steps: + - template: templates/ios-spec-lint-template.yml + + - job: unitTest + displayName: 'check code health' + pool: + vmImage: 'macos-latest' + steps: + - template: templates/ios-ci-template.yml + + - job: certificateCheck + displayName: 'check certificate health' + pool: + vmImage: 'macos-latest' + steps: + - template: templates/ios-install-cert-template.yml + + - job: + pool: + vmImage: 'windows-latest' + displayName: 'collect result' + dependsOn: + - specLint + - unitTest + - certificateCheck + condition: always() + variables: + j1: $[dependencies.specLint.result] + j2: $[dependencies.unitTest.result] + j3: $[dependencies.certificateCheck.result] + steps: + - task: PkgESSendMail@10 + inputs: + to: 'adaptivecardscore@microsoft.com' + subject: 'iOS Release Pipeline Health Check' + bodyType: 'string' + body: | + + + +

iOS Release Pipeline Health Check Report

+
    +
  1. spec linting check has $(j1)
  2. +
  3. code health check has $(j2)
  4. +
  5. certificate check has $(j3)
  6. +
+ + + isHtml: true diff --git a/.pipelines/js-ci.yml b/.pipelines/js-ci.yml new file mode 100644 index 0000000000..1307472fef --- /dev/null +++ b/.pipelines/js-ci.yml @@ -0,0 +1,99 @@ +name: $(date:yyMM).$(date:dd)$(rev:rrr) + +pr: + branches: + include: + - main + paths: + include: + - source/nodejs + +pool: + name: Azure Pipelines + vmImage: windows-2019 + demands: + - npm + +parameters: +- name: target_packages + displayName: "Which packages is going to be built." + type: object + default: + - adaptivecards + - adaptivecards-controls + - adaptivecards-designer + - adaptivecards-templating + - adaptivecards-react + +- name: test_apps + displayName: "Which project is going to be consume the built npm packages." + type: object + default: + - adaptivecards-ui-testapp + - adaptivecards-react-testapp + +- name: test_projects + displayName: "project in tests/." + type: object + default: + # - test-adaptive-card-schema # bug https://github.com/microsoft/AdaptiveCards/issues/6882 + # - ui-tests # bug https://github.com/microsoft/AdaptiveCards/issues/6885 + - unit-tests + +steps: +- task: NodeTool@0 + name: NodeTool1 + displayName: Use Node 14.x + inputs: + versionSpec: 14.x + +- bash: | + npm i -g npm@latest + npm ci + npx lerna bootstrap --ci + npx lerna run release + workingDirectory: source/nodejs + displayName: 'Bash - lerna bootstrap' + +- bash: | + npx lerna run test + workingDirectory: source/nodejs + displayName: 'Run all tests' + condition: failed() # This is disabled because of issue 6874 + +- ${{ each target_package in parameters.target_packages }}: + - task: Npm@1 + displayName: '[${{ target_package }}] npm pack' + inputs: + command: custom + customCommand: pack + workingDir: source/nodejs/${{ target_package }} + + - task: CopyFiles@2 + inputs: + sourceFolder: source/nodejs/${{ target_package }} + contents: '${{ target_package }}*.tgz' + targetFolder: ../ + displayName: 'Copy tgz to ../' + +- ${{ each test_project in parameters.test_projects }}: + - bash: | + npm i + npm run build-and-test + workingDirectory: source/nodejs/tests/${{ test_project }} + displayName: 'Build and run test in tests/[${{ test_project }}]' + +- bash: | + git clean -dxf + npm i + workingDirectory: source/nodejs + displayName: 'clean and re-install the package' + +- ${{ each test_app in parameters.test_apps }}: + - bash: | + npm i ../../../../*.tgz --force + cat package.json + npm i + npm run build + workingDirectory: source/nodejs/${{ test_app }} + displayName: 'Install the built package and build the [${{ test_app }}]' \ No newline at end of file diff --git a/.pipelines/js-release.yml b/.pipelines/js-release.yml index 31261f19ce..b76b0db105 100644 --- a/.pipelines/js-release.yml +++ b/.pipelines/js-release.yml @@ -18,6 +18,8 @@ parameters: - adaptivecards-controls - adaptivecards-designer - adaptivecards-templating + - adaptivecards-react + - name: dry_run displayName: "Dry run without pushing to npmjs" type: object diff --git a/.pipelines/templates/ios-build-template.yml b/.pipelines/templates/ios-build-template.yml new file mode 100644 index 0000000000..8ae3f24c10 --- /dev/null +++ b/.pipelines/templates/ios-build-template.yml @@ -0,0 +1,37 @@ +parameters: + - name: 'sdk' + default: 'iphonesimulator' + type: string + + - name: 'signingOption' + default: 'default' + type: string + + - name: 'packageApp' + default: false + type: boolean + + - name: 'configuration' + default: 'Debug' + type: string + +steps: +- task: CocoaPods@0 + displayName: 'Installing dependency via pod' + inputs: + workingDirectory: 'source/ios/AdaptiveCards' + forceRepoUpdate: false + +- task: Xcode@5 + displayName: 'Compiling...' + inputs: + actions: 'build' + xcWorkspacePath: 'source/ios/AdaptiveCards/AdaptiveCards.xcworkspace' + scheme: 'ADCIOSVisualizer' + xcodeVersion: '12' + packageApp: ${{ parameters.packageApp }} + signingOption: ${{ parameters.signingOption }} + sdk: ${{ parameters.sdk }} + configuration: ${{ parameters.configuration }} + destinationPlatformOption: 'iOS' + destinationSimulators: 'iPhone 12' diff --git a/.pipelines/templates/ios-ci-template.yml b/.pipelines/templates/ios-ci-template.yml new file mode 100644 index 0000000000..2e54f36777 --- /dev/null +++ b/.pipelines/templates/ios-ci-template.yml @@ -0,0 +1,29 @@ +steps: +- template: ios-build-template.yml + +- task: Xcode@5 + displayName: 'Sample App Unit Test' + inputs: + actions: 'test' + xcWorkspacePath: 'source/ios/AdaptiveCards/AdaptiveCards.xcworkspace' + scheme: 'ADCIOSVisualizer' + xcodeVersion: '12' + packageApp: false + signingOption: 'default' + sdk: 'iphonesimulator' + destinationPlatformOption: 'iOS' + destinationSimulators: 'iPhone 12' + +- task: Xcode@5 + + displayName: 'Framework Unit Test' + inputs: + actions: 'test' + xcWorkspacePath: 'source/ios/AdaptiveCards/AdaptiveCards.xcworkspace' + scheme: 'AdaptiveCards' + xcodeVersion: '12' + packageApp: false + signingOption: 'default' + sdk: 'iphonesimulator' + destinationPlatformOption: 'iOS' + destinationSimulators: 'iPhone 12' diff --git a/.pipelines/templates/ios-install-cert-template.yml b/.pipelines/templates/ios-install-cert-template.yml new file mode 100644 index 0000000000..ddbb532b8d --- /dev/null +++ b/.pipelines/templates/ios-install-cert-template.yml @@ -0,0 +1,20 @@ +steps: +- task: InstallAppleCertificate@2 + displayName: 'Install Certificates' + inputs: + certSecureFile: 'Certificates_Nov_19_B.p12' + certPwd: '$(P12password)' + keychain: 'temp' + +- task: InstallAppleProvisioningProfile@1 + displayName: 'Install Provisioning Profile' + inputs: + provisioningProfileLocation: 'secureFiles' + provProfileSecureFile: 'a5e2ba07-6d9f-4254-abf0-ad59b7effefa.mobileprovision' + +- template: ios-build-template.yml + parameters: + sdk: iphoneos + signingOption: auto + packageApp: true + configuration: Release diff --git a/.pipelines/templates/ios-spec-lint-template.yml b/.pipelines/templates/ios-spec-lint-template.yml new file mode 100644 index 0000000000..465fa6f7b2 --- /dev/null +++ b/.pipelines/templates/ios-spec-lint-template.yml @@ -0,0 +1,8 @@ +steps: +- task: Bash@3 + displayName: 'Spec Lint' + inputs: + targetType: 'inline' + script: | + # Write your commands here + pod spec lint ./source/ios/tools/AdaptiveCards.podspec --allow-warnings diff --git a/.pipelines/uwp-ci.yml b/.pipelines/uwp-ci.yml index 176a95df2d..086a4a2662 100644 --- a/.pipelines/uwp-ci.yml +++ b/.pipelines/uwp-ci.yml @@ -54,13 +54,15 @@ steps: - task: VSTest@2 displayName: 'VsTest - Unit Tests' inputs: + testRunTitle: 'UWP Unit Tests' + searchFolder: '$(System.DefaultWorkingDirectory)\source\uwp' testAssemblyVer2: | **\Release\UWPUnitTests.build.appxrecipe !**\obj\** otherConsoleOptions: '/Framework:FrameworkUap10' runInParallel: true runTestsInIsolation: true - codeCoverageEnabled: false + codeCoverageEnabled: true platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' diagnosticsEnabled: True @@ -69,12 +71,14 @@ steps: - task: VSTest@2 displayName: 'VsTest - UI Tests' inputs: + testRunTitle: 'UWP UI Tests' + searchFolder: '$(System.DefaultWorkingDirectory)\source\uwp' testAssemblyVer2: | **\Release\netcoreapp2.1\UWPUITests.dll !**\obj\** uiTests: true runTestsInIsolation: true - codeCoverageEnabled: false + codeCoverageEnabled: true platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)' diagnosticsEnabled: True diff --git a/README.md b/README.md index dfa68ea1b9..2fe347f6e4 100644 --- a/README.md +++ b/README.md @@ -29,23 +29,68 @@ PS: Latest Build Status is against `main` branch. | iOS | [![CocoaPods](https://img.shields.io/cocoapods/v/AdaptiveCards.svg)](https://cocoapods.org/pods/AdaptiveCards) | [Source](https://github.com/Microsoft/AdaptiveCards/tree/main/source/ios) | [Docs](https://docs.microsoft.com/en-us/adaptive-cards/display/libraries/ios) | ![Build status](https://img.shields.io/azure-devops/build/Microsoft/56cf629e-8f3a-4412-acbc-bf69366c552c/37917/main.svg) | | Card Designer | [![npm install](https://img.shields.io/npm/v/adaptivecards-designer.svg)](https://www.npmjs.com/package/adaptivecards-designer) | [Source](https://github.com/Microsoft/AdaptiveCards/tree/main/source/nodejs/adaptivecards-designer)| [Docs](https://www.npmjs.com/package/adaptivecards-designer) | ![Build Status](https://img.shields.io/azure-devops/build/Microsoft/56cf629e-8f3a-4412-acbc-bf69366c552c/20564/main.svg) | -#### End User License Agreement for our binary packages +## Code format + +We require the C++ code inside this project to follow the clang-format. If you change them, please make sure your changed files are formatted correctly. + +Make sure clang-format version 12.0.0 and above version is used. + +### IDE integration +ClangFormat describes a set of tools that are built on top of LibFormat. It can support your workflow in a variety of ways including a standalone tool and editor integrations. For details, refer to https://clang.llvm.org/docs/ClangFormat.html + +### Format with script +Two scripts are provided to help you format files. +- Windows user only: use FormatSource.ps1. This script use clang-format.exe which is built into Visual Studio by default. + + Execute below command in the root folder of the project + + ``` + PowerShell.exe -ExecutionPolicy Bypass scripts\FormatSource.ps1 -ModifiedOnly $False + ``` + +If it's the first time to run the script, make sure clang-format version 12.0.0 or above in the output. Otherwise you may need to upgrade Visual Studio or use your own clang-format binaries. +``` +[clang-format] Version is: +clang-format version 12.0.0 +``` + +- Both Windows and MAC users: Use clang-format npmjs package + + Execute below command in source/nodejs + + ``` + npm run format + ``` + +Make sure `npm install` is run before. + +### Use Git pre-commit hook +`git pre-commit hook` is an optional process. When you run `git commit`, it will automatically do the format check and auto fix the format if error detected. + +First make sure clang-format binary is installed in your dev enviroment. +Then modify scripts/hooks/pre-commit to make sure clangFormat is point to the correct path. +And finally setup the git hook. + +Two ways to setup the hook: +1. Copy `scripts/hooks/pre-commit` to `.git/hooks` +2. `git config --local core.hooksPath scripts/hooks` + +## End User License Agreement for our binary packages Consumption of the AdaptiveCards binary packages are subject to the Microsoft EULA (End User License Agreement). Please see the relevant terms as listed below: - [UWP/.NET](https://github.com/microsoft/AdaptiveCards/blob/main/source/EULA-Windows.txt) - [Android/iOS](https://github.com/microsoft/AdaptiveCards/blob/main/source/EULA-Non-Windows.txt) NOTE: All of the source code, itself, made available in this repo as well as our NPM packages, continue to be governed by the open source [MIT license](https://github.com/microsoft/AdaptiveCards/blob/main/LICENSE). + ### Community SDKs The following SDKs are lovingly maintained by the Adaptive Cards community. Their contributions are sincerely appreciated! 🎉 -|Platform|Install|Build|Docs|Status|Maintainer| -|---|---|---|---|---|---| -| ReactNative | [![npm install](https://img.shields.io/npm/v/adaptivecards-reactnative.svg)](https://www.npmjs.com/package/adaptivecards-reactnative) | [Source](https://github.com/Microsoft/AdaptiveCards/tree/main/source/community/reactnative)| [Docs](https://github.com/Microsoft/AdaptiveCards/blob/main/source/community/reactnative/README.md) | [![react-native-build](https://github.com/microsoft/AdaptiveCards/workflows/react-native-build/badge.svg)](https://dev.azure.com/microsoft/AdaptiveCards/_build/latest?definitionId=38416) | [BigThinkCode](https://github.com/BigThinkcode) -| Pic2Card | | [Source](https://github.com/Microsoft/AdaptiveCards/tree/main/source/pic2card) | [Docs](https://github.com/Microsoft/AdaptiveCards/blob/main/source/pic2card/README.md) | ![pic2card-build](https://github.com/Microsoft/AdaptiveCards/workflows/pic2card-build/badge.svg) | [BigThinkCode](https://github.com/BigThinkcode) -| Vue.js | [![npm install](https://img.shields.io/npm/v/adaptivecards-vue.svg)](https://www.npmjs.com/package/adaptivecards-vue) | [Source](https://github.com/DeeJayTC/adaptivecards-vue)| [Docs](https://github.com/DeeJayTC/adaptivecards-vue/blob/master/README.md) | OK | [Tim Cadenbach](https://github.com/DeeJayTC) - - +|Platform|Install|Repo|Maintainer| +|---|---|---|---| +| ReactNative | [![npm install](https://img.shields.io/npm/v/adaptivecards-reactnative.svg)](https://www.npmjs.com/package/adaptivecards-reactnative) | [GitHub](https://github.com/BigThinkcode/AdaptiveCards) | [BigThinkCode](https://github.com/BigThinkcode) | +| Pic2Card | | [GitHub](https://github.com/BigThinkcode/AdaptiveCards/blob/main/source/pic2card/README.md) | [BigThinkCode](https://github.com/BigThinkcode) | +| Vue.js | [![npm install](https://img.shields.io/npm/v/adaptivecards-vue.svg)](https://www.npmjs.com/package/adaptivecards-vue) | [GitHub](https://github.com/DeeJayTC/adaptivecards-vue)| [Tim Cadenbach](https://github.com/DeeJayTC) ## Contribute diff --git a/custom.props b/custom.props index 714a36326d..ade8060f1d 100644 --- a/custom.props +++ b/custom.props @@ -1,10 +1,10 @@ - 2 - 7 + 3 + 0 - 2.7.0 + 3.0.0 AdaptiveCards diff --git a/samples/ConsolidatedElementSamples/Input.Toggle.json b/samples/ConsolidatedElementSamples/Input.Toggle.json new file mode 100644 index 0000000000..13516a2784 --- /dev/null +++ b/samples/ConsolidatedElementSamples/Input.Toggle.json @@ -0,0 +1,24 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.0", + "body": [ + { + "type": "Input.Toggle", + "id": "acceptTerms", + "title": "I accept the terms and agreements", + "value": "true", + "valueOn": "true", + "valueOff": "false", + "label": "Please check the box below to accept the terms and agreements:", + "isRequired": true, + "errorMessage": "You must accept the terms to continue." + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "OK" + } + ] +} diff --git a/samples/HostConfig/berlin-dark.json b/samples/HostConfig/berlin-dark.json new file mode 100644 index 0000000000..23cee56486 --- /dev/null +++ b/samples/HostConfig/berlin-dark.json @@ -0,0 +1,95 @@ +{ + "supportsInteractivity": true, + "spacing": { + "small": 8, + "default": 12, + "medium": 16, + "large": 20, + "extraLarge": 24, + "padding": 16 + }, + "fontFamily": "'Segoe UI', 'Segoe UI Web (West European)', 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif", + "fontSizes": { + "small": 12, + "default": 12, + "medium": 14, + "large": 20, + "extraLarge": 40 + }, + "fontWeights": { + "lighter": 400, + "default": 400, + "bolder": 600 + }, + "fontTypes": { + "default": { + "fontFamily": "'Segoe UI', 'Segoe UI Web (West European)', 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif", + "fontSizes": { + "small": 12, + "default": 12, + "medium": 14, + "large": 20, + "extraLarge": 40 + }, + "fontWeights": { + "lighter": 400, + "default": 400, + "bolder": 600 + } + }, + "monospace": { + "fontFamily": "'Courier New', Courier, monospace", + "fontSizes": { + "small": 12, + "default": 12, + "medium": 14, + "large": 20, + "extraLarge": 40 + }, + "fontWeights": { + "lighter": 400, + "default": 400, + "bolder": 600 + } + } + }, + "containerStyles": { + "default": { + "foregroundColors": { + "default": { + "default": "#FFFFFF", + "subtle": "#FFFFFF" + }, + "accent": { + "default": "#60CDFF", + "subtle": "#60CDFF" + }, + "dark": { + "default": "#FFFFFFC8", + "subtle": "#FFFFFFC8" + } + } + } + }, + "textStyles": { + "heading": { + "fontType": "default", + "size": "large", + "weight": "bolder", + "color": "default", + "isSubtle": false + } + }, + "textBlock": { + "headingLevel": 2 + }, + "imageSizes": { + "small": 32, + "medium": 52, + "large": 100 + }, + "separator": { + "lineThickness": 1, + "lineColor": "#FFFFFF" + } +} diff --git a/samples/HostConfig/berlin-light.json b/samples/HostConfig/berlin-light.json new file mode 100644 index 0000000000..13e35cb0d6 --- /dev/null +++ b/samples/HostConfig/berlin-light.json @@ -0,0 +1,95 @@ +{ + "supportsInteractivity": true, + "spacing": { + "small": 8, + "default": 12, + "medium": 16, + "large": 20, + "extraLarge": 24, + "padding": 16 + }, + "fontFamily": "'Segoe UI', 'Segoe UI Web (West European)', 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif", + "fontSizes": { + "small": 12, + "default": 12, + "medium": 14, + "large": 20, + "extraLarge": 40 + }, + "fontWeights": { + "lighter": 400, + "default": 400, + "bolder": 600 + }, + "fontTypes": { + "default": { + "fontFamily": "'Segoe UI', 'Segoe UI Web (West European)', 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif", + "fontSizes": { + "small": 12, + "default": 12, + "medium": 14, + "large": 20, + "extraLarge": 40 + }, + "fontWeights": { + "lighter": 400, + "default": 400, + "bolder": 600 + } + }, + "monospace": { + "fontFamily": "'Courier New', Courier, monospace", + "fontSizes": { + "small": 12, + "default": 12, + "medium": 14, + "large": 20, + "extraLarge": 40 + }, + "fontWeights": { + "lighter": 400, + "default": 400, + "bolder": 600 + } + } + }, + "containerStyles": { + "default": { + "foregroundColors": { + "default": { + "default": "#000000", + "subtle": "#000000" + }, + "dark": { + "default": "#000000", + "subtle": "#000000" + }, + "accent": { + "default": "#005FB8", + "subtle": "#005FB8" + } + } + } + }, + "imageSizes": { + "small": 32, + "medium": 52, + "large": 100 + }, + "textStyles": { + "heading": { + "fontType": "default", + "size": "large", + "weight": "bolder", + "color": "default", + "isSubtle": false + } + }, + "textBlock": { + "maxWidth": "252px" + }, + "separator": { + "lineThickness": 1, + "lineColor": "#333333" + } +} diff --git a/samples/HostConfig/viva-connections.json b/samples/HostConfig/viva-connections.json new file mode 100644 index 0000000000..0bd82008dd --- /dev/null +++ b/samples/HostConfig/viva-connections.json @@ -0,0 +1,289 @@ +{ + "preExpandSingleShowCardAction": true, + "supportsInteractivity": true, + "spacing": { + "small": 4, + "default": 8, + "medium": 16, + "large": 24, + "extraLarge": 32, + "padding": 16 + }, + "separator": { + "lineThickness": 1, + "lineColor": "#EDEBE9" + }, + "imageSizes": { + "small": 72, + "medium": 164, + "large": 256 + }, + "fontTypes": { + "default": { + "fontFamily": "'Segoe UI', 'Segoe UI Web (West European)', 'Segoe UI', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif", + "fontSizes": { + "small": 12, + "default": 14, + "medium": 18, + "large": 24, + "extraLarge": 32 + }, + "fontWeights": { + "lighter": 300, + "default": 400, + "bolder": 600 + } + }, + "monospace": { + "fontFamily": "'Courier New', Courier, monospace", + "fontSizes": { + "small": 12, + "default": 14, + "medium": 18, + "large": 24, + "extraLarge": 32 + }, + "fontWeights": { + "lighter": 300, + "default": 400, + "bolder": 600 + } + } + }, + "containerStyles": { + "default": { + "backgroundColor": "#FFFFFF", + "foregroundColors": { + "default": { + "default": "#323130", + "subtle": "#8A8886" + }, + "dark": { + "default": "#000000", + "subtle": "#605E5C" + }, + "light": { + "default": "#F3F2F1", + "subtle": "#E1DFDD" + }, + "accent": { + "default": "#6264A7", + "subtle": "#A6A7DC" + }, + "attention": { + "default": "#A80000", + "subtle": "#A3A80000" + }, + "good": { + "default": "#107C10", + "subtle": "#A3107C10" + }, + "warning": { + "default": "#797673", + "subtle": "#A19F9D" + } + } + }, + "emphasis": { + "backgroundColor": "#FAF9F8", + "foregroundColors": { + "default": { + "default": "#323130", + "subtle": "#8A8886" + }, + "dark": { + "default": "#000000", + "subtle": "#605E5C" + }, + "light": { + "default": "#F3F2F1", + "subtle": "#E1DFDD" + }, + "accent": { + "default": "#6264A7", + "subtle": "#A6A7DC" + }, + "attention": { + "default": "#A80000", + "subtle": "#A3A80000" + }, + "good": { + "default": "#107C10", + "subtle": "#A3107C10" + }, + "warning": { + "default": "#797673", + "subtle": "#A19F9D" + } + } + }, + "accent": { + "backgroundColor": "#E2E2F6", + "foregroundColors": { + "default": { + "default": "#323130", + "subtle": "#8A8886" + }, + "dark": { + "default": "#000000", + "subtle": "#605E5C" + }, + "light": { + "default": "#F3F2F1", + "subtle": "#E1DFDD" + }, + "accent": { + "default": "#6264A7", + "subtle": "#A6A7DC" + }, + "attention": { + "default": "#A80000", + "subtle": "#A3A80000" + }, + "good": { + "default": "#107C10", + "subtle": "#A3107C10" + }, + "warning": { + "default": "#797673", + "subtle": "#A19F9D" + } + } + }, + "good": { + "backgroundColor": "#DFF6DD", + "foregroundColors": { + "default": { + "default": "#323130", + "subtle": "#8A8886" + }, + "dark": { + "default": "#000000", + "subtle": "#605E5C" + }, + "light": { + "default": "#F3F2F1", + "subtle": "#E1DFDD" + }, + "accent": { + "default": "#6264A7", + "subtle": "#A6A7DC" + }, + "attention": { + "default": "#A80000", + "subtle": "#A3A80000" + }, + "good": { + "default": "#107C10", + "subtle": "#A3107C10" + }, + "warning": { + "default": "#797673", + "subtle": "#A19F9D" + } + } + }, + "attention": { + "backgroundColor": "#FED9CC", + "foregroundColors": { + "default": { + "default": "#323130", + "subtle": "#8A8886" + }, + "dark": { + "default": "#000000", + "subtle": "#605E5C" + }, + "light": { + "default": "#F3F2F1", + "subtle": "#E1DFDD" + }, + "accent": { + "default": "#6264A7", + "subtle": "#A6A7DC" + }, + "attention": { + "default": "#A80000", + "subtle": "#A3A80000" + }, + "good": { + "default": "#107C10", + "subtle": "#A3107C10" + }, + "warning": { + "default": "#797673", + "subtle": "#A19F9D" + } + } + }, + "warning": { + "backgroundColor": "#FFF4CE", + "foregroundColors": { + "default": { + "default": "#323130", + "subtle": "#8A8886" + }, + "dark": { + "default": "#000000", + "subtle": "#605E5C" + }, + "light": { + "default": "#F3F2F1", + "subtle": "#E1DFDD" + }, + "accent": { + "default": "#6264A7", + "subtle": "#A6A7DC" + }, + "attention": { + "default": "#A80000", + "subtle": "#A3A80000" + }, + "good": { + "default": "#107C10", + "subtle": "#A3107C10" + }, + "warning": { + "default": "#797673", + "subtle": "#A19F9D" + } + } + } + }, + "actions": { + "maxActions": 5, + "spacing": "Default", + "buttonSpacing": 10, + "showCard": { + "actionMode": "Inline", + "inlineTopMargin": 16 + }, + "actionsOrientation": "Horizontal", + "actionAlignment": "Left" + }, + "adaptiveCard": { + "allowCustomStyle": true + }, + "imageSet": { + "imageSize": "Medium", + "maxImageHeight": 100 + }, + "factSet": { + "title": { + "color": "Default", + "size": "Default", + "isSubtle": false, + "weight": "Bolder", + "wrap": true, + "maxWidth": 150 + }, + "value": { + "color": "Default", + "size": "Default", + "isSubtle": false, + "weight": "Default", + "wrap": true + }, + "spacing": 8 + } +} diff --git a/samples/Templates/Scenarios/ApplicationLogin.data.json b/samples/Templates/Scenarios/ApplicationLogin.data.json new file mode 100644 index 0000000000..656696940d --- /dev/null +++ b/samples/Templates/Scenarios/ApplicationLogin.data.json @@ -0,0 +1,5 @@ +{ + "ApplicationInfo": { + "title": "Application Login" + } +} \ No newline at end of file diff --git a/samples/Templates/Scenarios/ApplicationLogin.template.json b/samples/Templates/Scenarios/ApplicationLogin.template.json new file mode 100644 index 0000000000..171f17fa14 --- /dev/null +++ b/samples/Templates/Scenarios/ApplicationLogin.template.json @@ -0,0 +1,47 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "size": "Medium", + "weight": "Bolder", + "text": " ${ApplicationInfo.title}", + "horizontalAlignment": "Center", + "wrap": true, + "style": "heading" + }, + { + "type": "TextBlock", + "text": "Username", + "wrap": true + }, + { + "type": "Input.Text", + "style": "text", + "id": "UserVal", + "isRequired": true + }, + { + "type": "TextBlock", + "text": "Password", + "wrap": true + }, + { + "type": "Input.Text", + "id": "PassVal", + "style": "password", + "isRequired": true + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "Login", + "data": { + "id": "LoginVal" + } + } + ] +} \ No newline at end of file diff --git a/samples/Templates/Scenarios/FlightUpdateTable.data.json b/samples/Templates/Scenarios/FlightUpdateTable.data.json new file mode 100644 index 0000000000..ec41d2bb08 --- /dev/null +++ b/samples/Templates/Scenarios/FlightUpdateTable.data.json @@ -0,0 +1,40 @@ +{ + "@context": "http://schema.org", + "@type": "FlightReservation", + "reservationId": "RXJ34P", + "reservationStatus": "http://schema.org/ReservationConfirmed", + "passengerPriorityStatus": "Fast Track", + "passengerSequenceNumber": "ABC123", + "securityScreening": "TSA PreCheck", + "underName": { + "@type": "Person", + "name": "Sarah Hum" + }, + "reservationFor": { + "@type": "Flight", + "flightNumber": "KL605", + "provider": { + "@type": "Airline", + "name": "KLM", + "iataCode": "KL", + "boardingPolicy": "http://schema.org/ZoneBoardingPolicy" + }, + "seller": { + "@type": "Airline", + "name": "KLM", + "iataCode": "KL" + }, + "departureAirport": { + "@type": "Airport", + "name": "Amsterdam Airport", + "iataCode": "AMS" + }, + "departureTime": "2017-03-04T09:20:00-01:00", + "arrivalAirport": { + "@type": "Airport", + "name": "San Francisco Airport", + "iataCode": "SFO" + }, + "arrivalTime": "2017-03-05T08:20:00+04:00" + } + } \ No newline at end of file diff --git a/samples/Templates/Scenarios/FlightUpdateTable.template.json b/samples/Templates/Scenarios/FlightUpdateTable.template.json new file mode 100644 index 0000000000..23f9d50199 --- /dev/null +++ b/samples/Templates/Scenarios/FlightUpdateTable.template.json @@ -0,0 +1,261 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "Table", + "columns": [ + { + "width": 1 + }, + { + "width": 1 + }, + { + "width": 1 + } + ], + "rows": [ + { + "type": "TableRow", + "cells": [ + { + "type": "TableCell", + "items": [ + { + "type": "Image", + "size": "Small", + "url": "https://adaptivecards.io/content/airplane.png" + } + ] + }, + { + "type": "TableCell" + }, + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "Flight Status", + "horizontalAlignment": "Right", + "isSubtle": true, + "wrap": true + }, + { + "type": "TextBlock", + "text": "DELAYED", + "horizontalAlignment": "Right", + "spacing": "None", + "size": "Large", + "color": "Attention", + "wrap": true + } + ] + } + ] + }, + { + "type": "TableRow", + "cells": [ + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "Passengers", + "isSubtle": true, + "weight": "Bolder", + "wrap": true, + "spacing": "None" + }, + { + "type": "TextBlock", + "text": "${underName.name}", + "spacing": "Small", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Jeremy Goldberg", + "spacing": "Small", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Evan Litvak", + "spacing": "Small", + "wrap": true + } + ] + }, + { + "type": "TableCell" + }, + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "Seat", + "horizontalAlignment": "Right", + "isSubtle": true, + "weight": "Bolder", + "wrap": true + }, + { + "type": "TextBlock", + "text": "14A", + "horizontalAlignment": "Right", + "spacing": "Small", + "wrap": true + }, + { + "type": "TextBlock", + "text": "14B", + "horizontalAlignment": "Right", + "spacing": "Small", + "wrap": true + }, + { + "type": "TextBlock", + "text": "14C", + "horizontalAlignment": "Right", + "spacing": "Small", + "wrap": true + } + ] + } + ] + }, + { + "type": "TableRow", + "cells": [ + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "Flight", + "isSubtle": true, + "weight": "Bolder", + "wrap": true + }, + { + "type": "TextBlock", + "text": "${reservationFor.flightNumber}", + "spacing": "Small", + "wrap": true + } + ] + }, + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "Departs", + "isSubtle": true, + "horizontalAlignment": "Center", + "weight": "Bolder", + "wrap": true + }, + { + "type": "TextBlock", + "text": "{{TIME(${string(reservationFor.departureTime)})}}", + "color": "Attention", + "weight": "Bolder", + "horizontalAlignment": "Center", + "spacing": "Small", + "wrap": true + } + ] + }, + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "Arrives", + "isSubtle": true, + "horizontalAlignment": "Right", + "weight": "Bolder", + "wrap": true + }, + { + "type": "TextBlock", + "text": "{{TIME(${string(reservationFor.arrivalTime)})}}", + "color": "Attention", + "horizontalAlignment": "Right", + "weight": "Bolder", + "spacing": "Small", + "wrap": true + } + ] + } + ] + }, + { + "type": "TableRow", + "cells": [ + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "${reservationFor.departureAirport.name}", + "isSubtle": true, + "wrap": true + }, + { + "type": "TextBlock", + "text": "${reservationFor.departureAirport.iataCode}", + "size": "ExtraLarge", + "color": "Accent", + "spacing": "None", + "wrap": true + } + ] + }, + { + "type": "TableCell", + "items": [ + { + "type": "Image", + "url": "https://adaptivecards.io/content/airplane.png", + "horizontalAlignment": "Center", + "size": "Small" + } + ], + "verticalContentAlignment": "Center" + }, + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "${reservationFor.arrivalAirport.name}", + "isSubtle": true, + "horizontalAlignment": "Right", + "wrap": true + }, + { + "type": "TextBlock", + "text": "${reservationFor.arrivalAirport.iataCode}", + "horizontalAlignment": "Right", + "size": "ExtraLarge", + "color": "Accent", + "spacing": "None", + "wrap": true + } + ] + } + ], + "spacing": "None" + } + ], + "showGridLines": false + } + ] +} diff --git a/samples/Templates/Scenarios/InputFormWithRTL.data.json b/samples/Templates/Scenarios/InputFormWithRTL.data.json new file mode 100644 index 0000000000..b51e425de5 --- /dev/null +++ b/samples/Templates/Scenarios/InputFormWithRTL.data.json @@ -0,0 +1,6 @@ +{ + "FormInfo":{ + "titleENG":"Registration Form", + "titleARA":"إستمارة تسجيل" + } +} diff --git a/samples/Templates/Scenarios/InputFormWithRTL.template.json b/samples/Templates/Scenarios/InputFormWithRTL.template.json new file mode 100644 index 0000000000..5049729d99 --- /dev/null +++ b/samples/Templates/Scenarios/InputFormWithRTL.template.json @@ -0,0 +1,116 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "Please select your language:" + } + ], + "actions": [ + { + "type": "Action.ShowCard", + "title": "English", + "card": { + "type": "AdaptiveCard", + "body": [ + { + "type": "TextBlock", + "size": "medium", + "weight": "bolder", + "text": " ${FormInfo.titleENG}", + "horizontalAlignment": "center", + "wrap": true, + "style": "heading" + }, + { + "type": "Input.Text", + "label": "Name", + "style": "text", + "id": "SimpleValENG", + "isRequired": true, + "errorMessage": "Name is required" + }, + { + "type": "Input.Text", + "label": "Email", + "style": "email", + "id": "EmailValENG" + }, + { + "type": "Input.Text", + "label": "Phone", + "style": "tel", + "id": "TelValENG" + }, + { + "type": "Input.Text", + "label": "Comments", + "style": "text", + "isMultiline": true, + "id": "MultiLineValENG" + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "Submit" + } + ] + } + }, + { + "type": "Action.ShowCard", + "title": "عربي", + "card": { + "type": "AdaptiveCard", + "rtl": true, + "body": [ + { + "type": "TextBlock", + "size": "medium", + "weight": "bolder", + "text": " ${FormInfo.titleARA}", + "horizontalAlignment": "center", + "wrap": true, + "style": "heading" + }, + { + "type": "Input.Text", + "label": "اسم", + "style": "text", + "id": "SimpleValARA", + "isRequired": true, + "errorMessage": "مطلوب اسم" + }, + { + "type": "Input.Text", + "label": "بريد الالكتروني", + "style": "email", + "id": "EmailValARA" + }, + { + "type": "Input.Text", + "label": "هاتف", + "style": "tel", + "id": "TelValARA" + }, + { + "type": "Input.Text", + "label": "تعليقات", + "style": "text", + "isMultiline": true, + "id": "MultiLineValARA" + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "يقدم" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/samples/Templates/Scenarios/OrderConfirmation.data.json b/samples/Templates/Scenarios/OrderConfirmation.data.json new file mode 100644 index 0000000000..4b7e4ef7d7 --- /dev/null +++ b/samples/Templates/Scenarios/OrderConfirmation.data.json @@ -0,0 +1,9 @@ +{ + "title": "Please confirm your order:", + "customer": [{ + "firstName": "John", + "lastName": "Smith", + "phone": "(555) 555-5555" + } + ] +} \ No newline at end of file diff --git a/samples/Templates/Scenarios/OrderConfirmation.template.json b/samples/Templates/Scenarios/OrderConfirmation.template.json new file mode 100644 index 0000000000..f96f961908 --- /dev/null +++ b/samples/Templates/Scenarios/OrderConfirmation.template.json @@ -0,0 +1,68 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "${title}", + "wrap": true, + "style": "heading" + }, + { + "type": "FactSet", + "facts": [ + { + "title": "Name", + "value": "${customer[0].firstName} ${customer[0].lastName}" + }, + { + "title": "Phone number", + "value": "${customer[0].phone}" + } + ] + }, + { + "type": "Container", + "items": [ + { + "type": "FactSet", + "facts": [ + { + "title": "1x", + "value": "Steak" + }, + { + "title": "2x", + "value": "Side Rice" + }, + { + "title": "1x", + "value": "Soft Drink" + } + ], + "spacing": "Small" + } + ], + "spacing": "Small" + } + ], + "actions": [ + { + "type": "Action.Execute", + "title": "Place Order" + }, + { + "type": "Action.Execute", + "title": "Edit Order", + "data": "edit", + "mode": "secondary" + }, + { + "type": "Action.Execute", + "title": "Save Order", + "data": "save", + "mode": "secondary" + } + ] +} diff --git a/samples/Templates/Scenarios/OrderDelivery.data.json b/samples/Templates/Scenarios/OrderDelivery.data.json new file mode 100644 index 0000000000..057b2deee9 --- /dev/null +++ b/samples/Templates/Scenarios/OrderDelivery.data.json @@ -0,0 +1,18 @@ +{ + "name": "Malt \u0026 Vine", + "address": { + "addressLocality": "Redmond", + "addressRegion": "WA", + "streetAddress": "16851 Redmond Way", + "postalCode": "98052", + "addressCountry": "US" + }, + "review": [{ + "reviewRating": { + "ratingValue": 4 + }, + "datePublished": "2014-11-28", + "description": "Great concept and a wide selection of beers both on tap and bottled! Smaller wine selection than I wanted, but the variety of beers certainly made up for that. Although I didn't order anything, my boyfriend got a beer and he loved it. Their prices are fair too. \n\nThe concept is really awesome. It's a bar/store that you can bring outside food into. The place was pretty packed tonight. I wish we had stayed for more than one drink. I would have loved to sample everything!", + "author": "Blaire S." + }] +} \ No newline at end of file diff --git a/samples/Templates/Scenarios/OrderDelivery.template.json b/samples/Templates/Scenarios/OrderDelivery.template.json new file mode 100644 index 0000000000..9c9f01c03e --- /dev/null +++ b/samples/Templates/Scenarios/OrderDelivery.template.json @@ -0,0 +1,70 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.5", + "body": [ + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "width": 2, + "items": [ + { + "type": "TextBlock", + "text": "${address.addressLocality}, ${address.addressRegion}", + "wrap": true + }, + { + "type": "TextBlock", + "text": "${name}", + "weight": "bolder", + "size": "extraLarge", + "spacing": "none", + "wrap": true + }, + { + "type": "TextBlock", + "text": "4.5 stars (176 reviews) · mid-priced", + "isSubtle": true, + "spacing": "none", + "wrap": true + }, + { + "type": "TextBlock", + "text": "**${review[0].author}** said \"${review[0].description}\"", + "size": "small", + "wrap": true, + "maxLines": 3 + } + ] + }, + { + "type": "Column", + "width": 1, + "items": [ + { + "type": "Image", + "url": "https://picsum.photos/300?image=882", + "size": "auto", + "altText": "Seated guest drinking a cup of coffee" + } + ] + } + ] + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "Pickup", + "tooltip": "Schedule order for pickup" + }, + { + "type": "Action.Submit", + "title": "Delivery", + "isEnabled": false, + "tooltip": "Your location is too far for delivery" + } + ] +} diff --git a/samples/Templates/Scenarios/RestaurantOrder.data.json b/samples/Templates/Scenarios/RestaurantOrder.data.json new file mode 100644 index 0000000000..b7510ccbb9 --- /dev/null +++ b/samples/Templates/Scenarios/RestaurantOrder.data.json @@ -0,0 +1,76 @@ +{ + "FormInfo": { + "title": "Malt & Vine Order Form" + }, + "Order": { + "questions": [ + { + "question": "Which entree would you like?", + "items": [ + { + "choice": "Steak", + "value": "1" + }, + { + "choice": "Chicken", + "value": "2" + }, + { + "choice": "Tofu", + "value": "3" + } + ] + }, + { + "question": "Which side would you like?", + "items": [ + { + "choice": "Baked Potato", + "value": "1" + }, + { + "choice": "Rice", + "value": "2" + }, + { + "choice": "Vegetables", + "value": "3" + }, + { + "choice": "Noodles", + "value": "4" + }, + { + "choice": "No Side", + "value": "5" + } + ] + }, + { + "question": "Which drink would you like?", + "items": [ + { + "choice": "Water", + "value": "1" + }, + { + "choice": "Soft Drink", + "value": "2" + }, + { + "choice": "Coffee", + "value": "3" + }, + { + "choice": "Natural Juice", + "value": "4" + }, + { + "choice": "No Drink", + "value": "5" + } + ] + } + ] + } +} diff --git a/samples/Templates/Scenarios/RestaurantOrder.template.json b/samples/Templates/Scenarios/RestaurantOrder.template.json new file mode 100644 index 0000000000..88a41ff09b --- /dev/null +++ b/samples/Templates/Scenarios/RestaurantOrder.template.json @@ -0,0 +1,68 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "${FormInfo.title}", + "size": "Large", + "wrap": true, + "weight": "Bolder" + }, + { + "type": "Input.ChoiceSet", + "id": "EntreeSelectVal", + "label": "${Order.questions[0].question}", + "style": "filtered", + "isRequired": true, + "errorMessage": "This is a required input", + "placeholder": "Please choose", + "choices": [ + { + "$data": "${Order.questions[0].items}", + "title": "${choice}", + "value": "${value}" + } + ] + }, + { + "type": "Input.ChoiceSet", + "id": "SideVal", + "label": "${Order.questions[1].question}", + "style": "filtered", + "isRequired": true, + "errorMessage": "This is a required input", + "placeholder": "Please choose", + "choices": [ + { + "$data": "${Order.questions[1].items}", + "title": "${choice}", + "value": "${value}" + } + ] + }, + { + "type": "Input.ChoiceSet", + "id": "DrinkVal", + "label": "${Order.questions[2].question}", + "style": "filtered", + "isRequired": true, + "errorMessage": "This is a required input", + "placeholder": "Please choose", + "choices": [ + { + "$data": "${Order.questions[2].items}", + "title": "${choice}", + "value": "${value}" + } + ] + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "Place Order" + } + ] +} diff --git a/samples/v1.0/Elements/Action.ShowCard.json b/samples/v1.0/Elements/Action.ShowCard.json index b22e3f7321..2795e882da 100644 --- a/samples/v1.0/Elements/Action.ShowCard.json +++ b/samples/v1.0/Elements/Action.ShowCard.json @@ -23,7 +23,10 @@ "actions": [ { "type": "Action.Submit", - "title": "Neat!" + "title": "Neat!", + "data": { + "neat": "true" + } } ] } diff --git a/samples/v1.0/Elements/Column.SelectAction.json b/samples/v1.0/Elements/Column.SelectAction.json index cb2b98f990..7512e694ec 100644 --- a/samples/v1.0/Elements/Column.SelectAction.json +++ b/samples/v1.0/Elements/Column.SelectAction.json @@ -25,7 +25,7 @@ ], "selectAction": { "type": "Action.OpenUrl", - "title": "cool link", + "tooltip": "cool link", "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" } }, @@ -43,7 +43,7 @@ ], "selectAction": { "type": "Action.OpenUrl", - "title": "cool link", + "tooltip": "another cool link", "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" } }, @@ -61,7 +61,7 @@ ], "selectAction": { "type": "Action.OpenUrl", - "title": "cool link", + "tooltip": "a third cool link", "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" } } diff --git a/samples/v1.0/Elements/ColumnSet.SelectAction.json b/samples/v1.0/Elements/ColumnSet.SelectAction.json index 034766ee5a..0253b6749b 100644 --- a/samples/v1.0/Elements/ColumnSet.SelectAction.json +++ b/samples/v1.0/Elements/ColumnSet.SelectAction.json @@ -41,7 +41,8 @@ ], "selectAction": { "type": "Action.OpenUrl", - "url": "https://www.msn.com" + "url": "https://www.msn.com", + "tooltip": "View a map of Silver Star Mountain" } }, { @@ -78,7 +79,8 @@ ], "selectAction": { "type": "Action.OpenUrl", - "url": "https://www.AdaptiveCards.io" + "url": "https://www.AdaptiveCards.io", + "tooltip": "Remodel your kitchen with our new cabinet styles!" } }, { @@ -114,7 +116,8 @@ ], "selectAction": { "type": "Action.OpenUrl", - "url": "https://www.outlook.com" + "url": "https://www.outlook.com", + "tooltip": "Watch the newest episode today!" } } ], diff --git a/samples/v1.0/Elements/Container.SelectAction.json b/samples/v1.0/Elements/Container.SelectAction.json index 630acbf58d..9975aa7d24 100644 --- a/samples/v1.0/Elements/Container.SelectAction.json +++ b/samples/v1.0/Elements/Container.SelectAction.json @@ -1,50 +1 @@ -{ - "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", - "type": "AdaptiveCard", - "version": "1.0", - "body": [ - { - "type": "Container", - "items": [ - { - "type": "TextBlock", - "text": "Cool link" - } - ], - "selectAction": { - "type": "Action.OpenUrl", - "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" - } - }, - { - "type": "Container", - "style": "emphasis", - "items": [ - { - "type": "TextBlock", - "text": "Emphasis link" - } - ], - "selectAction": { - "type": "Action.OpenUrl", - "url": "https://msn.com" - } - }, - { - "type": "Container", - "items": [ - { - "type": "TextBlock", - "text": "Submit action" - } - ], - "selectAction": { - "type": "Action.Submit", - "title": "Submit action", - "data": { - "info": "My submit action data" - } - } - } - ] -} +{ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.0", "body": [ { "type": "Container", "items": [ { "type": "TextBlock", "text": "Cool link" } ], "selectAction": { "type": "Action.OpenUrl", "tooltip": "Go to a url", "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" } }, { "type": "Container", "style": "emphasis", "items": [ { "type": "TextBlock", "text": "Emphasis link" } ], "selectAction": { "type": "Action.OpenUrl", "tooltip": "Go to a different url", "url": "https://msn.com" } }, { "type": "Container", "items": [ { "type": "TextBlock", "text": "Submit action" } ], "selectAction": { "type": "Action.Submit", "tooltip": "Submit action", "data": { "info": "My submit action data" } } } ] } \ No newline at end of file diff --git a/samples/v1.0/Elements/Image.SelectAction.json b/samples/v1.0/Elements/Image.SelectAction.json index e9b175f293..d4acdd60e3 100644 --- a/samples/v1.0/Elements/Image.SelectAction.json +++ b/samples/v1.0/Elements/Image.SelectAction.json @@ -13,7 +13,7 @@ "url": "https://adaptivecards.io/content/cats/1.png", "selectAction": { "type": "Action.OpenUrl", - "title": "cool link", + "tooltip": "cool link", "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" } } diff --git a/samples/v1.0/Elements/Input.Text.Style.json b/samples/v1.0/Elements/Input.Text.Style.json index 25ed208f2c..5da4ffb9cf 100644 --- a/samples/v1.0/Elements/Input.Text.Style.json +++ b/samples/v1.0/Elements/Input.Text.Style.json @@ -5,43 +5,38 @@ "body": [ { "type": "TextBlock", - "text": "Specify the type of text being requested" + "text": "Specify the type of text being requested:", + "style": "heading" }, { "type": "Input.Text", "id": "myComment", - "placeholder": "text", + "label": "style: text", "style": "text" }, - { - "type": "TextBlock", - "text": "style: email" - }, { "type": "Input.Text", "id": "myEmail", - "placeholder": "email", + "label": "style: email", "style": "email" }, - { - "type": "TextBlock", - "text": "style: tel" - }, { "type": "Input.Text", "id": "myTel", - "placeholder": "tel", + "label": "style: tel", "style": "tel" }, - { - "type": "TextBlock", - "text": "style: url" - }, { "type": "Input.Text", "id": "myUrl", - "placeholder": "url", + "label": "style: url", "style": "url" + }, + { + "type": "Input.Text", + "id": "myPassword", + "label": "style: password", + "style": "password" } ], "actions": [ diff --git a/samples/v1.0/Scenarios/WeatherLarge.json b/samples/v1.0/Scenarios/WeatherLarge.json index c8d2abeee6..ae4e3b8eeb 100644 --- a/samples/v1.0/Scenarios/WeatherLarge.json +++ b/samples/v1.0/Scenarios/WeatherLarge.json @@ -64,7 +64,7 @@ { "type": "TextBlock", "horizontalAlignment": "center", - "wrap": false, + "wrap": true, "text": "Wednesday" }, { @@ -101,7 +101,7 @@ { "type": "TextBlock", "horizontalAlignment": "center", - "wrap": false, + "wrap": true, "text": "Thursday" }, { @@ -137,7 +137,7 @@ { "type": "TextBlock", "horizontalAlignment": "center", - "wrap": false, + "wrap": true, "text": "Friday" }, { @@ -173,7 +173,7 @@ { "type": "TextBlock", "horizontalAlignment": "center", - "wrap": false, + "wrap": true, "text": "Saturday" }, { diff --git a/samples/v1.2/Elements/Input.Text.InlineAction.json b/samples/v1.2/Elements/Input.Text.InlineAction.json index 4444fe5f18..2ad2a63d74 100644 --- a/samples/v1.2/Elements/Input.Text.InlineAction.json +++ b/samples/v1.2/Elements/Input.Text.InlineAction.json @@ -3,30 +3,24 @@ "type": "AdaptiveCard", "version": "1.2", "body": [ - { - "type": "TextBlock", - "text": "Text input with an inline action" - }, { "type": "Input.Text", "id": "iconInlineActionId", + "label": "Text input with an inline action", "inlineAction": { "type": "Action.Submit", "iconUrl": "https://adaptivecards.io/content/send.png", - "title": "Send" + "tooltip": "Send" } }, - { - "type": "TextBlock", - "text": "Text input with an inline action with no icon", - "wrap": true - }, { "type": "Input.Text", + "label": "Text input with an inline action with no icon", "id": "textInlineActionId", "inlineAction": { "type": "Action.OpenUrl", "title": "Reply", + "tooltip": "Reply to this message", "url": "https://adaptivecards.io" } } diff --git a/samples/v1.2/Scenarios/FlightDetails.json b/samples/v1.2/Scenarios/FlightDetails.json index 0331f7c37c..a3e589f985 100644 --- a/samples/v1.2/Scenarios/FlightDetails.json +++ b/samples/v1.2/Scenarios/FlightDetails.json @@ -57,8 +57,7 @@ "height": "stretch" } ], - "width": 45, - "height": "stretch" + "width": 45 }, { "type": "Column", @@ -143,8 +142,7 @@ { "type": "TextRun", "text": "Sat, Mar 4, 2017\n", - "isSubtle": true, - "wrap": true + "isSubtle": true }, { "type": "TextRun", @@ -171,8 +169,7 @@ { "type": "TextRun", "text": "Sat, Mar 4, 2017\n", - "isSubtle": true, - "wrap": true + "isSubtle": true }, { "type": "TextRun", diff --git a/samples/v1.2/Tests/RichTextBlock.TextRun.SelectActions.json b/samples/v1.2/Tests/RichTextBlock.TextRun.SelectActions.json index 471349da6b..9ea978a095 100644 --- a/samples/v1.2/Tests/RichTextBlock.TextRun.SelectActions.json +++ b/samples/v1.2/Tests/RichTextBlock.TextRun.SelectActions.json @@ -48,7 +48,7 @@ "selectAction": { "type": "Action.OpenUrl", "url": "https://adaptivecards.io", - "title": "Default" + "tooltip": "Default" } }, { @@ -62,7 +62,7 @@ "color": "warning", "selectAction": { "type": "Action.Submit", - "title": "Action.Submit", + "tooltip": "Action.Submit", "data": { "x": "hello world!" } @@ -79,7 +79,7 @@ "color": "accent", "selectAction": { "type": "Action.ToggleVisibility", - "title": "Toggle!", + "tooltip": "Toggle!", "targetElements": [ "textToToggle", "imageToToggle", "imageToToggle2" ] } } diff --git a/samples/v1.5/Elements/Action.Execute.IsEnabled.json b/samples/v1.5/Elements/Action.Execute.IsEnabled.json new file mode 100644 index 0000000000..02f5ddcaac --- /dev/null +++ b/samples/v1.5/Elements/Action.Execute.IsEnabled.json @@ -0,0 +1,23 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "Disabled Execute Button", + "wrap": true + } + ], + "actions": [ + { + "type": "Action.Execute", + "title": "Enabled" + }, + { + "type": "Action.Execute", + "title": "Disabled", + "isEnabled": false + } + ] +} diff --git a/samples/v1.5/Elements/Action.Execute.Mode.json b/samples/v1.5/Elements/Action.Execute.Mode.json new file mode 100644 index 0000000000..4f3d59cd08 --- /dev/null +++ b/samples/v1.5/Elements/Action.Execute.Mode.json @@ -0,0 +1,48 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "Please confirm your data:", + "wrap": true, + "style": "heading" + }, + { + "type": "FactSet", + "facts": [ + { + "title": "First Name", + "value": "John" + }, + { + "title": "Last Name", + "value": "Smith" + }, + { + "title": "Phone number ", + "value": "(555) 555-5555" + } + ] + } + ], + "actions": [ + { + "type": "Action.Execute", + "title": "Confirm data" + }, + { + "type": "Action.Execute", + "title": "Edit data", + "data": "edit", + "mode": "secondary" + }, + { + "type": "Action.Execute", + "title": "Delete data", + "data": "delete", + "mode": "secondary" + } + ] +} diff --git a/samples/v1.5/Elements/Action.Execute.Tooltip.json b/samples/v1.5/Elements/Action.Execute.Tooltip.json new file mode 100644 index 0000000000..f65e971d82 --- /dev/null +++ b/samples/v1.5/Elements/Action.Execute.Tooltip.json @@ -0,0 +1,19 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "label": "Please enter your name below:", + "type": "Input.Text", + "id": "name" + } + ], + "actions": [ + { + "type": "Action.Execute", + "title": "Submit", + "tooltip": "Click here to add your name to the waiting list." + } + ] +} diff --git a/samples/v1.5/Elements/Action.OpenUrl.IsEnabled.json b/samples/v1.5/Elements/Action.OpenUrl.IsEnabled.json new file mode 100644 index 0000000000..a6e7282b2f --- /dev/null +++ b/samples/v1.5/Elements/Action.OpenUrl.IsEnabled.json @@ -0,0 +1,25 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "Disabled OpenUrl Button", + "wrap": true + } + ], + "actions": [ + { + "type": "Action.OpenUrl", + "title": "Enabled", + "url": "https://adaptivecards.io/" + }, + { + "type": "Action.OpenUrl", + "title": "Disabled", + "isEnabled": false, + "url": "https://adaptivecards.io/" + } + ] +} diff --git a/samples/v1.5/Elements/Action.Mode.json b/samples/v1.5/Elements/Action.OpenUrl.Mode.json similarity index 100% rename from samples/v1.5/Elements/Action.Mode.json rename to samples/v1.5/Elements/Action.OpenUrl.Mode.json diff --git a/samples/v1.5/Elements/Action.OpenUrl.Tooltip.json b/samples/v1.5/Elements/Action.OpenUrl.Tooltip.json new file mode 100644 index 0000000000..c177518430 --- /dev/null +++ b/samples/v1.5/Elements/Action.OpenUrl.Tooltip.json @@ -0,0 +1,20 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "Check out our website!", + "wrap": true + } + ], + "actions": [ + { + "type": "Action.OpenUrl", + "title": "Click Here!", + "tooltip": "Adaptive Cards website", + "url": "https://adaptivecards.io/" + } + ] +} diff --git a/samples/v1.5/Elements/Action.ShowCard.IsEnabled.json b/samples/v1.5/Elements/Action.ShowCard.IsEnabled.json new file mode 100644 index 0000000000..ed33a53f2c --- /dev/null +++ b/samples/v1.5/Elements/Action.ShowCard.IsEnabled.json @@ -0,0 +1,43 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "Disabled Show Card", + "wrap": true + } + ], + "actions": [ + { + "type": "Action.ShowCard", + "title": "Enabled", + "card": { + "type": "AdaptiveCard", + "body": [ + { + "type": "TextBlock", + "text": "You can see this show card!", + "wrap": true + } + ] + } + }, + { + "type": "Action.ShowCard", + "title": "Disabled", + "card": { + "type": "AdaptiveCard", + "body": [ + { + "type": "TextBlock", + "text": "You cannot see this show card.", + "wrap": true + } + ] + }, + "isEnabled": false + } + ] +} diff --git a/samples/v1.5/Elements/Action.ShowCard.Mode.json b/samples/v1.5/Elements/Action.ShowCard.Mode.json new file mode 100644 index 0000000000..b9fea08d34 --- /dev/null +++ b/samples/v1.5/Elements/Action.ShowCard.Mode.json @@ -0,0 +1,63 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "Please confirm your data:", + "wrap": true, + "style": "heading" + }, + { + "type": "FactSet", + "facts": [ + { + "title": "First Name", + "value": "John" + }, + { + "title": "Last Name", + "value": "Smith" + }, + { + "title": "Phone number ", + "value": "(555) 555-5555" + } + ] + } + ], + "actions": [ + { + "type": "Action.Execute", + "title": "Confirm data" + }, + { + "type": "Action.Execute", + "title": "Edit data", + "data": "edit", + "mode": "secondary" + }, + { + "type": "Action.Execute", + "title": "Delete data", + "data": "delete", + "mode": "secondary" + }, + { + "type": "Action.ShowCard", + "title": "More information", + "card": { + "type": "AdaptiveCard", + "body": [ + { + "type": "TextBlock", + "text": "The data shown above is what we have on file for you. Please confirm whether this data is correct.", + "wrap": true + } + ] + }, + "mode": "secondary" + } + ] +} diff --git a/samples/v1.5/Elements/Action.ShowCard.Tooltip.json b/samples/v1.5/Elements/Action.ShowCard.Tooltip.json new file mode 100644 index 0000000000..7aa395eb1d --- /dev/null +++ b/samples/v1.5/Elements/Action.ShowCard.Tooltip.json @@ -0,0 +1,31 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "Our new product is awesome!", + "wrap": true, + "size": "ExtraLarge" + } + ], + "actions": [ + { + "type": "Action.ShowCard", + "title": "Terms and Conditions", + "card": { + "type": "AdaptiveCard", + "body": [ + { + "type": "TextBlock", + "text": "Here's some fine print for you to read. Don't break any laws! We will also not break any laws!", + "wrap": true, + "size": "Small" + } + ] + }, + "tooltip": "Click here to view the details of our terms and conditions." + } + ] +} \ No newline at end of file diff --git a/samples/v1.5/Elements/Action.Submit.IsEnabled.json b/samples/v1.5/Elements/Action.Submit.IsEnabled.json new file mode 100644 index 0000000000..8ab5029ae0 --- /dev/null +++ b/samples/v1.5/Elements/Action.Submit.IsEnabled.json @@ -0,0 +1,23 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "Disabled Submit Button", + "wrap": true + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "Enabled" + }, + { + "type": "Action.Submit", + "title": "Disabled", + "isEnabled": false + } + ] +} \ No newline at end of file diff --git a/samples/v1.5/Elements/Action.Submit.Mode.json b/samples/v1.5/Elements/Action.Submit.Mode.json new file mode 100644 index 0000000000..1d074599d8 --- /dev/null +++ b/samples/v1.5/Elements/Action.Submit.Mode.json @@ -0,0 +1,48 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "Please confirm your data:", + "wrap": true, + "style": "heading" + }, + { + "type": "FactSet", + "facts": [ + { + "title": "First Name", + "value": "John" + }, + { + "title": "Last Name", + "value": "Smith" + }, + { + "title": "Phone number ", + "value": "(555) 555-5555" + } + ] + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "Confirm data" + }, + { + "type": "Action.Submit", + "title": "Edit data", + "data": "edit", + "mode": "secondary" + }, + { + "type": "Action.Submit", + "title": "Delete data", + "data": "delete", + "mode": "secondary" + } + ] +} diff --git a/samples/v1.5/Elements/Action.Submit.Tooltip.json b/samples/v1.5/Elements/Action.Submit.Tooltip.json new file mode 100644 index 0000000000..bea8251acf --- /dev/null +++ b/samples/v1.5/Elements/Action.Submit.Tooltip.json @@ -0,0 +1,19 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "label": "Please enter your name below:", + "type": "Input.Text", + "id": "name" + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "Submit", + "tooltip": "Click here to add your name to the waiting list." + } + ] +} diff --git a/samples/v1.5/Elements/AdaptiveCard.Rtl.json b/samples/v1.5/Elements/AdaptiveCard.Rtl.json new file mode 100644 index 0000000000..60b5bf2c47 --- /dev/null +++ b/samples/v1.5/Elements/AdaptiveCard.Rtl.json @@ -0,0 +1,23 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "rtl": true, + "body": [ + { + "type": "TextBlock", + "text": "هذه كتلة نص", + "wrap": true + }, + { + "type": "TextBlock", + "text": "זהו בלוק טקסט", + "wrap": true + }, + { + "type": "TextBlock", + "text": "This is a text block", + "wrap": true + } + ] +} diff --git a/samples/v1.5/Elements/Input.Text.PasswordStyle.json b/samples/v1.5/Elements/Input.Text.PasswordStyle.json new file mode 100644 index 0000000000..d372524201 --- /dev/null +++ b/samples/v1.5/Elements/Input.Text.PasswordStyle.json @@ -0,0 +1,21 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "Input.Text", + "id": "id0", + "style": "password", + "label": "Input.Text With Password Style", + "regex": "^.{8,20}$", + "errorMessage": "Password must be between 8 and 20 characters" + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "OK" + } + ] +} diff --git a/samples/v1.5/Elements/Table.json b/samples/v1.5/Elements/Table.json index 826ffe0225..d82415212d 100644 --- a/samples/v1.5/Elements/Table.json +++ b/samples/v1.5/Elements/Table.json @@ -63,7 +63,7 @@ "cells": [ { "type": "TableCell", - "style": "good", + "style": "good", "items": [ { "type": "TextBlock", @@ -74,7 +74,7 @@ }, { "type": "TableCell", - "style": "warning", + "style": "warning", "items": [ { "type": "TextBlock", @@ -85,7 +85,7 @@ }, { "type": "TableCell", - "style": "accent", + "style": "accent", "items": [ { "type": "TextBlock", @@ -101,7 +101,7 @@ "cells": [ { "type": "TableCell", - "style": "good", + "style": "good", "items": [ { "type": "TextBlock", @@ -112,7 +112,7 @@ }, { "type": "TableCell", - "style": "accent", + "style": "accent", "items": [ { "type": "TextBlock", @@ -123,7 +123,7 @@ }, { "type": "TableCell", - "style": "attention", + "style": "attention", "items": [ { "type": "TextBlock", @@ -135,140 +135,140 @@ ] } ] - }, - { - "type": "Table", - "gridStyle": "accent", - "firstRowAsHeaders": true, - "showGridLines" : false, - "columns": [ - { - "width": 1 - }, - { - "width": 1 - }, - { - "width": 3 - } - ], - "rows": [ - { - "type": "TableRow", - "cells": [ - { - "type": "TableCell", - "items": [ - { - "type": "TextBlock", - "text": "Name", - "wrap": true, - "weight": "Bolder" - } - ] - }, - { - "type": "TableCell", - "items": [ - { - "type": "TextBlock", - "text": "Type", - "wrap": true, - "weight": "Bolder" - } - ] - }, - { - "type": "TableCell", - "items": [ - { - "type": "TextBlock", - "text": "Description", - "wrap": true, - "weight": "Bolder" - } - ] - } - ], - "style": "accent" - }, - { - "type": "TableRow", - "cells": [ - { - "type": "TableCell", - "style": "good", - "items": [ - { - "type": "TextBlock", - "text": "columns", - "wrap": true - } - ] - }, - { - "type": "TableCell", - "style": "warning", - "items": [ - { - "type": "TextBlock", - "text": "ColumnDefinition[]", - "wrap": true - } - ] - }, - { - "type": "TableCell", - "style": "accent", - "items": [ - { - "type": "TextBlock", - "text": "Defines the table's columns (number of columns, and column sizes).", - "wrap": true - } - ] - } - ] - }, - { - "type": "TableRow", - "cells": [ - { - "type": "TableCell", - "style": "good", - "items": [ - { - "type": "TextBlock", - "text": "rows", - "wrap": true - } - ] - }, - { - "type": "TableCell", - "style": "accent", - "items": [ - { - "type": "TextBlock", - "text": "TableRow[]", - "wrap": true - } - ] - }, - { - "type": "TableCell", - "style": "attention", - "items": [ - { - "type": "TextBlock", - "text": "Defines the rows of the Table, each being a collection of cells. Rows are not required, which allows empty Tables to be generated via templating without breaking the rendering of the whole card.", - "wrap": true - } - ] - } - ] - } - ] - } + }, + { + "type": "Table", + "gridStyle": "accent", + "firstRowAsHeaders": true, + "showGridLines" : false, + "columns": [ + { + "width": 1 + }, + { + "width": 1 + }, + { + "width": 3 + } + ], + "rows": [ + { + "type": "TableRow", + "cells": [ + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "Name", + "wrap": true, + "weight": "Bolder" + } + ] + }, + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "Type", + "wrap": true, + "weight": "Bolder" + } + ] + }, + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "Description", + "wrap": true, + "weight": "Bolder" + } + ] + } + ], + "style": "accent" + }, + { + "type": "TableRow", + "cells": [ + { + "type": "TableCell", + "style": "good", + "items": [ + { + "type": "TextBlock", + "text": "columns", + "wrap": true + } + ] + }, + { + "type": "TableCell", + "style": "warning", + "items": [ + { + "type": "TextBlock", + "text": "ColumnDefinition[]", + "wrap": true + } + ] + }, + { + "type": "TableCell", + "style": "accent", + "items": [ + { + "type": "TextBlock", + "text": "Defines the table's columns (number of columns, and column sizes).", + "wrap": true + } + ] + } + ] + }, + { + "type": "TableRow", + "cells": [ + { + "type": "TableCell", + "style": "good", + "items": [ + { + "type": "TextBlock", + "text": "rows", + "wrap": true + } + ] + }, + { + "type": "TableCell", + "style": "accent", + "items": [ + { + "type": "TextBlock", + "text": "TableRow[]", + "wrap": true + } + ] + }, + { + "type": "TableCell", + "style": "attention", + "items": [ + { + "type": "TextBlock", + "text": "Defines the rows of the Table, each being a collection of cells. Rows are not required, which allows empty Tables to be generated via templating without breaking the rendering of the whole card.", + "wrap": true + } + ] + } + ] + } + ] + } ] } diff --git a/samples/v1.5/Scenarios/ApplicationLogin.json b/samples/v1.5/Scenarios/ApplicationLogin.json new file mode 100644 index 0000000000..cdd212e18c --- /dev/null +++ b/samples/v1.5/Scenarios/ApplicationLogin.json @@ -0,0 +1,47 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "size": "Medium", + "weight": "Bolder", + "text": "Application Login", + "horizontalAlignment": "Center", + "wrap": true, + "style": "heading" + }, + { + "type": "TextBlock", + "text": "Username", + "wrap": true + }, + { + "type": "Input.Text", + "style": "text", + "id": "UserVal", + "isRequired": true + }, + { + "type": "TextBlock", + "text": "Password", + "wrap": true + }, + { + "type": "Input.Text", + "id": "PassVal", + "style": "password", + "isRequired": true + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "Login", + "data": { + "id": "LoginVal" + } + } + ] +} \ No newline at end of file diff --git a/samples/v1.5/Scenarios/FlightUpdateTable.json b/samples/v1.5/Scenarios/FlightUpdateTable.json new file mode 100644 index 0000000000..6017a23ff3 --- /dev/null +++ b/samples/v1.5/Scenarios/FlightUpdateTable.json @@ -0,0 +1,261 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "Table", + "columns": [ + { + "width": 1 + }, + { + "width": 1 + }, + { + "width": 1 + } + ], + "rows": [ + { + "type": "TableRow", + "cells": [ + { + "type": "TableCell", + "items": [ + { + "type": "Image", + "size": "Small", + "url": "https://adaptivecards.io/content/airplane.png" + } + ] + }, + { + "type": "TableCell" + }, + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "Flight Status", + "horizontalAlignment": "Right", + "isSubtle": true, + "wrap": true + }, + { + "type": "TextBlock", + "text": "DELAYED", + "horizontalAlignment": "Right", + "spacing": "None", + "size": "Large", + "color": "Attention", + "wrap": true + } + ] + } + ] + }, + { + "type": "TableRow", + "cells": [ + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "Passengers", + "isSubtle": true, + "weight": "Bolder", + "wrap": true, + "spacing": "None" + }, + { + "type": "TextBlock", + "text": "Sarah Hum", + "spacing": "Small", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Jeremy Goldberg", + "spacing": "Small", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Evan Litvak", + "spacing": "Small", + "wrap": true + } + ] + }, + { + "type": "TableCell" + }, + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "Seat", + "horizontalAlignment": "Right", + "isSubtle": true, + "weight": "Bolder", + "wrap": true + }, + { + "type": "TextBlock", + "text": "14A", + "horizontalAlignment": "Right", + "spacing": "Small", + "wrap": true + }, + { + "type": "TextBlock", + "text": "14B", + "horizontalAlignment": "Right", + "spacing": "Small", + "wrap": true + }, + { + "type": "TextBlock", + "text": "14C", + "horizontalAlignment": "Right", + "spacing": "Small", + "wrap": true + } + ] + } + ] + }, + { + "type": "TableRow", + "cells": [ + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "Flight", + "isSubtle": true, + "weight": "Bolder", + "wrap": true + }, + { + "type": "TextBlock", + "text": "KL605", + "spacing": "Small", + "wrap": true + } + ] + }, + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "Departs", + "isSubtle": true, + "horizontalAlignment": "Center", + "weight": "Bolder", + "wrap": true + }, + { + "type": "TextBlock", + "text": "2:20 AM", + "color": "Attention", + "weight": "Bolder", + "horizontalAlignment": "Center", + "spacing": "Small", + "wrap": true + } + ] + }, + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "Arrives", + "isSubtle": true, + "horizontalAlignment": "Right", + "weight": "Bolder", + "wrap": true + }, + { + "type": "TextBlock", + "text": "8:20 PM", + "color": "Attention", + "horizontalAlignment": "Right", + "weight": "Bolder", + "spacing": "Small", + "wrap": true + } + ] + } + ] + }, + { + "type": "TableRow", + "cells": [ + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "Amsterdam Airport", + "isSubtle": true, + "wrap": true + }, + { + "type": "TextBlock", + "text": "AMS", + "size": "ExtraLarge", + "color": "Accent", + "spacing": "None", + "wrap": true + } + ] + }, + { + "type": "TableCell", + "items": [ + { + "type": "Image", + "url": "https://adaptivecards.io/content/airplane.png", + "horizontalAlignment": "Center", + "size": "Small" + } + ], + "verticalContentAlignment": "Center" + }, + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "San Francisco Airport", + "isSubtle": true, + "horizontalAlignment": "Right", + "wrap": true + }, + { + "type": "TextBlock", + "text": "SFO", + "horizontalAlignment": "Right", + "size": "ExtraLarge", + "color": "Accent", + "spacing": "None", + "wrap": true + } + ] + } + ], + "spacing": "None" + } + ], + "showGridLines": false + } + ] +} diff --git a/samples/v1.5/Scenarios/InputFormWithLabels.json b/samples/v1.5/Scenarios/InputFormWithLabels.json deleted file mode 100644 index 336d301016..0000000000 --- a/samples/v1.5/Scenarios/InputFormWithLabels.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", - "type": "AdaptiveCard", - "version": "1.0", - "body": [ - { - "type": "ColumnSet", - "columns": [ - { - "type": "Column", - "width": 2, - "items": [ - { - "type": "TextBlock", - "text": "Tell us about yourself", - "weight": "bolder", - "style" : "heading", - "size": "medium", - "wrap": true - }, - { - "type": "TextBlock", - "text": "We just need a few more details to get you booked for the trip of a lifetime!", - "isSubtle": true, - "wrap": true - }, - { - "type": "TextBlock", - "text": "Don't worry, we'll never share or sell your information.", - "isSubtle": true, - "wrap": true, - "size": "small" - }, - { - "type": "Input.Text", - "id": "myName", - "label": "Your name (Last, First)", - "isRequired": true, - "regex": "^[A-Z][a-z]+, [A-Z][a-z]+$", - "errorMessage": "Please enter your name in the specified format" - }, - { - "type": "Input.Text", - "id": "myEmail", - "label": "Your email", - "regex": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+[.][A-Za-z0-9-]{2,4}$", - "isRequired": true, - "errorMessage": "Please enter a valid email address", - "style": "email" - }, - { - "type": "Input.Text", - "id": "myTel", - "label": "Phone Number (xxx-xxx-xxxx)", - "regex": "^[0-9]{3}-[0-9]{3}-[0-9]{4}$", - "errorMessage": "Invalid phone number. Use the specified format: 3 numbers, hyphen, 3 numbers, hyphen and 4 numbers", - "style": "tel" - } - ] - }, - { - "type": "Column", - "width": 1, - "items": [ - { - "type": "Image", - "url": "https://upload.wikimedia.org/wikipedia/commons/b/b2/Diver_Silhouette%2C_Great_Barrier_Reef.jpg", - "size": "auto", - "altText": "Diver in the Great Barrier Reef" - } - ] - } - ] - } - ], - "actions": [ - { - "type": "Action.Submit", - "title": "Submit" - } - ] -} diff --git a/samples/v1.5/Scenarios/InputFormWithRTL.json b/samples/v1.5/Scenarios/InputFormWithRTL.json new file mode 100644 index 0000000000..3ef5ccecb6 --- /dev/null +++ b/samples/v1.5/Scenarios/InputFormWithRTL.json @@ -0,0 +1,116 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "Please select your language:" + } + ], + "actions": [ + { + "type": "Action.ShowCard", + "title": "English", + "card": { + "type": "AdaptiveCard", + "body": [ + { + "type": "TextBlock", + "size": "medium", + "weight": "bolder", + "text": "Registration Form", + "horizontalAlignment": "center", + "wrap": true, + "style": "heading" + }, + { + "type": "Input.Text", + "label": "Name", + "style": "text", + "id": "SimpleValENG", + "isRequired": true, + "errorMessage": "Name is required" + }, + { + "type": "Input.Text", + "label": "Email", + "style": "email", + "id": "EmailValENG" + }, + { + "type": "Input.Text", + "label": "Phone", + "style": "tel", + "id": "TelValENG" + }, + { + "type": "Input.Text", + "label": "Comments", + "style": "text", + "isMultiline": true, + "id": "MultiLineValENG" + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "Submit" + } + ] + } + }, + { + "type": "Action.ShowCard", + "title": "عربي", + "card": { + "type": "AdaptiveCard", + "rtl": true, + "body": [ + { + "type": "TextBlock", + "size": "medium", + "weight": "bolder", + "text": "إستمارة تسجيل", + "horizontalAlignment": "center", + "wrap": true, + "style": "heading" + }, + { + "type": "Input.Text", + "label": "اسم", + "style": "text", + "id": "SimpleValARA", + "isRequired": true, + "errorMessage": "مطلوب اسم" + }, + { + "type": "Input.Text", + "label": "بريد الالكتروني", + "style": "email", + "id": "EmailValARA" + }, + { + "type": "Input.Text", + "label": "هاتف", + "style": "tel", + "id": "TelValARA" + }, + { + "type": "Input.Text", + "label": "تعليقات", + "style": "text", + "isMultiline": true, + "id": "MultiLineValARA" + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "يقدم" + } + ] + } + } + ] +} \ No newline at end of file diff --git a/samples/v1.5/Scenarios/OrderConfirmation.json b/samples/v1.5/Scenarios/OrderConfirmation.json new file mode 100644 index 0000000000..eb104c2ede --- /dev/null +++ b/samples/v1.5/Scenarios/OrderConfirmation.json @@ -0,0 +1,68 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "Please confirm your order:", + "wrap": true, + "style": "heading" + }, + { + "type": "FactSet", + "facts": [ + { + "title": "Name", + "value": "John Smith" + }, + { + "title": "Phone number", + "value": "(555) 555-5555" + } + ] + }, + { + "type": "Container", + "items": [ + { + "type": "FactSet", + "facts": [ + { + "title": "1x", + "value": "Steak" + }, + { + "title": "2x", + "value": "Side Rice" + }, + { + "title": "1x", + "value": "Soft Drink" + } + ], + "spacing": "Small" + } + ], + "spacing": "Small" + } + ], + "actions": [ + { + "type": "Action.Execute", + "title": "Place Order" + }, + { + "type": "Action.Execute", + "title": "Edit Order", + "data": "edit", + "mode": "secondary" + }, + { + "type": "Action.Execute", + "title": "Save Order", + "data": "save", + "mode": "secondary" + } + ] +} diff --git a/samples/v1.5/Scenarios/OrderDelivery.json b/samples/v1.5/Scenarios/OrderDelivery.json new file mode 100644 index 0000000000..68aef928f6 --- /dev/null +++ b/samples/v1.5/Scenarios/OrderDelivery.json @@ -0,0 +1,70 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.5", + "body": [ + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "width": 2, + "items": [ + { + "type": "TextBlock", + "text": "Redmond, WA", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Malt & Vine", + "weight": "bolder", + "size": "extraLarge", + "spacing": "none", + "wrap": true + }, + { + "type": "TextBlock", + "text": "4.5 stars (176 reviews) · mid-priced", + "isSubtle": true, + "spacing": "none", + "wrap": true + }, + { + "type": "TextBlock", + "text": "**Blaire S.** said \"Great concept and a wide selection of beers both on tap and bottled! Smaller wine selection than I wanted, but the variety of beers certainly made up for that. Although I didn't order anything, my boyfriend got a beer and he loved it. Their prices are fair too. \n\nThe concept is really awesome. It's a bar/store that you can bring outside food into. The place was pretty packed tonight. I wish we had stayed for more than one drink. I would have loved to sample everything!\"", + "size": "small", + "wrap": true, + "maxLines": 3 + } + ] + }, + { + "type": "Column", + "width": 1, + "items": [ + { + "type": "Image", + "url": "https://picsum.photos/300?image=882", + "size": "auto", + "altText": "Seated guest drinking a cup of coffee" + } + ] + } + ] + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "Pickup", + "tooltip": "Schedule order for pickup" + }, + { + "type": "Action.Submit", + "title": "Delivery", + "isEnabled": false, + "tooltip": "Your location is too far for delivery" + } + ] +} diff --git a/samples/v1.5/Scenarios/RestaurantOrder.json b/samples/v1.5/Scenarios/RestaurantOrder.json new file mode 100644 index 0000000000..ffbd915679 --- /dev/null +++ b/samples/v1.5/Scenarios/RestaurantOrder.json @@ -0,0 +1,105 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "Malt & Vine Order Form", + "size": "Large", + "wrap": true, + "weight": "Bolder" + }, + { + "type": "Input.ChoiceSet", + "id": "EntreeSelectVal", + "label": "Which entree would you like?", + "style": "filtered", + "isRequired": true, + "errorMessage": "This is a required input", + "placeholder": "Please choose", + "choices": [ + { + "title": "Steak", + "value": "1" + }, + { + "title": "Chicken", + "value": "2" + }, + { + "title": "Tofu", + "value": "3" + } + ] + }, + { + "type": "Input.ChoiceSet", + "id": "SideVal", + "label": "Which side would you like?", + "style": "filtered", + "isRequired": true, + "errorMessage": "This is a required input", + "placeholder": "Please choose", + "choices": [ + { + "title": "Baked Potato", + "value": "1" + }, + { + "title": "Rice", + "value": "2" + }, + { + "title": "Vegetables", + "value": "3" + }, + { + "title": "Noodles", + "value": "4" + }, + { + "title": "No Side", + "value": "5" + } + ] + }, + { + "type": "Input.ChoiceSet", + "id": "DrinkVal", + "label": "Which drink would you like?", + "style": "filtered", + "isRequired": true, + "errorMessage": "This is a required input", + "placeholder": "Please choose", + "choices": [ + { + "title": "Water", + "value": "1" + }, + { + "title": "Soft Drink", + "value": "2" + }, + { + "title": "Coffee", + "value": "3" + }, + { + "title": "Natural Juice", + "value": "4" + }, + { + "title": "No Drink", + "value": "5" + } + ] + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "Place Order" + } + ] +} \ No newline at end of file diff --git a/samples/v1.5/Elements/Action.IsEnabled.json b/samples/v1.5/Test/Action.IsEnabled.json similarity index 100% rename from samples/v1.5/Elements/Action.IsEnabled.json rename to samples/v1.5/Test/Action.IsEnabled.json diff --git a/samples/v1.5/Elements/Image.SelectAction.IsEnabled.json b/samples/v1.5/Test/Image.SelectAction.IsEnabled.json similarity index 100% rename from samples/v1.5/Elements/Image.SelectAction.IsEnabled.json rename to samples/v1.5/Test/Image.SelectAction.IsEnabled.json diff --git a/samples/v1.5/Test/Input.ChoiceSet.FilteredStyle.TestCard.json b/samples/v1.5/Test/Input.ChoiceSet.FilteredStyle.TestCard.json new file mode 100644 index 0000000000..f31834054a --- /dev/null +++ b/samples/v1.5/Test/Input.ChoiceSet.FilteredStyle.TestCard.json @@ -0,0 +1,124 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "Input.ChoiceSet", + "choices": [ + { + "title": "Apple Cider", + "value": "1" + }, + { + "title": "Grape Juice", + "value": "2" + }, + { + "title": "Banana Smoothie", + "value": "3" + }, + { + "title": "Orange Juice", + "value": "4" + } + ], + "value": "Banana Smoothie", + "label": "1.0 Compact Style", + "placeholder": "Click On Expand", + "id": "1" + }, + { + "type": "Container", + "items": [ + { + "type": "Input.ChoiceSet", + "choices": [ + { + "title": "Apple Cider", + "value": "1" + }, + { + "title": "Grape Juice", + "value": "2" + }, + { + "title": "Banana Smoothie", + "value": "3" + }, + { + "title": "Orange Juice", + "value": "4" + } + ], + "placeholder": "Type Some To Expand", + "style": "filtered", + "label": "1.5 Filtered Style", + "id": "2" + }, + { + "type": "Input.ChoiceSet", + "choices": [ + { + "title": "Should be able to type anything", + "value": "1" + }, + { + "title": "Validation should fail if typed input doesn't match choices", + "value": "2" + }, + { + "title": "Typing 'O' should show Banana Smoothie and Orange Juice.", + "value": "3" + } + ], + "placeholder": "Placeholder text", + "isMultiSelect": true, + "style": "expanded", + "wrap": true, + "label": "Check Lists", + "id": "7", + "isRequired": true + } + ] + }, + { + "type": "TextBlock", + "wrap": true, + "id": "4", + "text": "Setting both filtered style and multiline will ignore the style as this example" + }, + { + "type": "Input.ChoiceSet", + "choices": [ + { + "title": "Apple Cider", + "value": "1" + }, + { + "title": "Grape Juice", + "value": "2" + }, + { + "title": "Banana Smoothie", + "value": "3" + }, + { + "title": "Orange Juice", + "value": "4" + } + ], + "placeholder": "Placeholder text", + "style": "filtered", + "isMultiSelect": true, + "id": "3" + } + ], + "actions": [ + { + "type": "Action.Submit", + "id": "6", + "title": "Check" + } + ] +} diff --git a/samples/v1.5/Test/Input.Text.Password.IgnoresMultiline.json b/samples/v1.5/Test/Input.Text.Password.IgnoresMultiline.json new file mode 100644 index 0000000000..6b273a8a96 --- /dev/null +++ b/samples/v1.5/Test/Input.Text.Password.IgnoresMultiline.json @@ -0,0 +1,33 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "Both Input.Text elements should look the same as multiline is ignored for password", + "wrap": true + }, + { + "type": "Input.Text", + "id": "id0", + "placeholder": "password", + "style": "password", + "label": "Regular Input.Text With Password Style" + }, + { + "type": "Input.Text", + "id": "id1", + "placeholder": "password", + "style": "password", + "label": "Multiline Input.Text With Password Style", + "isMultiline": true + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "OK" + } + ] +} diff --git a/samples/v1.5/Test/PrimarySecondaryShowCards.json b/samples/v1.5/Test/PrimarySecondaryShowCards.json new file mode 100644 index 0000000000..6f24a53f39 --- /dev/null +++ b/samples/v1.5/Test/PrimarySecondaryShowCards.json @@ -0,0 +1,36 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "actions": [ + { + "type": "Action.ShowCard", + "title": "Primary Show Card Action", + "card": { + "type": "AdaptiveCard", + "body": [ + { + "type": "TextBlock", + "text": "Primary Show Card", + "wrap": true + } + ] + } + }, + { + "type": "Action.ShowCard", + "title": "Secondary Show Card Action", + "card": { + "type": "AdaptiveCard", + "body": [ + { + "type": "TextBlock", + "text": "Secondary Show Card", + "wrap": true + } + ] + }, + "mode": "secondary" + } + ] +} diff --git a/samples/v1.5/Elements/RichTextBlock.TextRun.SelectAction.IsEnabled.json b/samples/v1.5/Test/RichTextBlock.TextRun.SelectAction.IsEnabled.json similarity index 100% rename from samples/v1.5/Elements/RichTextBlock.TextRun.SelectAction.IsEnabled.json rename to samples/v1.5/Test/RichTextBlock.TextRun.SelectAction.IsEnabled.json diff --git a/samples/v1.5/Test/StandaloneTableRow.json b/samples/v1.5/Test/StandaloneTableRow.json new file mode 100644 index 0000000000..a66e440584 --- /dev/null +++ b/samples/v1.5/Test/StandaloneTableRow.json @@ -0,0 +1,47 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "Below this is an empty TableRow not parented to a Table.", + "wrap": true + }, + { + "type": "TableRow", + "horizontalContentAlignment": "center" + }, + { + "type": "TextBlock", + "text": "Below this is a TableRow containing a cell, all of which is not parented to a Table.", + "wrap": true + }, + { + "type": "TableRow", + "horizontalContentAlignment": "center", + "cells": [ + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "TableCell inside an orphaned TableRow", + "wrap": true + } + ] + } + ] + }, + { + "type": "TableCell", + "items": [ + { + "type": "TextBlock", + "text": "Inside an orphaned TableCell", + "wrap": true + } + ] + } + ] +} diff --git a/samples/v1.5/Test/TableImpliedType.json b/samples/v1.5/Test/TableImpliedType.json new file mode 100644 index 0000000000..7b2efb8c71 --- /dev/null +++ b/samples/v1.5/Test/TableImpliedType.json @@ -0,0 +1,29 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "Table", + "columns": [ + { + "width": 1 + } + ], + "rows": [ + { + "cells": [ + { + "items": [ + { + "type": "TextBlock", + "text": "Text goes here." + } + ] + } + ] + } + ] + } + ] +} diff --git a/samples/v1.5/Test/TooltipTestCard.json b/samples/v1.5/Test/TooltipTestCard.json index 4941f684e8..7c79a33432 100644 --- a/samples/v1.5/Test/TooltipTestCard.json +++ b/samples/v1.5/Test/TooltipTestCard.json @@ -220,6 +220,107 @@ "tooltip": "Tooltip", "title": "Title" } + }, + { + "type": "RichTextBlock", + "inlines": [ + { + "type": "TextRun", + "text": "RichTextBlock with SelectAction, Action has title and tooltip (tooltip should be used as tooltip).", + "color": "good", + "selectAction": { + "type": "Action.Submit", + "tooltip": "Tooltip", + "title": "Title" + } + }, + { + "type": "TextRun", + "text": " -Should not trigger any actions- ", + "weight": "bolder" + }, + { + "type": "TextRun", + "text": "RichTextBlock with SelectAction, Action has title and no tooltip (title should be used as tooltip).", + "color": "warning", + "selectAction": { + "type": "Action.Submit", + "title": "title", + "data": { + "x": "hello world!" + } + } + }, + { + "type": "TextRun", + "text": " -Should not trigger any actions- ", + "weight": "bolder" + } + ] + }, + { + "type": "TextBlock", + "text": "Image has SelectAction. No title or tooltip (no tooltip)", + "weight": "bolder", + "wrap": true + }, + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/1.png", + "size": "Large", + "altText": "Image Alt Text.", + "tooltip": "tooltip", + "selectAction": { + "type": "Action.Submit" + } + }, + { + "type": "TextBlock", + "text": "Image has SelectAction. Action has title and tooltip. (tooltip should be used as tooltip)", + "weight": "bolder", + "wrap": true + }, + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/1.png", + "size": "Large", + "altText": "Image Alt Text.", + "tooltip": "tooltip", + "selectAction": { + "type": "Action.Submit", + "title": "title", + "tooltip": "tooltip" + } + }, + { + "type": "TextBlock", + "text": "Image has SelectAction. Action has title. (title should be used as tooltip)", + "weight": "bolder", + "wrap": true + }, + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/1.png", + "size": "Large", + "altText": "Image Alt Text.", + "selectAction": { + "type": "Action.Submit", + "title": "title" + } + }, + { + "type": "TextBlock", + "text": "Adaptive Card has SelectAction Action has tooltip. (tooltip should appear)", + "weight": "bolder", + "wrap": true } - ] + ], + "selectAction": { + "type": "Action.Submit", + "title": "title", + "data": { + "Card Level Action?": "Yes" + }, + "tooltip": "Card Level Tooltip" + } } diff --git a/samples/v1.6/Elements/Carousel.ScenarioCards.Timer.json b/samples/v1.6/Elements/Carousel.ScenarioCards.Timer.json new file mode 100644 index 0000000000..5d630432bb --- /dev/null +++ b/samples/v1.6/Elements/Carousel.ScenarioCards.Timer.json @@ -0,0 +1,464 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.6", + "body": { + "type": "Carousel", + "timer": 5000, + "pages": [ + { + "type": "CarouselPage", + "id": "firstCarouselPage", + "selectAction": { + "type": "Action.OpenUrl", + "title": "Click for more information about the first carousel page!", + "url": "https://adaptivecards.io/" + }, + "items": [ + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "width": "auto", + "items": [ + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/3.png", + "size": "medium", + "altText": "Shades cat team emblem" + }, + { + "type": "TextBlock", + "text": "SHADES", + "horizontalAlignment": "center", + "weight": "bolder", + "wrap": true + } + ] + }, + { + "type": "Column", + "width": "stretch", + "separator": true, + "spacing": "medium", + "items": [ + { + "type": "TextBlock", + "text": "Sat, Aug 31, 2019", + "horizontalAlignment": "center", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Final", + "spacing": "none", + "horizontalAlignment": "center", + "wrap": true + }, + { + "type": "TextBlock", + "text": "45 - 7", + "size": "extraLarge", + "horizontalAlignment": "center", + "wrap": true + } + ] + }, + { + "type": "Column", + "width": "auto", + "separator": true, + "spacing": "medium", + "items": [ + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/2.png", + "size": "medium", + "horizontalAlignment": "center", + "altText": "Skins cat team emblem" + }, + { + "type": "TextBlock", + "text": "SKINS", + "horizontalAlignment": "center", + "weight": "bolder", + "wrap": true + } + ] + } + ] + } + ] + }, + { + "type": "CarouselPage", + "id": "theSecondCarouselPage", + "items": [ + { + "type": "Container", + "items": [ + { + "type": "TextBlock", + "text": "Microsoft Corporation", + "size": "Medium", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Nasdaq Global Select: MSFT", + "isSubtle": true, + "spacing": "None", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Fri, May 3, 2019 1:00 PM", + "wrap": true + } + ] + }, + { + "type": "Container", + "spacing": "none", + "items": [ + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "width": "stretch", + "items": [ + { + "type": "TextBlock", + "text": "128.90", + "size": "extraLarge", + "wrap": true + }, + { + "type": "TextBlock", + "text": "▲ 2.69 USD (2.13%)", + "color": "good", + "spacing": "none", + "wrap": true + } + ] + }, + { + "type": "Column", + "width": "auto", + "items": [ + { + "type": "FactSet", + "facts": [ + { + "title": "Open", + "value": "127.42" + }, + { + "title": "High", + "value": "129.43" + }, + { + "title": "Low", + "value": "127.25" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "CarouselPage", + "id": "last-carousel-page", + "items": [ + { + "type": "TextBlock", + "text": "Redmond, WA", + "size": "large", + "isSubtle": true, + "wrap": true + }, + { + "type": "TextBlock", + "text": "Mon, Nov 4, 2019 6:21 PM", + "spacing": "none", + "wrap": true + }, + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "width": "auto", + "items": [ + { + "type": "Image", + "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png", + "size": "small", + "altText": "Mostly cloudy weather" + } + ] + }, + { + "type": "Column", + "width": "auto", + "items": [ + { + "type": "TextBlock", + "text": "46", + "size": "extraLarge", + "spacing": "none", + "wrap": true + } + ] + }, + { + "type": "Column", + "width": "stretch", + "items": [ + { + "type": "TextBlock", + "text": "°F", + "weight": "bolder", + "spacing": "small", + "wrap": true + } + ] + }, + { + "type": "Column", + "width": "stretch", + "items": [ + { + "type": "TextBlock", + "text": "Hi 50", + "horizontalAlignment": "left", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Lo 41", + "horizontalAlignment": "left", + "spacing": "none", + "wrap": true + } + ] + } + ] + } + ] + }, + { + "type": "CarouselPage", + "id": "theFourthCarouselPage", + "items": [ + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "width": "35", + "items": [ + { + "type": "Image", + "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png", + "size": "stretch", + "altText": "Mostly cloudy weather" + } + ] + }, + { + "type": "Column", + "width": "65", + "items": [ + { + "type": "TextBlock", + "text": "Tue, Nov 5, 2019", + "weight": "bolder", + "size": "large", + "wrap": true + }, + { + "type": "TextBlock", + "text": "32 / 50", + "size": "medium", + "spacing": "none", + "wrap": true + }, + { + "type": "TextBlock", + "text": "31% chance of rain", + "spacing": "none", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Winds 4.4 mph SSE", + "spacing": "none", + "wrap": true + } + ] + } + ] + }, + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "width": "20", + "items": [ + { + "type": "TextBlock", + "horizontalAlignment": "center", + "wrap": true, + "text": "Wednesday" + }, + { + "type": "Image", + "size": "auto", + "url": "https://messagecardplayground.azurewebsites.net/assets/Drizzle-Square.png", + "altText": "Drizzly weather" + }, + { + "type": "FactSet", + "horizontalAlignment": "right", + "facts": [ + { + "title": "High", + "value": "50" + }, + { + "title": "Low", + "value": "32" + } + ] + } + ], + "selectAction": { + "type": "Action.OpenUrl", + "title": "View Wednesday", + "url": "https://www.microsoft.com" + } + }, + { + "type": "Column", + "width": "20", + "items": [ + { + "type": "TextBlock", + "horizontalAlignment": "center", + "wrap": true, + "text": "Thursday" + }, + { + "type": "Image", + "size": "auto", + "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png", + "altText": "Mostly cloudy weather" + }, + { + "type": "FactSet", + "facts": [ + { + "title": "High", + "value": "50" + }, + { + "title": "Low", + "value": "32" + } + ] + } + ], + "selectAction": { + "type": "Action.OpenUrl", + "title": "View Thursday", + "url": "https://www.microsoft.com" + } + }, + { + "type": "Column", + "width": "20", + "items": [ + { + "type": "TextBlock", + "horizontalAlignment": "center", + "wrap": true, + "text": "Friday" + }, + { + "type": "Image", + "size": "auto", + "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png", + "altText": "Mostly cloudy weather" + }, + { + "type": "FactSet", + "facts": [ + { + "title": "High", + "value": "59" + }, + { + "title": "Low", + "value": "32" + } + ] + } + ], + "selectAction": { + "type": "Action.OpenUrl", + "title": "View Friday", + "url": "https://www.microsoft.com" + } + }, + { + "type": "Column", + "width": "20", + "items": [ + { + "type": "TextBlock", + "horizontalAlignment": "center", + "wrap": true, + "text": "Saturday" + }, + { + "type": "Image", + "size": "auto", + "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png", + "altText": "Mostly cloudy weather" + }, + { + "type": "FactSet", + "facts": [ + { + "title": "High", + "value": "50" + }, + { + "title": "Low", + "value": "32" + } + ] + } + ], + "selectAction": { + "type": "Action.OpenUrl", + "title": "View Saturday", + "url": "https://www.microsoft.com" + } + } + ] + } + ] + } + ] + } +} diff --git a/samples/v1.6/Elements/Carousel.ScenarioCards.json b/samples/v1.6/Elements/Carousel.ScenarioCards.json new file mode 100644 index 0000000000..0b6761f181 --- /dev/null +++ b/samples/v1.6/Elements/Carousel.ScenarioCards.json @@ -0,0 +1,463 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.6", + "body": { + "type": "Carousel", + "pages": [ + { + "type": "CarouselPage", + "id": "firstCarouselPage", + "selectAction": { + "type": "Action.OpenUrl", + "title": "Click for more information about the first carousel page!", + "url": "https://adaptivecards.io/" + }, + "items": [ + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "width": "auto", + "items": [ + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/3.png", + "size": "medium", + "altText": "Shades cat team emblem" + }, + { + "type": "TextBlock", + "text": "SHADES", + "horizontalAlignment": "center", + "weight": "bolder", + "wrap": true + } + ] + }, + { + "type": "Column", + "width": "stretch", + "separator": true, + "spacing": "medium", + "items": [ + { + "type": "TextBlock", + "text": "Sat, Aug 31, 2019", + "horizontalAlignment": "center", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Final", + "spacing": "none", + "horizontalAlignment": "center", + "wrap": true + }, + { + "type": "TextBlock", + "text": "45 - 7", + "size": "extraLarge", + "horizontalAlignment": "center", + "wrap": true + } + ] + }, + { + "type": "Column", + "width": "auto", + "separator": true, + "spacing": "medium", + "items": [ + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/2.png", + "size": "medium", + "horizontalAlignment": "center", + "altText": "Skins cat team emblem" + }, + { + "type": "TextBlock", + "text": "SKINS", + "horizontalAlignment": "center", + "weight": "bolder", + "wrap": true + } + ] + } + ] + } + ] + }, + { + "type": "CarouselPage", + "id": "theSecondCarouselPage", + "items": [ + { + "type": "Container", + "items": [ + { + "type": "TextBlock", + "text": "Microsoft Corporation", + "size": "Medium", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Nasdaq Global Select: MSFT", + "isSubtle": true, + "spacing": "None", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Fri, May 3, 2019 1:00 PM", + "wrap": true + } + ] + }, + { + "type": "Container", + "spacing": "none", + "items": [ + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "width": "stretch", + "items": [ + { + "type": "TextBlock", + "text": "128.90", + "size": "extraLarge", + "wrap": true + }, + { + "type": "TextBlock", + "text": "▲ 2.69 USD (2.13%)", + "color": "good", + "spacing": "none", + "wrap": true + } + ] + }, + { + "type": "Column", + "width": "auto", + "items": [ + { + "type": "FactSet", + "facts": [ + { + "title": "Open", + "value": "127.42" + }, + { + "title": "High", + "value": "129.43" + }, + { + "title": "Low", + "value": "127.25" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "CarouselPage", + "id": "last-carousel-page", + "items": [ + { + "type": "TextBlock", + "text": "Redmond, WA", + "size": "large", + "isSubtle": true, + "wrap": true + }, + { + "type": "TextBlock", + "text": "Mon, Nov 4, 2019 6:21 PM", + "spacing": "none", + "wrap": true + }, + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "width": "auto", + "items": [ + { + "type": "Image", + "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png", + "size": "small", + "altText": "Mostly cloudy weather" + } + ] + }, + { + "type": "Column", + "width": "auto", + "items": [ + { + "type": "TextBlock", + "text": "46", + "size": "extraLarge", + "spacing": "none", + "wrap": true + } + ] + }, + { + "type": "Column", + "width": "stretch", + "items": [ + { + "type": "TextBlock", + "text": "°F", + "weight": "bolder", + "spacing": "small", + "wrap": true + } + ] + }, + { + "type": "Column", + "width": "stretch", + "items": [ + { + "type": "TextBlock", + "text": "Hi 50", + "horizontalAlignment": "left", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Lo 41", + "horizontalAlignment": "left", + "spacing": "none", + "wrap": true + } + ] + } + ] + } + ] + }, + { + "type": "CarouselPage", + "id": "theFourthCarouselPage", + "items": [ + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "width": "35", + "items": [ + { + "type": "Image", + "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png", + "size": "stretch", + "altText": "Mostly cloudy weather" + } + ] + }, + { + "type": "Column", + "width": "65", + "items": [ + { + "type": "TextBlock", + "text": "Tue, Nov 5, 2019", + "weight": "bolder", + "size": "large", + "wrap": true + }, + { + "type": "TextBlock", + "text": "32 / 50", + "size": "medium", + "spacing": "none", + "wrap": true + }, + { + "type": "TextBlock", + "text": "31% chance of rain", + "spacing": "none", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Winds 4.4 mph SSE", + "spacing": "none", + "wrap": true + } + ] + } + ] + }, + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "width": "20", + "items": [ + { + "type": "TextBlock", + "horizontalAlignment": "center", + "wrap": true, + "text": "Wednesday" + }, + { + "type": "Image", + "size": "auto", + "url": "https://messagecardplayground.azurewebsites.net/assets/Drizzle-Square.png", + "altText": "Drizzly weather" + }, + { + "type": "FactSet", + "horizontalAlignment": "right", + "facts": [ + { + "title": "High", + "value": "50" + }, + { + "title": "Low", + "value": "32" + } + ] + } + ], + "selectAction": { + "type": "Action.OpenUrl", + "title": "View Wednesday", + "url": "https://www.microsoft.com" + } + }, + { + "type": "Column", + "width": "20", + "items": [ + { + "type": "TextBlock", + "horizontalAlignment": "center", + "wrap": true, + "text": "Thursday" + }, + { + "type": "Image", + "size": "auto", + "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png", + "altText": "Mostly cloudy weather" + }, + { + "type": "FactSet", + "facts": [ + { + "title": "High", + "value": "50" + }, + { + "title": "Low", + "value": "32" + } + ] + } + ], + "selectAction": { + "type": "Action.OpenUrl", + "title": "View Thursday", + "url": "https://www.microsoft.com" + } + }, + { + "type": "Column", + "width": "20", + "items": [ + { + "type": "TextBlock", + "horizontalAlignment": "center", + "wrap": true, + "text": "Friday" + }, + { + "type": "Image", + "size": "auto", + "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png", + "altText": "Mostly cloudy weather" + }, + { + "type": "FactSet", + "facts": [ + { + "title": "High", + "value": "59" + }, + { + "title": "Low", + "value": "32" + } + ] + } + ], + "selectAction": { + "type": "Action.OpenUrl", + "title": "View Friday", + "url": "https://www.microsoft.com" + } + }, + { + "type": "Column", + "width": "20", + "items": [ + { + "type": "TextBlock", + "horizontalAlignment": "center", + "wrap": true, + "text": "Saturday" + }, + { + "type": "Image", + "size": "auto", + "url": "https://messagecardplayground.azurewebsites.net/assets/Mostly%20Cloudy-Square.png", + "altText": "Mostly cloudy weather" + }, + { + "type": "FactSet", + "facts": [ + { + "title": "High", + "value": "50" + }, + { + "title": "Low", + "value": "32" + } + ] + } + ], + "selectAction": { + "type": "Action.OpenUrl", + "title": "View Saturday", + "url": "https://www.microsoft.com" + } + } + ] + } + ] + } + ] + } +} diff --git a/samples/v1.6/Elements/Carousel.json b/samples/v1.6/Elements/Carousel.json new file mode 100644 index 0000000000..7e8c5dd29c --- /dev/null +++ b/samples/v1.6/Elements/Carousel.json @@ -0,0 +1,62 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.6", + "body": { + "type": "Carousel", + "timer": 5000, + "pages": [ + { + "type": "CarouselPage", + "id": "firstCarouselPage", + "selectAction": { + "type": "Action.OpenUrl", + "title": "Click for more information about the first carousel page!", + "url": "https://adaptivecards.io/" + }, + "items": [ + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/1.png", + "size": "medium" + } + ] + }, + { + "type": "CarouselPage", + "id": "theSecondCarouselPage", + "items": [ + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/2.png", + "size": "medium" + } + ] + }, + { + "type": "CarouselPage", + "id": "last-carousel-page", + "items": [ + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/3.png", + "altText": "That's a cool cat!", + "size": "medium" + } + ] + } + ] + }, + "actions": [ + { + "type": "Action.OpenUrl", + "title": "See more", + "url": "https://adaptivecards.io" + }, + { + "type": "Action.OpenUrl", + "title": "Another action", + "url": "https://adaptivecards.io" + } + ] +} \ No newline at end of file diff --git a/samples/v1.6/Tests/Carousel.ForbiddenActions.json b/samples/v1.6/Tests/Carousel.ForbiddenActions.json new file mode 100644 index 0000000000..a15231a29d --- /dev/null +++ b/samples/v1.6/Tests/Carousel.ForbiddenActions.json @@ -0,0 +1,202 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.6", + "body": { + "type": "Carousel", + "pages": [ + { + "type": "CarouselPage", + "id": "firstCarouselPage", + "items": [ + { + "type": "Container", + "items": [ + { + "type": "TextBlock", + "text": "There should be no actions rendered below", + "wrap": true, + "id": "id1" + } + ] + } + ] + }, + { + "type": "CarouselPage", + "id": "secondCarouselPage", + "items": [ + { + "type": "RichTextBlock", + "inlines": [ + "No action should be rendered here ", + { + "type": "TextRun", + "text": "this is a showcard action,", + "selectAction": { + "type": "Action.ShowCard", + "title": "Action.ShowCard", + "card": { + "type": "AdaptiveCard", + "body": [ + { + "type": "TextBlock", + "text": "What do you think?" + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "Neat!" + } + ] + } + } + }, + { + "type": "TextRun", + "text": " and this is a toggle visibility action. ", + "selectAction": { + "type": "Action.ToggleVisibility", + "title": "Show!", + "targetElements": [ + "id1" + ] + } + } + ] + } + ] + }, + { + "type": "CarouselPage", + "id": "thirdCarouselPage", + "items": [ + { + "type": "TextBlock", + "wrap": true, + "text": "This card has Containers & Columns with SelectActions that should not be honoured" + }, + { + "type": "Container", + "items": [ + { + "type": "TextBlock", + "wrap": true, + "text": "This is a container with ShowCard action" + } + ], + "selectAction": { + "type": "Action.ShowCard", + "title": "Action.ShowCard", + "card": { + "type": "AdaptiveCard", + "body": [ + { + "type": "TextBlock", + "text": "What do you think?" + } + ] + } + } + }, + { + "type": "Container", + "items": [ + { + "type": "TextBlock", + "wrap": true, + "text": "This is a container with ToggleVisibility action" + } + ], + "selectAction": { + "type": "Action.ToggleVisibility", + "title": "Show!", + "targetElements": [ + "id1" + ] + } + }, + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "items": [ + { + "type": "TextBlock", + "wrap": true, + "text": "This is a container with ShowCard action" + } + ], + "selectAction": { + "type": "Action.ShowCard", + "title": "Action.ShowCard", + "card": { + "type": "AdaptiveCard", + "body": [ + { + "type": "TextBlock", + "text": "What do you think?" + } + ] + } + } + } + ] + }, + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "items": [ + { + "type": "TextBlock", + "wrap": true, + "text": "This is a container with ToggleVisibility action" + } + ], + "selectAction": { + "type": "Action.ToggleVisibility", + "title": "Show!", + "targetElements": [ + "id1" + ] + } + } + ] + } + ] + } + ] + }, + "actions": [ + { + "type": "Action.ShowCard", + "title": "Action.ShowCard", + "card": { + "type": "AdaptiveCard", + "body": [ + { + "type": "TextBlock", + "text": "What do you think?" + } + ], + "actions": [ + { + "type": "Action.Submit", + "title": "Neat!" + } + ] + } + }, + { + "type": "Action.ToggleVisibility", + "title": "Action.ToggleVisibility", + "targetElements": [ + "id1" + ] + } + ] +} diff --git a/samples/v1.6/Tests/Carousel.ForbiddenElements.json b/samples/v1.6/Tests/Carousel.ForbiddenElements.json new file mode 100644 index 0000000000..2790653811 --- /dev/null +++ b/samples/v1.6/Tests/Carousel.ForbiddenElements.json @@ -0,0 +1,95 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.6", + "body": { + "type": "Carousel", + "pages": [ + { + "type": "CarouselPage", + "id": "firstCarouselPage", + "items": [ + { + "type": "TextBlock", + "text": "List of forbidden items, no elements should be shown below besides TextBlock", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Input.Text" + }, + { + "type": "Input.Text", + "id": "id1" + }, + { + "type": "TextBlock", + "text": "Input.Number" + }, + { + "type": "Input.Number", + "id": "id2" + }, + { + "type": "TextBlock", + "text": "Input.ChoiceSet" + }, + { + "type": "Input.ChoiceSet", + "id": "id3", + "choices": [ + { + "title": "Red", + "value": "1" + }, + { + "title": "Green", + "value": "2" + } + ] + }, + { + "type": "TextBlock", + "text": "Input.Date" + }, + { + "type": "Input.Date", + "id": "id4" + }, + { + "type": "TextBlock", + "text": "Input.Toggle" + }, + { + "type": "Input.Toggle", + "id": "id5", + "title": "I accept the terms and agreements" + }, + { + "type": "TextBlock", + "text": "Input.Time" + }, + { + "type": "Input.Time", + "id": "id6" + }, + { + "type": "TextBlock", + "text": "Media" + }, + { + "type": "Media", + "poster": "https://adaptivecards.io/content/poster-video.png", + "id": "id7", + "sources": [ + { + "mimeType": "video/mp4", + "url": "https://adaptivecardsblob.blob.core.windows.net/assets/AdaptiveCardsOverviewVideo.mp4" + } + ] + } + ] + } + ] + } +} diff --git a/samples/v1.6/Tests/Carousel.HostConfig.json b/samples/v1.6/Tests/Carousel.HostConfig.json new file mode 100644 index 0000000000..18cb7a6ed4 --- /dev/null +++ b/samples/v1.6/Tests/Carousel.HostConfig.json @@ -0,0 +1,204 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.6", + "body": { + "type": "Carousel", + "timer": 100, + "pages": [ + { + "type": "CarouselPage", + "id": "0", + "selectAction": { + "type": "Action.OpenUrl", + "title": "Click for more information about the first carousel page!", + "url": "https://adaptivecards.io/" + }, + "items": [ + { + "type" : "TextBlock", + "text" : "0, min timer value of host config will override the 100ms timer value of this card", + "wrap" : true + }, + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/1.png", + "size": "medium" + } + ] + }, + { + "type": "CarouselPage", + "id": "1", + "items": [ + { + "type" : "TextBlock", + "text" : "1" + }, + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/2.png", + "size": "medium" + } + ] + }, + { + "type": "CarouselPage", + "id": "2", + "items": [ + { + "type" : "TextBlock", + "text" : "2" + }, + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/3.png", + "altText": "That's a cool cat!", + "size": "medium" + } + ] + }, + { + "type": "CarouselPage", + "id": "3", + "items": [ + { + "type" : "TextBlock", + "text" : "3" + }, + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/3.png", + "altText": "That's a cool cat!", + "size": "medium" + } + ] + }, + { + "type": "CarouselPage", + "id": "4", + "items": [ + { + "type" : "TextBlock", + "text" : "4" + }, + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/3.png", + "altText": "That's a cool cat!", + "size": "medium" + } + ] + }, + { + "type": "CarouselPage", + "id": "5", + "items": [ + { + "type" : "TextBlock", + "text" : "5" + }, + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/3.png", + "altText": "That's a cool cat!", + "size": "medium" + } + ] + }, + { + "type": "CarouselPage", + "id": "6", + "items": [ + { + "type" : "TextBlock", + "text" : "6" + }, + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/3.png", + "altText": "That's a cool cat!", + "size": "medium" + } + ] + }, + { + "type": "CarouselPage", + "id": "7", + "items": [ + { + "type" : "TextBlock", + "text" : "7" + }, + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/3.png", + "altText": "That's a cool cat!", + "size": "medium" + } + ] + }, + { + "type": "CarouselPage", + "id": "8", + "items": [ + { + "type" : "TextBlock", + "text" : "8" + }, + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/3.png", + "altText": "That's a cool cat!", + "size": "medium" + } + ] + }, + { + "type": "CarouselPage", + "id": "9", + "items": [ + { + "type" : "TextBlock", + "text" : "9, this will be the last carousel page if the default host config value, 10 is used.", + "wrap" : true + }, + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/3.png", + "altText": "That's a cool cat!", + "size": "medium" + } + ] + }, + { + "type": "CarouselPage", + "id": "page10", + "items": [ + { + "type" : "TextBlock", + "text" : "10" + }, + { + "type": "Image", + "url": "https://adaptivecards.io/content/cats/3.png", + "altText": "That's a cool cat!", + "size": "medium" + } + ] + } + ] + }, + "actions": [ + { + "type": "Action.OpenUrl", + "title": "See more", + "url": "https://adaptivecards.io" + }, + { + "type": "Action.OpenUrl", + "title": "Another action", + "url": "https://adaptivecards.io" + } + ] +} diff --git a/samples/v1.6/Tests/Carousel.NestedForbiddenElements.json b/samples/v1.6/Tests/Carousel.NestedForbiddenElements.json new file mode 100644 index 0000000000..31a0c41858 --- /dev/null +++ b/samples/v1.6/Tests/Carousel.NestedForbiddenElements.json @@ -0,0 +1,198 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.6", + "body": { + "type": "Carousel", + "pages": [ + { + "type": "CarouselPage", + "id": "firstCarouselPage", + "items": [ + { + "type": "Container", + "items": [ + { + "type": "TextBlock", + "text": "List of forbidden items, no elements should be shown below besides TextBlock", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Input.Text" + }, + { + "type": "Input.Text", + "id": "id1" + }, + { + "type": "TextBlock", + "text": "Input.Number" + }, + { + "type": "Input.Number", + "id": "id2" + }, + { + "type": "TextBlock", + "text": "Input.ChoiceSet" + }, + { + "type": "Input.ChoiceSet", + "id": "id3", + "choices": [ + { + "title": "Red", + "value": "1" + }, + { + "title": "Green", + "value": "2" + } + ] + }, + { + "type": "TextBlock", + "text": "Input.Date" + }, + { + "type": "Input.Date", + "id": "id4" + }, + { + "type": "TextBlock", + "text": "Input.Toggle" + }, + { + "type": "Input.Toggle", + "id": "id5", + "title": "I accept the terms and agreements" + }, + { + "type": "TextBlock", + "text": "Input.Time" + }, + { + "type": "Input.Time", + "id": "id6" + }, + { + "type": "TextBlock", + "text": "Media" + }, + { + "type": "Media", + "poster": "https://adaptivecards.io/content/poster-video.png", + "sources": [ + { + "mimeType": "video/mp4", + "url": "https://adaptivecardsblob.blob.core.windows.net/assets/AdaptiveCardsOverviewVideo.mp4" + } + ] + } + ] + } + ] + }, + { + "type": "CarouselPage", + "id": "firstCarouselPage", + "items": [ + { + "type": "TextBlock", + "text": "List of forbidden items, no elements should be shown below besides TextBlock", + "wrap": true + }, + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "items": [ + { + "type": "TextBlock", + "text": "Input.Text" + }, + { + "type": "TextBlock", + "text": "Input.Number" + }, + { + "type": "TextBlock", + "text": "Input.ChoiceSet" + }, + { + "type": "TextBlock", + "text": "Input.Date" + }, + { + "type": "TextBlock", + "text": "Input.Toggle" + }, + { + "type": "TextBlock", + "text": "Input.Time" + }, + { + "type": "TextBlock", + "text": "Media" + } + ] + }, + { + "type": "Column", + "items": [ + { + "type": "Input.Text", + "id": "id1" + }, + { + "type": "Input.Number", + "id": "id2" + }, + { + "type": "Input.ChoiceSet", + "id": "id3", + "choices": [ + { + "title": "Red", + "value": "1" + }, + { + "title": "Green", + "value": "2" + } + ] + }, + { + "type": "Input.Date", + "id": "id4" + }, + { + "type": "Input.Toggle", + "id": "id5", + "title": "I accept the terms and agreements" + }, + { + "type": "Input.Time", + "id": "id6" + }, + { + "type": "Media", + "poster": "https://adaptivecards.io/content/poster-video.png", + "sources": [ + { + "mimeType": "video/mp4", + "url": "https://adaptivecardsblob.blob.core.windows.net/assets/AdaptiveCardsOverviewVideo.mp4" + } + ] + } + ] + } + ] + } + ] + } + ] + } +} diff --git a/samples/v1.6/Tests/Carousel.Properties.json b/samples/v1.6/Tests/Carousel.Properties.json new file mode 100644 index 0000000000..13ee6b843b --- /dev/null +++ b/samples/v1.6/Tests/Carousel.Properties.json @@ -0,0 +1,51 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.6", + "body": { + "type": "Carousel", + "style": "warning", + "isVisible" : false, + "verticalContentAlignment" : "Bottom", + "pages": [ + { + "type": "CarouselPage", + "id": "firstCarouselPage", + "items": [ + { + "type": "TextBlock", + "text": "1. Carousel Pages **does not** support *style*, *bleed*, *isVisible*.\r 2. Carousel support *Vertical Content Alignment* Try change the value\r 3. Flip through pages to test", + "wrap": true + } + ] + }, + { + "type": "CarouselPage", + "id": "secondCarouselPage", + "style": "good", + "bleed": true, + "isVisible" : false, + "items": [ + { + "type": "TextBlock", + "text": "Carousel Pages has style `good`, bleed `true`, isVisible `false`. Since Carousel Doesn't support such properties, it should not change the look", + "wrap": true + } + ] + }, + { + "type": "CarouselPage", + "id": "thirdCarouselPage", + "style": "warning", + "isVisible" : false, + "items": [ + { + "type": "TextBlock", + "text": "This Carousel Page has style `warning` and bleed `false` by default, expect no style change with first Carousel Page", + "wrap": true + } + ] + } + ] + } +} diff --git a/samples/v1.6/Tests/Carousel.rtl.json b/samples/v1.6/Tests/Carousel.rtl.json new file mode 100644 index 0000000000..66058b527d --- /dev/null +++ b/samples/v1.6/Tests/Carousel.rtl.json @@ -0,0 +1,68 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.6", + "rtl": true, + "body": { + "type": "Carousel", + "pages": [ + { + "type": "CarouselPage", + "id": "firstCarouselPage", + "rtl": true, + "items": [ + { + "type": "TextBlock", + "text": "1. Expected: RTL: *true*" + }, + { + "type": "TextBlock", + "text": "Carousel Page has set Explicit RTL" + } + ] + }, + { + "type": "CarouselPage", + "id": "secondCarouselPage", + "rtl": false, + "items": [ + { + "type": "TextBlock", + "text": "2. Expected: RTL: *false*" + }, + { + "type": "TextBlock", + "text": "Carousel Page has set Explicit LTL" + } + ] + }, + { + "type": "CarouselPage", + "id": "thirdCarouselPage", + "items": [ + { + "type": "TextBlock", + "text": "3. Expected: RTL: *true*" + }, + { + "type": "TextBlock", + "text": "Carousel Page get Explicit RTL from its parent *Carousel* \rActions' direction should be RTL as AdaptiveCards has explicit RTL", + "wrap": true + } + ] + } + ] + }, + "actions": [ + { + "type": "Action.OpenUrl", + "title": "See more", + "url": "https://adaptivecards.io" + }, + { + "type": "Action.OpenUrl", + "title": "Another action", + "url": "https://adaptivecards.io" + } + ] +} diff --git a/schemas/1.4.0/adaptive-card.json b/schemas/1.4.0/adaptive-card.json index 2ce9b6dd75..a65f7af69e 100644 --- a/schemas/1.4.0/adaptive-card.json +++ b/schemas/1.4.0/adaptive-card.json @@ -1706,7 +1706,7 @@ ] }, "AuthCardButton": { - "description": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-activity.md#card-action).", + "description": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.cardaction).", "version": "1.4", "properties": { "type": { @@ -1734,7 +1734,7 @@ ] }, "Authentication": { - "description": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#oauth-card)", + "description": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.oauthcard)", "version": "1.4", "properties": { "type": { @@ -1826,7 +1826,7 @@ "additionalProperties": false }, "TokenExchangeResource": { - "description": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#TokenExchangeResource)", + "description": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.tokenexchangeresource)", "version": "1.4", "properties": { "type": { diff --git a/schemas/1.5.0/adaptive-card.json b/schemas/1.5.0/adaptive-card.json index 986bd37b4f..8301d0efef 100644 --- a/schemas/1.5.0/adaptive-card.json +++ b/schemas/1.5.0/adaptive-card.json @@ -39,6 +39,7 @@ "fallback": {}, "tooltip": {}, "isEnabled": {}, + "mode": {}, "requires": {} }, "type": "object", @@ -70,6 +71,7 @@ "fallback": {}, "tooltip": {}, "isEnabled": {}, + "mode": {}, "requires": {} }, "type": "object", @@ -103,6 +105,7 @@ "fallback": {}, "tooltip": {}, "isEnabled": {}, + "mode": {}, "requires": {} }, "type": "object", @@ -146,6 +149,7 @@ "fallback": {}, "tooltip": {}, "isEnabled": {}, + "mode": {}, "requires": {} }, "type": "object", @@ -180,6 +184,7 @@ "fallback": {}, "tooltip": {}, "isEnabled": {}, + "mode": {}, "requires": {} }, "type": "object", @@ -309,6 +314,18 @@ 2293 ] }, + "rtl": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "When `true` content in this Adaptive Card should be presented right to left. When 'false' content in this Adaptive Card should be presented left to right. If unset, the default platform behavior will apply.", + "version": "1.5" + }, "speak": { "type": "string", "description": "Specifies what should be spoken for this entire card. This is simple text or SSML fragment." @@ -442,8 +459,8 @@ "type": "null" } ], - "description": "When `true` content in this container should be presented right to left. When 'false' content in this container should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.", - "version": "vNext" + "description": "When `true` content in this column should be presented right to left. When 'false' content in this column should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.", + "version": "1.5" }, "separator": { "type": "boolean", @@ -670,7 +687,7 @@ } ], "description": "When `true` content in this container should be presented right to left. When 'false' content in this container should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.", - "version": "vNext" + "version": "1.5" }, "fallback": {}, "height": {}, @@ -1484,7 +1501,7 @@ "items": { "$ref": "#/definitions/TableColumnDefinition" }, - "description": "Defines the number of columns in the table, their sizes ans more." + "description": "Defines the number of columns in the table, their sizes, and more." }, "rows": { "type": "array", @@ -1556,8 +1573,6 @@ "TableCell": { "description": "Represents a cell within a row of a Table element.", "version": "1.5", - "type": "object", - "additionalProperties": false, "properties": { "type": { "enum": [ @@ -1565,26 +1580,91 @@ ], "description": "Must be `TableCell`" }, - "items": {}, - "selectAction": {}, - "style": {}, - "verticalContentAlignment": {}, - "bleed": {}, - "backgroundImage": {}, - "minHeight": {}, - "rtl?": {}, - "fallback": {}, - "height": {}, - "separator": {}, - "spacing": {}, - "id": {}, - "isVisible": {}, - "requires": {} - }, - "allOf": [ - { - "$ref": "#/definitions/Extendable.Container" + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/ImplementationsOf.Element" + }, + "description": "The card elements to render inside the `TableCell`." + }, + "selectAction": { + "$ref": "#/definitions/ImplementationsOf.ISelectAction", + "description": "An Action that will be invoked when the `TableCell` is tapped or selected. `Action.ShowCard` is not supported.", + "version": "1.1" + }, + "style": { + "anyOf": [ + { + "$ref": "#/definitions/ContainerStyle" + }, + { + "type": "null" + } + ], + "description": "Style hint for `TableCell`." + }, + "verticalContentAlignment": { + "anyOf": [ + { + "$ref": "#/definitions/VerticalContentAlignment" + }, + { + "type": "null" + } + ], + "description": "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.", + "version": "1.1" + }, + "bleed": { + "type": "boolean", + "description": "Determines whether the element should bleed through its parent's padding.", + "version": "1.2", + "features": [ + 2109 + ] + }, + "backgroundImage": { + "anyOf": [ + { + "$ref": "#/definitions/BackgroundImage" + }, + { + "type": "string", + "format": "uri-reference", + "description": "The URL (or data url) to use as the background image. Supports data URI." + } + ], + "description": "Specifies the background image. Acceptable formats are PNG, JPEG, and GIF", + "version": "1.2" + }, + "minHeight": { + "type": "string", + "description": "Specifies the minimum height of the container in pixels, like `\"80px\"`.", + "examples": [ + "50px" + ], + "version": "1.2", + "features": [ + 2293 + ] + }, + "rtl?": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "When `true` content in this container should be presented right to left. When 'false' content in this container should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.", + "version": "1.5" } + }, + "type": "object", + "additionalProperties": false, + "required": [ + "items" ] }, "TableColumnDefinition": { @@ -1684,22 +1764,10 @@ } ], "description": "Controls how the content of all cells in the column is vertically aligned by default. When specified, this value overrides the setting at the table and column level. When not specified, vertical alignment is defined either at the table, column or cell level." - }, - "fallback": {}, - "height": {}, - "separator": {}, - "spacing": {}, - "id": {}, - "isVisible": {}, - "requires": {} + } }, "type": "object", - "additionalProperties": false, - "allOf": [ - { - "$ref": "#/definitions/Extendable.Element" - } - ] + "additionalProperties": false }, "TextBlock": { "description": "Displays text, allowing control over font sizes, weight, and color.", @@ -1822,6 +1890,24 @@ } ] }, + "ActionMode": { + "description": "Determines whether an action is displayed with a button or is moved to the overflow menu.", + "features": [ + 4715 + ], + "version": "1.5", + "anyOf": [ + { + "enum": [ + "primary", + "secondary" + ] + }, + { + "pattern": "^([p|P][r|R][i|I][m|M][a|A][r|R][y|Y])|([s|S][e|E][c|C][o|O][n|N][d|D][a|A][r|R][y|Y])$" + } + ] + }, "ActionStyle": { "description": "Controls the style of an Action, which influences how the action is displayed, spoken, etc.", "features": [ @@ -2074,11 +2160,12 @@ "text", "tel", "url", - "email" + "email", + "password" ] }, { - "pattern": "^([t|T][e|E][x|X][t|T])|([t|T][e|E][l|L])|([u|U][r|R][l|L])|([e|E][m|M][a|A][i|I][l|L])$" + "pattern": "^([t|T][e|E][x|X][t|T])|([t|T][e|E][l|L])|([u|U][r|R][l|L])|([e|E][m|M][a|A][i|I][l|L])|([p|P][a|A][s|S][s|S][w|W][o|O][r|R][d|D])$" } ] }, @@ -2111,7 +2198,7 @@ ] }, "AuthCardButton": { - "description": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-activity.md#card-action).", + "description": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.cardaction).", "version": "1.4", "properties": { "type": { @@ -2139,7 +2226,7 @@ ] }, "Authentication": { - "description": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#oauth-card)", + "description": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.oauthcard)", "version": "1.4", "properties": { "type": { @@ -2231,7 +2318,7 @@ "additionalProperties": false }, "TokenExchangeResource": { - "description": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#TokenExchangeResource)", + "description": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.tokenexchangeresource)", "version": "1.4", "properties": { "type": { @@ -2527,26 +2614,6 @@ } ] }, - { - "required": [ - "type" - ], - "allOf": [ - { - "$ref": "#/definitions/TableCell" - } - ] - }, - { - "required": [ - "type" - ], - "allOf": [ - { - "$ref": "#/definitions/TableRow" - } - ] - }, { "required": [ "type" @@ -2755,26 +2822,6 @@ } ] }, - { - "required": [ - "type" - ], - "allOf": [ - { - "$ref": "#/definitions/TableCell" - } - ] - }, - { - "required": [ - "type" - ], - "allOf": [ - { - "$ref": "#/definitions/TableRow" - } - ] - }, { "required": [ "type" @@ -2949,26 +2996,6 @@ } ] }, - { - "required": [ - "type" - ], - "allOf": [ - { - "$ref": "#/definitions/TableCell" - } - ] - }, - { - "required": [ - "type" - ], - "allOf": [ - { - "$ref": "#/definitions/TableRow" - } - ] - }, { "required": [ "type" @@ -3059,30 +3086,6 @@ } ] }, - "ImplementationsOf.Container": { - "anyOf": [ - { - "required": [ - "type" - ], - "allOf": [ - { - "$ref": "#/definitions/Container" - } - ] - }, - { - "required": [ - "type" - ], - "allOf": [ - { - "$ref": "#/definitions/TableCell" - } - ] - } - ] - }, "Extendable.Action": { "properties": { "title": { @@ -3127,119 +3130,18 @@ "default": true, "version": "1.5" }, - "requires": {} - }, - "type": "object", - "allOf": [ - { - "$ref": "#/definitions/Extendable.Item" - } - ] - }, - "Extendable.Container": { - "description": "Containers group items together.", - "properties": { - "type": { - "enum": [ - "Container" - ], - "description": "Must be `Container`" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/ImplementationsOf.Element" - }, - "description": "The card elements to render inside the `Container`." + "mode": { + "$ref": "#/definitions/ActionMode", + "description": "Determines whether the action should be displayed as a button or in the overflow menu.", + "version": "1.5", + "default": "primary" }, - "selectAction": { - "$ref": "#/definitions/ImplementationsOf.ISelectAction", - "description": "An Action that will be invoked when the `Container` is tapped or selected. `Action.ShowCard` is not supported.", - "version": "1.1" - }, - "style": { - "anyOf": [ - { - "$ref": "#/definitions/ContainerStyle" - }, - { - "type": "null" - } - ], - "description": "Style hint for `Container`." - }, - "verticalContentAlignment": { - "anyOf": [ - { - "$ref": "#/definitions/VerticalContentAlignment" - }, - { - "type": "null" - } - ], - "description": "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.", - "version": "1.1" - }, - "bleed": { - "type": "boolean", - "description": "Determines whether the element should bleed through its parent's padding.", - "version": "1.2", - "features": [ - 2109 - ] - }, - "backgroundImage": { - "anyOf": [ - { - "$ref": "#/definitions/BackgroundImage" - }, - { - "type": "string", - "format": "uri-reference", - "description": "The URL (or data url) to use as the background image. Supports data URI." - } - ], - "description": "Specifies the background image. Acceptable formats are PNG, JPEG, and GIF", - "version": "1.2" - }, - "minHeight": { - "type": "string", - "description": "Specifies the minimum height of the container in pixels, like `\"80px\"`.", - "examples": [ - "50px" - ], - "version": "1.2", - "features": [ - 2293 - ] - }, - "rtl?": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "description": "When `true` content in this container should be presented right to left. When 'false' content in this container should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.", - "version": "vNext" - }, - "fallback": {}, - "height": {}, - "separator": {}, - "spacing": {}, - "id": {}, - "isVisible": {}, "requires": {} }, "type": "object", - "required": [ - "items" - ], "allOf": [ { - "$ref": "#/definitions/Extendable.Element" + "$ref": "#/definitions/Extendable.Item" } ] }, diff --git a/schemas/README.md b/schemas/README.md index ce0fa261f1..0fb92b701c 100644 --- a/schemas/README.md +++ b/schemas/README.md @@ -1,11 +1,15 @@ # Schema files Are you looking to make schema changes and don't know where to start? Make sure to check out our [contribution guidelines](https://github.com/Microsoft/AdaptiveCards/blob/main/.github/CONTRIBUTING.md) to get started. + ## AdaptiveCard schema ### Referenceable versions -Here's a list of the schema URLs you can reference +Here's a list of the schema URLs you can reference: +* https://adaptivecards.io/schemas/1.5.0/adaptive-card.json +* https://adaptivecards.io/schemas/1.4.0/adaptive-card.json +* https://adaptivecards.io/schemas/1.3.0/adaptive-card.json * https://adaptivecards.io/schemas/1.2.0/adaptive-card.json * https://adaptivecards.io/schemas/1.1.0/adaptive-card.json @@ -15,7 +19,11 @@ The Adaptive Card schema is generated from "typed schema" files located in the ` Our schema explorer on the website is also generated from the typed schema files in the `src` folder. -To generate the schema, see `../source/nodejs/ac-typed-schema`. +To generate the schema, see [ac-typed-schema](../source/nodejs/ac-typed-schema). Once built (see the nodejs [README](../source/nodejs/README.md)), run `npm run generate-adaptive-schema`. This will output the generated schema as `schemas/adaptive-card.json` (which should not be checked in). From here, the file should be copied into the version-appropriate subfolder (e.g. `cd schemas && cp adaptive-card.json 1.4.0/adaptive-card.json`). + +### Generating the schema spec markdown + +Once the schema itself is generating correctly, the markdown specs need to be generated as well, at least for testing (the markdown files are automatically generated by a PR builds). The tool you need is [spec-generator](../source/nodejs/spec-generator). Once built, issue the command `npm run run` (yes, really), which will generate the various markdown files you can find in the [specs folder](../specs). More details can be found in the specs README. ### Non-extensible schema @@ -25,4 +33,4 @@ If you want to run automated tests using the schema in your CI but have to use h ### Versioned schema -We keep a version history of the schema, and we only support referencing a specific version of the schema. That's because you really don't want the schema randomly changing on you! Updating the schema must be a conscious decision. \ No newline at end of file +We keep a version history of the schema, and we only support referencing a specific version of the schema. That's because you really don't want the schema randomly changing on you! Updating the schema must be a conscious decision. diff --git a/schemas/host-config.json b/schemas/host-config.json index 70ea2d6e0a..22131afeb1 100644 --- a/schemas/host-config.json +++ b/schemas/host-config.json @@ -1,5 +1,16 @@ { "definitions": { + "AdaptiveCardConfig": { + "type": "object", + "description": "Toplevel options for `AdaptiveCards`", + "properties": { + "allowCustomStyle": { + "type": "boolean", + "description": "Controls whether custom styling is allowed", + "default": true + } + } + }, "ActionsConfig": { "type": "object", "description": "Options for `Action`s", @@ -67,17 +78,6 @@ } } }, - "AdaptiveCardConfig": { - "type": "object", - "description": "Toplevel options for `AdaptiveCards`", - "properties": { - "allowCustomStyle": { - "type": "boolean", - "description": "Controls whether custom styling is allowed", - "default": true - } - } - }, "ContainerStyleConfig": { "type": "object", "description": "Controls styling of a container", @@ -671,7 +671,7 @@ }, "TextStylesConfig": { "type": "object", - "description": "Configuration settings for TextBocks", + "description": "Sets default properties for text of a given style", "properties": { "heading": { "$ref": "#/definitions/TextStyleConfig", @@ -682,67 +682,92 @@ "fontType": "default", "isSubtle": false } + }, + "columnHeader": { + "$ref": "#/definitions/TextStyleConfig", + "default": { + "weight": "bolder", + "size": "default", + "color": "default", + "fontType": "default", + "isSubtle": false + } } } }, - "type": "object", - "properties": { - "supportsInteractivity": { - "type": "boolean", - "description": "Control whether interactive `Action`s are allowed to be invoke", - "default": true - }, - "imageBaseUrl": { - "type": "string", - "format": "uri", - "description": "Base URL to be used when loading resources" - }, - "fontFamily": { - "type": "string", - "description": "Font face to use when rendering text", - "default": "Calibri" - }, - "actions": { - "$ref": "#/definitions/ActionsConfig" - }, - "adaptiveCard": { - "$ref": "#/definitions/AdaptiveCardConfig" - }, - "containerStyles": { - "$ref": "#/definitions/ContainerStylesConfig" - }, - "imageSizes": { - "$ref": "#/definitions/ImageSizesConfig" - }, - "imageSet": { - "$ref": "#/definitions/ImageSetConfig" - }, - "factSet": { - "$ref": "#/definitions/FactSetConfig" - }, - "fontSizes": { - "$ref": "#/definitions/FontSizesConfig" - }, - "fontWeights": { - "$ref": "#/definitions/FontWeightsConfig" - }, - "spacing": { - "$ref": "#/definitions/SpacingsConfig" - }, - "separator": { - "$ref": "#/definitions/SeparatorConfig" - }, - "media": { - "$ref": "#/definitions/MediaConfig" - }, - "inputs": { - "$ref": "#/definitions/InputsConfig" - }, - "textBlock": { - "$ref": "#/definitions/TextBlockConfig" - }, - "textStyles": { - "$ref": "#/definitions/TextStylesConfig" + "TextBlockConfig": { + "type": "object", + "description": "Configuration settings for TextBlocks", + "properties": { + "headingLevel": { + "type": "integer", + "description": "When displaying a `TextBlock` element with the `heading` style, this is the heading level exposed to accessibility tools.", + "default": 2 + } + } + }, + "HostConfig": { + "type": "object", + "description": "Contains host-configurable settings", + "properties": { + "supportsInteractivity": { + "type": "boolean", + "description": "Control whether interactive `Action`s are allowed to be invoked", + "default": true + }, + "imageBaseUrl": { + "type": "string", + "format": "uri", + "description": "Base URL to be used when loading resources" + }, + "fontFamily": { + "type": "string", + "description": "Font face to use when rendering text", + "default": "Calibri" + }, + "actions": { + "$ref": "#/definitions/ActionsConfig" + }, + "adaptiveCard": { + "$ref": "#/definitions/AdaptiveCardConfig" + }, + "containerStyles": { + "$ref": "#/definitions/ContainerStylesConfig" + }, + "imageSizes": { + "$ref": "#/definitions/ImageSizesConfig" + }, + "imageSet": { + "$ref": "#/definitions/ImageSetConfig" + }, + "factSet": { + "$ref": "#/definitions/FactSetConfig" + }, + "fontSizes": { + "$ref": "#/definitions/FontSizesConfig" + }, + "fontWeights": { + "$ref": "#/definitions/FontWeightsConfig" + }, + "spacing": { + "$ref": "#/definitions/SpacingsConfig" + }, + "separator": { + "$ref": "#/definitions/SeparatorConfig" + }, + "media": { + "$ref": "#/definitions/MediaConfig" + }, + "inputs": { + "$ref": "#/definitions/InputsConfig" + }, + "textBlock": { + "$ref": "#/definitions/TextBlockConfig" + }, + "textStyles": { + "$ref": "#/definitions/TextStylesConfig" + } } } } +} diff --git a/schemas/src/AdaptiveCard.json b/schemas/src/AdaptiveCard.json index cbd2edc9f6..351b53d439 100644 --- a/schemas/src/AdaptiveCard.json +++ b/schemas/src/AdaptiveCard.json @@ -61,6 +61,11 @@ 2293 ] }, + "rtl": { + "type": "boolean?", + "description": "When `true` content in this Adaptive Card should be presented right to left. When 'false' content in this Adaptive Card should be presented left to right. If unset, the default platform behavior will apply.", + "version": "1.5" + }, "speak": { "type": "string", "description": "Specifies what should be spoken for this entire card. This is simple text or SSML fragment." @@ -84,4 +89,4 @@ "description": "The Adaptive Card schema." } } -} \ No newline at end of file +} diff --git a/schemas/src/actions/Action.OpenUrl.json b/schemas/src/actions/Action.OpenUrl.json index 75b2a52eb6..ffcd087b8e 100644 --- a/schemas/src/actions/Action.OpenUrl.json +++ b/schemas/src/actions/Action.OpenUrl.json @@ -1,12 +1,12 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "extends": "Action, ISelectAction", - "description": "When invoked, show the given url either by launching it in an external web browser or showing within an embedded web browser.", - "properties": { - "url": { - "type": "uri-reference", - "description": "The URL to open.", - "required": true - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "extends": "Action, ISelectAction", + "description": "When invoked, show the given url either by launching it in an external web browser or showing within an embedded web browser.", + "properties": { + "url": { + "type": "uri-reference", + "description": "The URL to open.", + "required": true + } + } +} diff --git a/schemas/src/actions/Action.ShowCard.json b/schemas/src/actions/Action.ShowCard.json index cd6c62cb6b..30c842043c 100644 --- a/schemas/src/actions/Action.ShowCard.json +++ b/schemas/src/actions/Action.ShowCard.json @@ -1,11 +1,11 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "extends": "Action", - "description": "Defines an AdaptiveCard which is shown to the user when the button or link is clicked.", - "properties": { - "card": { - "type": "AdaptiveCard", - "description": "The Adaptive Card to show. Inputs in ShowCards will not be submitted if the submit button is located on a parent card. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details." - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "extends": "Action", + "description": "Defines an AdaptiveCard which is shown to the user when the button or link is clicked.", + "properties": { + "card": { + "type": "AdaptiveCard", + "description": "The Adaptive Card to show. Inputs in ShowCards will not be submitted if the submit button is located on a parent card. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details." + } + } +} diff --git a/schemas/src/actions/Action.ToggleVisibility.json b/schemas/src/actions/Action.ToggleVisibility.json index 2017dc44eb..d0c82a1b75 100644 --- a/schemas/src/actions/Action.ToggleVisibility.json +++ b/schemas/src/actions/Action.ToggleVisibility.json @@ -1,13 +1,13 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "extends": "Action, ISelectAction", - "description": "An action that toggles the visibility of associated card elements.", - "version": "1.2", - "properties": { - "targetElements": { - "type": "TargetElement[]", - "description": "The array of TargetElements. It is not recommended to include Input elements with validation under Action.Toggle due to confusion that can arise from invalid inputs that are not currently visible. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more information.", - "required": true - } - } + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "extends": "Action, ISelectAction", + "description": "An action that toggles the visibility of associated card elements.", + "version": "1.2", + "properties": { + "targetElements": { + "type": "TargetElement[]", + "description": "The array of TargetElements. It is not recommended to include Input elements with validation under Action.Toggle due to confusion that can arise from invalid inputs that are not currently visible. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more information.", + "required": true + } + } } diff --git a/schemas/src/actions/Action.json b/schemas/src/actions/Action.json index 18426665cd..c03a0b255f 100644 --- a/schemas/src/actions/Action.json +++ b/schemas/src/actions/Action.json @@ -36,6 +36,12 @@ "description": "Determines whether the action should be enabled.", "default": true, "version": "1.5" + }, + "mode": { + "type": "ActionMode", + "description": "Determines whether the action should be displayed as a button or in the overflow menu.", + "version": "1.5", + "default": "primary" } } } diff --git a/schemas/src/actions/ISelectAction.json b/schemas/src/actions/ISelectAction.json index 19a849031a..825b447adb 100644 --- a/schemas/src/actions/ISelectAction.json +++ b/schemas/src/actions/ISelectAction.json @@ -1,5 +1,5 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "isAbstract": true, - "description": "Marker interface for static actions (everything except Action.ShowCard)." -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "isAbstract": true, + "description": "Marker interface for static actions (everything except Action.ShowCard)." +} diff --git a/schemas/src/actions/TargetElement.json b/schemas/src/actions/TargetElement.json index 83646d92e8..d17d8773e2 100644 --- a/schemas/src/actions/TargetElement.json +++ b/schemas/src/actions/TargetElement.json @@ -1,16 +1,16 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "description": "Represents an entry for Action.ToggleVisibility's targetElements property", - "properties": { - "elementId": { - "type": "string", - "description": "Element ID of element to toggle", - "required": true - }, - "isVisible": { - "type": "boolean?", - "description": "If `true`, always show target element. If `false`, always hide target element. If not supplied, toggle target element's visibility. " - } - }, - "shorthand": "elementId" -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "description": "Represents an entry for Action.ToggleVisibility's targetElements property", + "properties": { + "elementId": { + "type": "string", + "description": "Element ID of element to toggle", + "required": true + }, + "isVisible": { + "type": "boolean?", + "description": "If `true`, always show target element. If `false`, always hide target element. If not supplied, toggle target element's visibility. " + } + }, + "shorthand": "elementId" +} diff --git a/schemas/src/elements/ActionSet.json b/schemas/src/elements/ActionSet.json index efa194864e..af7c36b0f8 100644 --- a/schemas/src/elements/ActionSet.json +++ b/schemas/src/elements/ActionSet.json @@ -1,13 +1,13 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "extends": "Element", - "description": "Displays a set of actions.", - "properties": { - "actions": { - "type": "Action[]", - "description": "The array of `Action` elements to show.", - "required": true - } - }, - "version": "1.2" + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "extends": "Element", + "description": "Displays a set of actions.", + "properties": { + "actions": { + "type": "Action[]", + "description": "The array of `Action` elements to show.", + "required": true + } + }, + "version": "1.2" } diff --git a/schemas/src/elements/Column.json b/schemas/src/elements/Column.json index eeef9fca0d..e01b88c232 100644 --- a/schemas/src/elements/Column.json +++ b/schemas/src/elements/Column.json @@ -44,8 +44,8 @@ }, "rtl": { "type": "boolean?", - "description": "When `true` content in this container should be presented right to left. When 'false' content in this container should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.", - "version": "vNext" + "description": "When `true` content in this column should be presented right to left. When 'false' content in this column should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.", + "version": "1.5" }, "separator": { "type": "boolean", diff --git a/schemas/src/elements/ColumnSet.json b/schemas/src/elements/ColumnSet.json index 67eb612c50..c91d29e0a0 100644 --- a/schemas/src/elements/ColumnSet.json +++ b/schemas/src/elements/ColumnSet.json @@ -41,4 +41,4 @@ "description": "Controls the horizontal alignment of the ColumnSet. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left." } } -} \ No newline at end of file +} diff --git a/schemas/src/elements/Container.json b/schemas/src/elements/Container.json index 7cc7eeb2d4..c72cfcfce2 100644 --- a/schemas/src/elements/Container.json +++ b/schemas/src/elements/Container.json @@ -55,7 +55,7 @@ "rtl?": { "type": "boolean?", "description": "When `true` content in this container should be presented right to left. When 'false' content in this container should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.", - "version": "vNext" + "version": "1.5" } } } diff --git a/schemas/src/elements/Element.json b/schemas/src/elements/Element.json index 2e815172d5..e052d3af3a 100644 --- a/schemas/src/elements/Element.json +++ b/schemas/src/elements/Element.json @@ -1,25 +1,25 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "extends": "ToggleableItem", - "isAbstract": true, - "properties": { - "fallback": { - "type": "Element|FallbackOption", - "description": "Describes what to do when an unknown element is encountered or the requires of this or any children can't be met.", - "version": "1.2" - }, - "height": { - "type": "BlockElementHeight", - "description": "Specifies the height of the element.", - "version": "1.1" - }, - "separator": { - "type": "boolean", - "description": "When `true`, draw a separating line at the top of the element." - }, - "spacing": { - "type": "Spacing", - "description": "Controls the amount of spacing between this element and the preceding element." - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "extends": "ToggleableItem", + "isAbstract": true, + "properties": { + "fallback": { + "type": "Element|FallbackOption", + "description": "Describes what to do when an unknown element is encountered or the requires of this or any children can't be met.", + "version": "1.2" + }, + "height": { + "type": "BlockElementHeight", + "description": "Specifies the height of the element.", + "version": "1.1" + }, + "separator": { + "type": "boolean", + "description": "When `true`, draw a separating line at the top of the element." + }, + "spacing": { + "type": "Spacing", + "description": "Controls the amount of spacing between this element and the preceding element." + } + } +} diff --git a/schemas/src/elements/Fact.json b/schemas/src/elements/Fact.json index de2d6eed7d..5a50c19e0f 100644 --- a/schemas/src/elements/Fact.json +++ b/schemas/src/elements/Fact.json @@ -1,16 +1,16 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "description": "Describes a Fact in a FactSet as a key/value pair.", - "properties": { - "title": { - "type": "string", - "description": "The title of the fact.", - "required": true - }, - "value": { - "type": "string", - "description": "The value of the fact.", - "required": true - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "description": "Describes a Fact in a FactSet as a key/value pair.", + "properties": { + "title": { + "type": "string", + "description": "The title of the fact.", + "required": true + }, + "value": { + "type": "string", + "description": "The value of the fact.", + "required": true + } + } +} diff --git a/schemas/src/elements/FactSet.json b/schemas/src/elements/FactSet.json index 073cec0f3b..1d4a5c158b 100644 --- a/schemas/src/elements/FactSet.json +++ b/schemas/src/elements/FactSet.json @@ -5,8 +5,8 @@ "properties": { "facts": { "type": "Fact[]", - "description": "The array of `Fact`'s.", - "required": true + "description": "The array of `Fact`'s.", + "required": true } } -} \ No newline at end of file +} diff --git a/schemas/src/elements/Image.json b/schemas/src/elements/Image.json index 2d8b1c16e3..fde4389224 100644 --- a/schemas/src/elements/Image.json +++ b/schemas/src/elements/Image.json @@ -1,57 +1,57 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "extends": "Element", - "description": "Displays an image. Acceptable formats are PNG, JPEG, and GIF", - "properties": { - "url": { - "type": "uri-reference", - "description": "The URL to the image. Supports data URI in version 1.2+", - "required": true - }, - "altText": { - "type": "string", - "description": "Alternate text describing the image." - }, - "backgroundColor": { - "type": "string", - "description": "Applies a background to a transparent image. This property will respect the image style.", - "example": "#DDDDDD", - "version": "1.1" - }, - "height": { - "type": "string|BlockElementHeight", - "description": "The desired height of the image. If specified as a pixel value, ending in 'px', E.g., 50px, the image will distort to fit that exact height. This overrides the `size` property.", - "examples": [ - "50px" - ], - "default": "auto", - "override": true, - "version": "1.1" - }, - "horizontalAlignment": { - "type": "HorizontalAlignment?", - "description": "Controls how this element is horizontally positioned within its parent. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left." - }, - "selectAction": { - "type": "ISelectAction", - "description": "An Action that will be invoked when the `Image` is tapped or selected. `Action.ShowCard` is not supported.", - "version": "1.1" - }, - "size": { - "type": "ImageSize", - "description": "Controls the approximate size of the image. The physical dimensions will vary per host." - }, - "style": { - "type": "ImageStyle", - "description": "Controls how this `Image` is displayed." - }, - "width": { - "type": "string", - "description": "The desired on-screen width of the image, ending in 'px'. E.g., 50px. This overrides the `size` property.", - "examples": [ - "50px" - ], - "version": "1.1" - } - } + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "extends": "Element", + "description": "Displays an image. Acceptable formats are PNG, JPEG, and GIF", + "properties": { + "url": { + "type": "uri-reference", + "description": "The URL to the image. Supports data URI in version 1.2+", + "required": true + }, + "altText": { + "type": "string", + "description": "Alternate text describing the image." + }, + "backgroundColor": { + "type": "string", + "description": "Applies a background to a transparent image. This property will respect the image style.", + "example": "#DDDDDD", + "version": "1.1" + }, + "height": { + "type": "string|BlockElementHeight", + "description": "The desired height of the image. If specified as a pixel value, ending in 'px', E.g., 50px, the image will distort to fit that exact height. This overrides the `size` property.", + "examples": [ + "50px" + ], + "default": "auto", + "override": true, + "version": "1.1" + }, + "horizontalAlignment": { + "type": "HorizontalAlignment?", + "description": "Controls how this element is horizontally positioned within its parent. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left." + }, + "selectAction": { + "type": "ISelectAction", + "description": "An Action that will be invoked when the `Image` is tapped or selected. `Action.ShowCard` is not supported.", + "version": "1.1" + }, + "size": { + "type": "ImageSize", + "description": "Controls the approximate size of the image. The physical dimensions will vary per host." + }, + "style": { + "type": "ImageStyle", + "description": "Controls how this `Image` is displayed." + }, + "width": { + "type": "string", + "description": "The desired on-screen width of the image, ending in 'px'. E.g., 50px. This overrides the `size` property.", + "examples": [ + "50px" + ], + "version": "1.1" + } + } } diff --git a/schemas/src/elements/Media.json b/schemas/src/elements/Media.json index aa32bf022f..c4cc853013 100644 --- a/schemas/src/elements/Media.json +++ b/schemas/src/elements/Media.json @@ -1,24 +1,24 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "extends": "Element", - "description": "Displays a media player for audio or video content.", - "version": "1.1", - "features": [ - 196 - ], - "properties": { - "sources": { - "type": "MediaSource[]", - "description": "Array of media sources to attempt to play.", - "required": true - }, - "poster": { - "type": "uri-reference", - "description": "URL of an image to display before playing. Supports data URI in version 1.2+" - }, - "altText": { - "type": "string", - "description": "Alternate text describing the audio or video." - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "extends": "Element", + "description": "Displays a media player for audio or video content.", + "version": "1.1", + "features": [ + 196 + ], + "properties": { + "sources": { + "type": "MediaSource[]", + "description": "Array of media sources to attempt to play.", + "required": true + }, + "poster": { + "type": "uri-reference", + "description": "URL of an image to display before playing. Supports data URI in version 1.2+" + }, + "altText": { + "type": "string", + "description": "Alternate text describing the audio or video." + } + } +} diff --git a/schemas/src/elements/MediaSource.json b/schemas/src/elements/MediaSource.json index b4daf62b0f..993e43a80d 100644 --- a/schemas/src/elements/MediaSource.json +++ b/schemas/src/elements/MediaSource.json @@ -1,20 +1,20 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "description": "Defines a source for a Media element", - "version": "1.1", - "features": [ - 196 - ], - "properties": { - "mimeType": { - "type": "string", - "description": "Mime type of associated media (e.g. `\"video/mp4\"`).", - "required": true - }, - "url": { - "type": "uri-reference", - "description": "URL to media. Supports data URI in version 1.2+", - "required": true - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "description": "Defines a source for a Media element", + "version": "1.1", + "features": [ + 196 + ], + "properties": { + "mimeType": { + "type": "string", + "description": "Mime type of associated media (e.g. `\"video/mp4\"`).", + "required": true + }, + "url": { + "type": "uri-reference", + "description": "URL to media. Supports data URI in version 1.2+", + "required": true + } + } +} diff --git a/schemas/src/elements/RichTextBlock.json b/schemas/src/elements/RichTextBlock.json index 366801f743..36b7dec714 100644 --- a/schemas/src/elements/RichTextBlock.json +++ b/schemas/src/elements/RichTextBlock.json @@ -1,20 +1,20 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "extends": "Element", - "description": "Defines an array of inlines, allowing for inline text formatting.", - "version": "1.2", - "features": [ - 1933 - ], - "properties": { - "inlines": { - "type": "Inline[]", - "description": "The array of inlines.", - "required": true - }, - "horizontalAlignment": { - "type": "HorizontalAlignment?", - "description": "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left." - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "extends": "Element", + "description": "Defines an array of inlines, allowing for inline text formatting.", + "version": "1.2", + "features": [ + 1933 + ], + "properties": { + "inlines": { + "type": "Inline[]", + "description": "The array of inlines.", + "required": true + }, + "horizontalAlignment": { + "type": "HorizontalAlignment?", + "description": "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left." + } + } +} diff --git a/schemas/src/elements/Table.json b/schemas/src/elements/Table.json index 22a05170c0..2bc73d9074 100644 --- a/schemas/src/elements/Table.json +++ b/schemas/src/elements/Table.json @@ -1,39 +1,39 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "extends": "Element", - "description": "Provides a way to display data in a tabular form.", - "version": "1.5", - "properties": { - "columns": { - "type": "TableColumnDefinition[]", - "description": "Defines the number of columns in the table, their sizes, and more." - }, - "rows": { - "type": "TableRow[]", - "description": "Defines the rows of the table." - }, - "firstRowAsHeader": { - "type": "boolean", - "description": "Specifies whether the first row of the table should be treated as a header row, and be announced as such by accessibility software.", - "default": true - }, - "showGridLines": { - "type": "boolean", - "description": "Specifies whether grid lines should be displayed.", - "default": true - }, - "gridStyle": { - "type": "ContainerStyle?", - "description": "Defines the style of the grid. This property currently only controls the grid's color.", - "default": "default" - }, - "horizontalCellContentAlignment": { - "type": "HorizontalAlignment?", - "description": "Controls how the content of all cells is horizontally aligned by default. When not specified, horizontal alignment is defined on a per-cell basis." - }, - "verticalCellContentAlignment": { - "type": "VerticalAlignment?", - "description": "Controls how the content of all cells is vertically aligned by default. When not specified, vertical alignment is defined on a per-cell basis." - } - } + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "extends": "Element", + "description": "Provides a way to display data in a tabular form.", + "version": "1.5", + "properties": { + "columns": { + "type": "TableColumnDefinition[]", + "description": "Defines the number of columns in the table, their sizes, and more." + }, + "rows": { + "type": "TableRow[]", + "description": "Defines the rows of the table." + }, + "firstRowAsHeader": { + "type": "boolean", + "description": "Specifies whether the first row of the table should be treated as a header row, and be announced as such by accessibility software.", + "default": true + }, + "showGridLines": { + "type": "boolean", + "description": "Specifies whether grid lines should be displayed.", + "default": true + }, + "gridStyle": { + "type": "ContainerStyle?", + "description": "Defines the style of the grid. This property currently only controls the grid's color.", + "default": "default" + }, + "horizontalCellContentAlignment": { + "type": "HorizontalAlignment?", + "description": "Controls how the content of all cells is horizontally aligned by default. When not specified, horizontal alignment is defined on a per-cell basis." + }, + "verticalCellContentAlignment": { + "type": "VerticalAlignment?", + "description": "Controls how the content of all cells is vertically aligned by default. When not specified, vertical alignment is defined on a per-cell basis." + } + } } diff --git a/schemas/src/elements/TableCell.json b/schemas/src/elements/TableCell.json index c88453506e..d33781319f 100644 --- a/schemas/src/elements/TableCell.json +++ b/schemas/src/elements/TableCell.json @@ -1,6 +1,61 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "description": "Represents a cell within a row of a Table element.", - "extends": "Container", - "version": "1.5" -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "description": "Represents a cell within a row of a Table element.", + "version": "1.5", + "properties": { + "items": { + "type": "Element[]", + "description": "The card elements to render inside the `TableCell`.", + "required": true + }, + "selectAction": { + "type": "ISelectAction", + "description": "An Action that will be invoked when the `TableCell` is tapped or selected. `Action.ShowCard` is not supported.", + "version": "1.1" + }, + "style": { + "type": "ContainerStyle?", + "description": "Style hint for `TableCell`." + }, + "verticalContentAlignment": { + "type": "VerticalContentAlignment?", + "description": "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.", + "version": "1.1" + }, + "bleed": { + "type": "boolean", + "description": "Determines whether the element should bleed through its parent's padding.", + "version": "1.2", + "features": [ + 2109 + ] + }, + "backgroundImage": { + "type": "BackgroundImage", + "description": "Specifies the background image. Acceptable formats are PNG, JPEG, and GIF", + "version": "1.2", + "shorthands": [ + { + "type": "uri-reference", + "description": "The URL (or data url) to use as the background image. Supports data URI." + } + ] + }, + "minHeight": { + "type": "string", + "description": "Specifies the minimum height of the container in pixels, like `\"80px\"`.", + "examples": [ + "50px" + ], + "version": "1.2", + "features": [ + 2293 + ] + }, + "rtl?": { + "type": "boolean?", + "description": "When `true` content in this container should be presented right to left. When 'false' content in this container should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.", + "version": "1.5" + } + } +} diff --git a/schemas/src/elements/TableColumnDefinition.json b/schemas/src/elements/TableColumnDefinition.json index fcf38df385..77a0519073 100644 --- a/schemas/src/elements/TableColumnDefinition.json +++ b/schemas/src/elements/TableColumnDefinition.json @@ -1,20 +1,20 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "description": "Defines the characteristics of a column in a Table element.", - "version": "1.5", - "properties": { - "width": { - "type": "string|number", - "description": "Specifies the width of the column. If expressed as a number, width represents the weight a the column relative to the other columns in the table. If expressed as a string, width must by in the format \"px\" (for instance, \"50px\") and represents an explicit number of pixels.", - "default": 1 - }, - "horizontalCellContentAlignment": { - "type": "HorizontalAlignment?", - "description": "Controls how the content of all cells in the column is horizontally aligned by default. When specified, this value overrides the setting at the table level. When not specified, horizontal alignment is defined at the table, row or cell level." - }, - "verticalCellContentAlignment": { - "type": "VerticalAlignment?", - "description": "Controls how the content of all cells in the column is vertically aligned by default. When specified, this value overrides the setting at the table level. When not specified, vertical alignment is defined at the table, row or cell level." - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "description": "Defines the characteristics of a column in a Table element.", + "version": "1.5", + "properties": { + "width": { + "type": "string|number", + "description": "Specifies the width of the column. If expressed as a number, width represents the weight a the column relative to the other columns in the table. If expressed as a string, width must by in the format \"px\" (for instance, \"50px\") and represents an explicit number of pixels.", + "default": 1 + }, + "horizontalCellContentAlignment": { + "type": "HorizontalAlignment?", + "description": "Controls how the content of all cells in the column is horizontally aligned by default. When specified, this value overrides the setting at the table level. When not specified, horizontal alignment is defined at the table, row or cell level." + }, + "verticalCellContentAlignment": { + "type": "VerticalAlignment?", + "description": "Controls how the content of all cells in the column is vertically aligned by default. When specified, this value overrides the setting at the table level. When not specified, vertical alignment is defined at the table, row or cell level." + } + } +} diff --git a/schemas/src/elements/TableRow.json b/schemas/src/elements/TableRow.json index 59962db412..a07fbfa834 100644 --- a/schemas/src/elements/TableRow.json +++ b/schemas/src/elements/TableRow.json @@ -1,24 +1,23 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "description": "Represents a row of cells within a Table element.", - "extends": "Element", - "version": "1.5", - "properties": { - "cells": { - "type": "TableCell[]", - "description": "The cells in this row. If a row contains more cells than there are columns defined on the Table element, the extra cells are ignored." - }, + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "description": "Represents a row of cells within a Table element.", + "version": "1.5", + "properties": { + "cells": { + "type": "TableCell[]", + "description": "The cells in this row. If a row contains more cells than there are columns defined on the Table element, the extra cells are ignored." + }, "style": { "type": "ContainerStyle?", "description": "Defines the style of the entire row." }, - "horizontalCellContentAlignment": { - "type": "HorizontalAlignment?", - "description": "Controls how the content of all cells in the row is horizontally aligned by default. When specified, this value overrides both the setting at the table and columns level. When not specified, horizontal alignment is defined at the table, column or cell level." - }, - "verticalCellContentAlignment": { - "type": "VerticalAlignment?", - "description": "Controls how the content of all cells in the column is vertically aligned by default. When specified, this value overrides the setting at the table and column level. When not specified, vertical alignment is defined either at the table, column or cell level." - } - } -} \ No newline at end of file + "horizontalCellContentAlignment": { + "type": "HorizontalAlignment?", + "description": "Controls how the content of all cells in the row is horizontally aligned by default. When specified, this value overrides both the setting at the table and columns level. When not specified, horizontal alignment is defined at the table, column or cell level." + }, + "verticalCellContentAlignment": { + "type": "VerticalAlignment?", + "description": "Controls how the content of all cells in the column is vertically aligned by default. When specified, this value overrides the setting at the table and column level. When not specified, vertical alignment is defined either at the table, column or cell level." + } + } +} diff --git a/schemas/src/elements/TextBlock.json b/schemas/src/elements/TextBlock.json index 2cb2750b1e..60399dc4dd 100644 --- a/schemas/src/elements/TextBlock.json +++ b/schemas/src/elements/TextBlock.json @@ -1,52 +1,52 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "extends": "Element", - "description": "Displays text, allowing control over font sizes, weight, and color.", - "properties": { - "text": { - "type": "string", - "description": "Text to display. A subset of markdown is supported (https://aka.ms/ACTextFeatures)", - "required": true - }, - "color": { - "type": "Colors?", - "description": "Controls the color of `TextBlock` elements." - }, - "fontType": { - "type": "FontType?", - "description": "Type of font to use for rendering", - "version": "1.2" - }, - "horizontalAlignment": { - "type": "HorizontalAlignment?", - "description": "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left." - }, - "isSubtle": { - "type": "boolean?", - "description": "If `true`, displays text slightly toned down to appear less prominent.", - "default": false - }, - "maxLines": { - "type": "number", - "description": "Specifies the maximum number of lines to display." - }, - "size": { - "type": "FontSize?", - "description": "Controls size of text." - }, - "weight": { - "type": "FontWeight?", - "description": "Controls the weight of `TextBlock` elements." - }, - "wrap": { - "type": "boolean", - "description": "If `true`, allow text to wrap. Otherwise, text is clipped.", - "default": false - }, - "style": { - "type": "TextBlockStyle?", - "description": "The style of this TextBlock for accessibility purposes.", - "default": "default" - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "extends": "Element", + "description": "Displays text, allowing control over font sizes, weight, and color.", + "properties": { + "text": { + "type": "string", + "description": "Text to display. A subset of markdown is supported (https://aka.ms/ACTextFeatures)", + "required": true + }, + "color": { + "type": "Colors?", + "description": "Controls the color of `TextBlock` elements." + }, + "fontType": { + "type": "FontType?", + "description": "Type of font to use for rendering", + "version": "1.2" + }, + "horizontalAlignment": { + "type": "HorizontalAlignment?", + "description": "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left." + }, + "isSubtle": { + "type": "boolean?", + "description": "If `true`, displays text slightly toned down to appear less prominent.", + "default": false + }, + "maxLines": { + "type": "number", + "description": "Specifies the maximum number of lines to display." + }, + "size": { + "type": "FontSize?", + "description": "Controls size of text." + }, + "weight": { + "type": "FontWeight?", + "description": "Controls the weight of `TextBlock` elements." + }, + "wrap": { + "type": "boolean", + "description": "If `true`, allow text to wrap. Otherwise, text is clipped.", + "default": false + }, + "style": { + "type": "TextBlockStyle?", + "description": "The style of this TextBlock for accessibility purposes.", + "default": "default" + } + } +} diff --git a/schemas/src/elements/inlines/Inline.json b/schemas/src/elements/inlines/Inline.json index f4538382ba..d9ac1e53a7 100644 --- a/schemas/src/elements/inlines/Inline.json +++ b/schemas/src/elements/inlines/Inline.json @@ -1,5 +1,5 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "isAbstract": true, - "description": "Marker interface for inlines" -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "isAbstract": true, + "description": "Marker interface for inlines" +} diff --git a/schemas/src/elements/inlines/TextRun.json b/schemas/src/elements/inlines/TextRun.json index bc4531efbf..aebc1fb7f1 100644 --- a/schemas/src/elements/inlines/TextRun.json +++ b/schemas/src/elements/inlines/TextRun.json @@ -1,56 +1,56 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "extends": "Inline", - "description": "Defines a single run of formatted text. A TextRun with no properties set can be represented in the json as string containing the text as a shorthand for the json object. These two representations are equivalent.", - "version": "1.2", - "properties": { - "text": { - "type": "string", - "description": "Text to display. Markdown is not supported.", - "required": true - }, - "color": { - "type": "Colors?", - "description": "Controls the color of the text." - }, - "fontType": { - "type": "FontType?", - "description": "The type of font to use" - }, - "highlight": { - "type": "boolean", - "description": "If `true`, displays the text highlighted." - }, - "isSubtle": { - "type": "boolean?", - "description": "If `true`, displays text slightly toned down to appear less prominent.", - "default": false - }, - "italic": { - "type": "boolean", - "description": "If `true`, displays the text using italic font." - }, - "selectAction": { - "type": "ISelectAction", - "description": "Action to invoke when this text run is clicked. Visually changes the text run into a hyperlink. `Action.ShowCard` is not supported." - }, - "size": { - "type": "FontSize?", - "description": "Controls size of text." - }, - "strikethrough": { - "type": "boolean", - "description": "If `true`, displays the text with strikethrough." - }, - "underline": { - "type": "boolean", - "description": "If `true`, displays the text with an underline.", - "version":"1.3" - }, - "weight": { - "type": "FontWeight?", - "description": "Controls the weight of the text." - } - }, - "shorthand": "text" + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "extends": "Inline", + "description": "Defines a single run of formatted text. A TextRun with no properties set can be represented in the json as string containing the text as a shorthand for the json object. These two representations are equivalent.", + "version": "1.2", + "properties": { + "text": { + "type": "string", + "description": "Text to display. Markdown is not supported.", + "required": true + }, + "color": { + "type": "Colors?", + "description": "Controls the color of the text." + }, + "fontType": { + "type": "FontType?", + "description": "The type of font to use" + }, + "highlight": { + "type": "boolean", + "description": "If `true`, displays the text highlighted." + }, + "isSubtle": { + "type": "boolean?", + "description": "If `true`, displays text slightly toned down to appear less prominent.", + "default": false + }, + "italic": { + "type": "boolean", + "description": "If `true`, displays the text using italic font." + }, + "selectAction": { + "type": "ISelectAction", + "description": "Action to invoke when this text run is clicked. Visually changes the text run into a hyperlink. `Action.ShowCard` is not supported." + }, + "size": { + "type": "FontSize?", + "description": "Controls size of text." + }, + "strikethrough": { + "type": "boolean", + "description": "If `true`, displays the text with strikethrough." + }, + "underline": { + "type": "boolean", + "description": "If `true`, displays the text with an underline.", + "version":"1.3" + }, + "weight": { + "type": "FontWeight?", + "description": "Controls the weight of the text." + } + }, + "shorthand": "text" } diff --git a/schemas/src/elements/inputs/Input.Choice.json b/schemas/src/elements/inputs/Input.Choice.json index 0061968032..f2c3a975ea 100644 --- a/schemas/src/elements/inputs/Input.Choice.json +++ b/schemas/src/elements/inputs/Input.Choice.json @@ -1,16 +1,16 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "description": "Describes a choice for use in a ChoiceSet.", - "properties": { - "title": { - "type": "string", - "description": "Text to display.", - "required": true - }, - "value": { - "type": "string", - "description": "The raw value for the choice. **NOTE:** do not use a `,` in the value, since a `ChoiceSet` with `isMultiSelect` set to `true` returns a comma-delimited string of choice values.", - "required": true - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "description": "Describes a choice for use in a ChoiceSet.", + "properties": { + "title": { + "type": "string", + "description": "Text to display.", + "required": true + }, + "value": { + "type": "string", + "description": "The raw value for the choice. **NOTE:** do not use a `,` in the value, since a `ChoiceSet` with `isMultiSelect` set to `true` returns a comma-delimited string of choice values.", + "required": true + } + } +} diff --git a/schemas/src/elements/inputs/Input.ChoiceSet.json b/schemas/src/elements/inputs/Input.ChoiceSet.json index b2a254affe..76aaf94e83 100644 --- a/schemas/src/elements/inputs/Input.ChoiceSet.json +++ b/schemas/src/elements/inputs/Input.ChoiceSet.json @@ -1,32 +1,32 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "extends": "Input", - "description": "Allows a user to input a Choice.", - "properties": { - "choices": { - "type": "Input.Choice[]", - "description": "`Choice` options." - }, - "isMultiSelect": { - "type": "boolean", - "description": "Allow multiple choices to be selected.", - "default": false - }, - "style": { - "type": "ChoiceInputStyle" - }, - "value": { - "type": "string", - "description": "The initial choice (or set of choices) that should be selected. For multi-select, specify a comma-separated string of values." - }, - "placeholder": { - "type": "string", - "description": "Description of the input desired. Only visible when no selection has been made, the `style` is `compact` and `isMultiSelect` is `false`" - }, - "wrap": { - "type": "boolean", - "description": "If `true`, allow text to wrap. Otherwise, text is clipped.", - "version": "1.2" - } - } + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "extends": "Input", + "description": "Allows a user to input a Choice.", + "properties": { + "choices": { + "type": "Input.Choice[]", + "description": "`Choice` options." + }, + "isMultiSelect": { + "type": "boolean", + "description": "Allow multiple choices to be selected.", + "default": false + }, + "style": { + "type": "ChoiceInputStyle" + }, + "value": { + "type": "string", + "description": "The initial choice (or set of choices) that should be selected. For multi-select, specify a comma-separated string of values." + }, + "placeholder": { + "type": "string", + "description": "Description of the input desired. Only visible when no selection has been made, the `style` is `compact` and `isMultiSelect` is `false`" + }, + "wrap": { + "type": "boolean", + "description": "If `true`, allow text to wrap. Otherwise, text is clipped.", + "version": "1.2" + } + } } diff --git a/schemas/src/elements/inputs/Input.Date.json b/schemas/src/elements/inputs/Input.Date.json index 4555baff97..44fcb4074e 100644 --- a/schemas/src/elements/inputs/Input.Date.json +++ b/schemas/src/elements/inputs/Input.Date.json @@ -1,23 +1,23 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "extends": "Input", - "description": "Lets a user choose a date.", - "properties": { - "max": { - "type": "string", - "description": "Hint of maximum value expressed in YYYY-MM-DD(may be ignored by some clients)." - }, - "min": { - "type": "string", - "description": "Hint of minimum value expressed in YYYY-MM-DD(may be ignored by some clients)." - }, - "placeholder": { - "type": "string", - "description": "Description of the input desired. Displayed when no selection has been made." - }, - "value": { - "type": "string", - "description": "The initial value for this field expressed in YYYY-MM-DD." - } - } + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "extends": "Input", + "description": "Lets a user choose a date.", + "properties": { + "max": { + "type": "string", + "description": "Hint of maximum value expressed in YYYY-MM-DD(may be ignored by some clients)." + }, + "min": { + "type": "string", + "description": "Hint of minimum value expressed in YYYY-MM-DD(may be ignored by some clients)." + }, + "placeholder": { + "type": "string", + "description": "Description of the input desired. Displayed when no selection has been made." + }, + "value": { + "type": "string", + "description": "The initial value for this field expressed in YYYY-MM-DD." + } + } } diff --git a/schemas/src/elements/inputs/Input.Number.json b/schemas/src/elements/inputs/Input.Number.json index 5956a3e2b7..15266598f2 100644 --- a/schemas/src/elements/inputs/Input.Number.json +++ b/schemas/src/elements/inputs/Input.Number.json @@ -1,23 +1,23 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "extends": "Input", - "description": "Allows a user to enter a number.", - "properties": { - "max": { - "type": "number", - "description": "Hint of maximum value (may be ignored by some clients)." - }, - "min": { - "type": "number", - "description": "Hint of minimum value (may be ignored by some clients)." - }, - "placeholder": { - "type": "string", - "description": "Description of the input desired. Displayed when no selection has been made." - }, - "value": { - "type": "number", - "description": "Initial value for this field." - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "extends": "Input", + "description": "Allows a user to enter a number.", + "properties": { + "max": { + "type": "number", + "description": "Hint of maximum value (may be ignored by some clients)." + }, + "min": { + "type": "number", + "description": "Hint of minimum value (may be ignored by some clients)." + }, + "placeholder": { + "type": "string", + "description": "Description of the input desired. Displayed when no selection has been made." + }, + "value": { + "type": "number", + "description": "Initial value for this field." + } + } +} diff --git a/schemas/src/elements/inputs/Input.Time.json b/schemas/src/elements/inputs/Input.Time.json index e38a11a0e9..e1c2ca3f5c 100644 --- a/schemas/src/elements/inputs/Input.Time.json +++ b/schemas/src/elements/inputs/Input.Time.json @@ -1,23 +1,23 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "extends": "Input", - "description": "Lets a user select a time.", - "properties": { - "max": { - "type": "string", - "description": "Hint of maximum value expressed in HH:MM (may be ignored by some clients)." - }, - "min": { - "type": "string", - "description": "Hint of minimum value expressed in HH:MM (may be ignored by some clients)." - }, - "placeholder": { - "type": "string", - "description": "Description of the input desired. Displayed when no time has been selected." - }, - "value": { - "type": "string", - "description": "The initial value for this field expressed in HH:MM." - } - } + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "extends": "Input", + "description": "Lets a user select a time.", + "properties": { + "max": { + "type": "string", + "description": "Hint of maximum value expressed in HH:MM (may be ignored by some clients)." + }, + "min": { + "type": "string", + "description": "Hint of minimum value expressed in HH:MM (may be ignored by some clients)." + }, + "placeholder": { + "type": "string", + "description": "Description of the input desired. Displayed when no time has been selected." + }, + "value": { + "type": "string", + "description": "The initial value for this field expressed in HH:MM." + } + } } diff --git a/schemas/src/elements/inputs/Input.Toggle.json b/schemas/src/elements/inputs/Input.Toggle.json index 122751f415..1cdf7f7692 100644 --- a/schemas/src/elements/inputs/Input.Toggle.json +++ b/schemas/src/elements/inputs/Input.Toggle.json @@ -1,32 +1,32 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "extends": "Input", - "description": "Lets a user choose between two options.", - "properties": { - "title": { - "type": "string", - "description": "Title for the toggle", - "required": true - }, - "value": { - "type": "string", - "description": "The initial selected value. If you want the toggle to be initially on, set this to the value of `valueOn`'s value.", - "default": "false" - }, - "valueOff": { - "type": "string", - "description": "The value when toggle is off", - "default": "false" - }, - "valueOn": { - "type": "string", - "description": "The value when toggle is on", - "default": "true" - }, - "wrap": { - "type": "boolean", - "description": "If `true`, allow text to wrap. Otherwise, text is clipped.", - "version": "1.2" - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "extends": "Input", + "description": "Lets a user choose between two options.", + "properties": { + "title": { + "type": "string", + "description": "Title for the toggle", + "required": true + }, + "value": { + "type": "string", + "description": "The initial selected value. If you want the toggle to be initially on, set this to the value of `valueOn`'s value.", + "default": "false" + }, + "valueOff": { + "type": "string", + "description": "The value when toggle is off", + "default": "false" + }, + "valueOn": { + "type": "string", + "description": "The value when toggle is on", + "default": "true" + }, + "wrap": { + "type": "boolean", + "description": "If `true`, allow text to wrap. Otherwise, text is clipped.", + "version": "1.2" + } + } +} diff --git a/schemas/src/elements/inputs/Input.json b/schemas/src/elements/inputs/Input.json index 0c21e95acf..89eaacb903 100644 --- a/schemas/src/elements/inputs/Input.json +++ b/schemas/src/elements/inputs/Input.json @@ -27,4 +27,4 @@ } } } - \ No newline at end of file + diff --git a/schemas/src/enums/ActionMode.json b/schemas/src/enums/ActionMode.json new file mode 100644 index 0000000000..c61910b6bb --- /dev/null +++ b/schemas/src/enums/ActionMode.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "description": "Determines whether an action is displayed with a button or is moved to the overflow menu.", + "features": [ + 4715 + ], + "version": "1.5", + "values": [ + { + "value": "primary", + "description": "Action is displayed as a button." + }, + { + "value": "secondary", + "description": "Action is placed in an overflow menu (typically a popup menu under a `...` button)." + } + ] +} diff --git a/schemas/src/enums/ActionStyle.json b/schemas/src/enums/ActionStyle.json index 8146a87492..4d1584524f 100644 --- a/schemas/src/enums/ActionStyle.json +++ b/schemas/src/enums/ActionStyle.json @@ -1,23 +1,23 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "description": "Controls the style of an Action, which influences how the action is displayed, spoken, etc.", - "features": [ - 861 - ], - "version": "1.2", - "values": [ - { - "value": "default", - "description": "Action is displayed as normal" - }, - { - "value": "positive", - "description": "Action is displayed with a positive style (typically the button becomes accent color)" - }, - { - "value": "destructive", - "description": "Action is displayed with a destructive style (typically the button becomes red)" - } - ] -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "description": "Controls the style of an Action, which influences how the action is displayed, spoken, etc.", + "features": [ + 861 + ], + "version": "1.2", + "values": [ + { + "value": "default", + "description": "Action is displayed as normal" + }, + { + "value": "positive", + "description": "Action is displayed with a positive style (typically the button becomes accent color)" + }, + { + "value": "destructive", + "description": "Action is displayed with a destructive style (typically the button becomes red)" + } + ] +} diff --git a/schemas/src/enums/BlockElementHeight.json b/schemas/src/enums/BlockElementHeight.json index d6a22e085d..839c7d269b 100644 --- a/schemas/src/enums/BlockElementHeight.json +++ b/schemas/src/enums/BlockElementHeight.json @@ -1,14 +1,14 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "values": [ - { - "value": "auto", - "description": "The height of the container will be determined by the height of its contents." - }, - { - "value": "stretch", - "description": "The container will stretch its height to the available remaining height of the parent container." - } - ] -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "values": [ + { + "value": "auto", + "description": "The height of the container will be determined by the height of its contents." + }, + { + "value": "stretch", + "description": "The container will stretch its height to the available remaining height of the parent container." + } + ] +} diff --git a/schemas/src/enums/ChoiceInputStyle.json b/schemas/src/enums/ChoiceInputStyle.json index 19c39192f3..4a38898186 100644 --- a/schemas/src/enums/ChoiceInputStyle.json +++ b/schemas/src/enums/ChoiceInputStyle.json @@ -1,9 +1,14 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "description": "Style hint for `Input.ChoiceSet`.", - "values": [ - "compact", - "expanded" - ] -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "description": "Style hint for `Input.ChoiceSet`.", + "values": [ + "compact", + "expanded", + { + "value": "filtered", + "description": "Allows users to filter choices in a choice set.", + "version": "1.5" + } + ] +} diff --git a/schemas/src/enums/Colors.json b/schemas/src/enums/Colors.json index 0124e228c3..8e29d41484 100644 --- a/schemas/src/enums/Colors.json +++ b/schemas/src/enums/Colors.json @@ -1,13 +1,13 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "values": [ - "default", - "dark", - "light", - "accent", - "good", - "warning", - "attention" - ] -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "values": [ + "default", + "dark", + "light", + "accent", + "good", + "warning", + "attention" + ] +} diff --git a/schemas/src/enums/ContainerStyle.json b/schemas/src/enums/ContainerStyle.json index 9512dc6531..2db0286f57 100644 --- a/schemas/src/enums/ContainerStyle.json +++ b/schemas/src/enums/ContainerStyle.json @@ -1,24 +1,24 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "values": [ - "default", - "emphasis", - { - "value": "good", - "version": "1.2" - }, - { - "value": "attention", - "version": "1.2" - }, - { - "value": "warning", - "version": "1.2" - }, - { - "value": "accent", - "version": "1.2" - } - ] -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "values": [ + "default", + "emphasis", + { + "value": "good", + "version": "1.2" + }, + { + "value": "attention", + "version": "1.2" + }, + { + "value": "warning", + "version": "1.2" + }, + { + "value": "accent", + "version": "1.2" + } + ] +} diff --git a/schemas/src/enums/FallbackOption.json b/schemas/src/enums/FallbackOption.json index 2a729eec92..1a460c75f9 100644 --- a/schemas/src/enums/FallbackOption.json +++ b/schemas/src/enums/FallbackOption.json @@ -1,10 +1,10 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "values": [ - { - "value": "drop", - "description": "Causes this element to be dropped immediately when unknown elements are encountered. The unknown element doesn't bubble up any higher." - } - ] -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "values": [ + { + "value": "drop", + "description": "Causes this element to be dropped immediately when unknown elements are encountered. The unknown element doesn't bubble up any higher." + } + ] +} diff --git a/schemas/src/enums/FontSize.json b/schemas/src/enums/FontSize.json index 3adaa603aa..2207d53f16 100644 --- a/schemas/src/enums/FontSize.json +++ b/schemas/src/enums/FontSize.json @@ -1,11 +1,11 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "values": [ - "default", - "small", - "medium", - "large", - "extraLarge" - ] -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "values": [ + "default", + "small", + "medium", + "large", + "extraLarge" + ] +} diff --git a/schemas/src/enums/FontType.json b/schemas/src/enums/FontType.json index 8bce7c8a93..17fe902e93 100644 --- a/schemas/src/enums/FontType.json +++ b/schemas/src/enums/FontType.json @@ -1,8 +1,8 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "values": [ - "default", - "monospace" - ] -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "values": [ + "default", + "monospace" + ] +} diff --git a/schemas/src/enums/FontWeight.json b/schemas/src/enums/FontWeight.json index 7046d69367..dcecb9c6bc 100644 --- a/schemas/src/enums/FontWeight.json +++ b/schemas/src/enums/FontWeight.json @@ -1,9 +1,9 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "values": [ - "default", - "lighter", - "bolder" - ] -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "values": [ + "default", + "lighter", + "bolder" + ] +} diff --git a/schemas/src/enums/HorizontalAlignment.json b/schemas/src/enums/HorizontalAlignment.json index 50980f07bd..168c234ef3 100644 --- a/schemas/src/enums/HorizontalAlignment.json +++ b/schemas/src/enums/HorizontalAlignment.json @@ -1,10 +1,10 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "description": "Controls how content is horizontally positioned within its container.", - "values": [ - "left", - "center", - "right" - ] -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "description": "Controls how content is horizontally positioned within its container.", + "values": [ + "left", + "center", + "right" + ] +} diff --git a/schemas/src/enums/ImageFillMode.json b/schemas/src/enums/ImageFillMode.json index 86656fdb0b..87c40f2137 100644 --- a/schemas/src/enums/ImageFillMode.json +++ b/schemas/src/enums/ImageFillMode.json @@ -1,22 +1,22 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "values": [ - { - "value": "cover", - "description": "The background image covers the entire width of the container. Its aspect ratio is preserved. Content may be clipped if the aspect ratio of the image doesn't match the aspect ratio of the container. **verticalAlignment** is respected (**horizontalAlignment** is meaningless since it's stretched width). This is the default mode and is the equivalent to the current model." - }, - { - "value": "repeatHorizontally", - "description": "The background image isn't stretched. It is repeated in the x axis as many times as necessary to cover the container's width. **verticalAlignment** is honored (default is **top**), **horizontalAlignment** is ignored." - }, - { - "value": "repeatVertically", - "description": "The background image isn't stretched. It is repeated in the y axis as many times as necessary to cover the container's height. **verticalAlignment** is ignored, **horizontalAlignment** is honored (default is **left**)." - }, - { - "value": "repeat", - "description": "The background image isn't stretched. It is repeated first in the x axis then in the y axis as many times as necessary to cover the entire container. Both **horizontalAlignment** and **verticalAlignment** are honored (defaults are **left** and **top**)." - } - ] -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "values": [ + { + "value": "cover", + "description": "The background image covers the entire width of the container. Its aspect ratio is preserved. Content may be clipped if the aspect ratio of the image doesn't match the aspect ratio of the container. **verticalAlignment** is respected (**horizontalAlignment** is meaningless since it's stretched width). This is the default mode and is the equivalent to the current model." + }, + { + "value": "repeatHorizontally", + "description": "The background image isn't stretched. It is repeated in the x axis as many times as necessary to cover the container's width. **verticalAlignment** is honored (default is **top**), **horizontalAlignment** is ignored." + }, + { + "value": "repeatVertically", + "description": "The background image isn't stretched. It is repeated in the y axis as many times as necessary to cover the container's height. **verticalAlignment** is ignored, **horizontalAlignment** is honored (default is **left**)." + }, + { + "value": "repeat", + "description": "The background image isn't stretched. It is repeated first in the x axis then in the y axis as many times as necessary to cover the entire container. Both **horizontalAlignment** and **verticalAlignment** are honored (defaults are **left** and **top**)." + } + ] +} diff --git a/schemas/src/enums/ImageSize.json b/schemas/src/enums/ImageSize.json index b7bc3eee64..1e5b67cfe1 100644 --- a/schemas/src/enums/ImageSize.json +++ b/schemas/src/enums/ImageSize.json @@ -1,27 +1,27 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "description": "Controls the approximate size of the image. The physical dimensions will vary per host. Every option preserves aspect ratio.", - "values": [ - { - "value": "auto", - "description": "Image will scale down to fit if needed, but will not scale up to fill the area." - }, - { - "value": "stretch", - "description": "Image with both scale down and up to fit as needed." - }, - { - "value": "small", - "description": "Image is displayed with a fixed small width, where the width is determined by the host." - }, - { - "value": "medium", - "description": "Image is displayed with a fixed medium width, where the width is determined by the host." - }, - { - "value": "large", - "description": "Image is displayed with a fixed large width, where the width is determined by the host." - } - ] -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "description": "Controls the approximate size of the image. The physical dimensions will vary per host. Every option preserves aspect ratio.", + "values": [ + { + "value": "auto", + "description": "Image will scale down to fit if needed, but will not scale up to fill the area." + }, + { + "value": "stretch", + "description": "Image with both scale down and up to fit as needed." + }, + { + "value": "small", + "description": "Image is displayed with a fixed small width, where the width is determined by the host." + }, + { + "value": "medium", + "description": "Image is displayed with a fixed medium width, where the width is determined by the host." + }, + { + "value": "large", + "description": "Image is displayed with a fixed large width, where the width is determined by the host." + } + ] +} diff --git a/schemas/src/enums/ImageStyle.json b/schemas/src/enums/ImageStyle.json index 0f3238be38..0a75f137ab 100644 --- a/schemas/src/enums/ImageStyle.json +++ b/schemas/src/enums/ImageStyle.json @@ -1,9 +1,9 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "description": "Controls how this `Image` is displayed.", - "values": [ - "default", - "person" - ] -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "description": "Controls how this `Image` is displayed.", + "values": [ + "default", + "person" + ] +} diff --git a/schemas/src/enums/Spacing.json b/schemas/src/enums/Spacing.json index 0ebb6560e3..7bcdc9140a 100644 --- a/schemas/src/enums/Spacing.json +++ b/schemas/src/enums/Spacing.json @@ -1,14 +1,14 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "description": "Specifies how much spacing. Hosts pick the exact pixel amounts for each of these.", - "values": [ - "default", - "none", - "small", - "medium", - "large", - "extraLarge", - "padding" - ] -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "description": "Specifies how much spacing. Hosts pick the exact pixel amounts for each of these.", + "values": [ + "default", + "none", + "small", + "medium", + "large", + "extraLarge", + "padding" + ] +} diff --git a/schemas/src/enums/TextBlockStyle.json b/schemas/src/enums/TextBlockStyle.json index 34a1dc163f..d0ca4a6f0e 100644 --- a/schemas/src/enums/TextBlockStyle.json +++ b/schemas/src/enums/TextBlockStyle.json @@ -1,16 +1,16 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "description": "Controls how a TextBlock behaves.", - "version": "1.5", - "values": [ - { - "value": "default", - "description": "This is the default style which provide no special styling or behavior." - }, - { - "value": "heading", - "description": "The TextBlock is a heading. This will apply the heading styling defaults and mark the text block as a heading for accessiblity." - } - ] - } + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "description": "Controls how a TextBlock behaves.", + "version": "1.5", + "values": [ + { + "value": "default", + "description": "This is the default style which provide no special styling or behavior." + }, + { + "value": "heading", + "description": "The TextBlock is a heading. This will apply the heading styling defaults and mark the text block as a heading for accessiblity." + } + ] + } diff --git a/schemas/src/enums/TextInputStyle.json b/schemas/src/enums/TextInputStyle.json index 2af3cceb18..ea5182e96b 100644 --- a/schemas/src/enums/TextInputStyle.json +++ b/schemas/src/enums/TextInputStyle.json @@ -1,11 +1,16 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "description": "Style hint for text input.", - "values": [ - "text", - "tel", - "url", - "email" - ] -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "description": "Style hint for text input.", + "values": [ + "text", + "tel", + "url", + "email", + { + "value": "password", + "description": "Display input text with password masking.", + "version": "1.5" + } + ] +} diff --git a/schemas/src/enums/VerticalAlignment.json b/schemas/src/enums/VerticalAlignment.json index e22a0a8029..7f87b3d509 100644 --- a/schemas/src/enums/VerticalAlignment.json +++ b/schemas/src/enums/VerticalAlignment.json @@ -1,9 +1,9 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "values": [ - "top", - "center", - "bottom" - ] -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "values": [ + "top", + "center", + "bottom" + ] +} diff --git a/schemas/src/enums/VerticalContentAlignment.json b/schemas/src/enums/VerticalContentAlignment.json index e22a0a8029..7f87b3d509 100644 --- a/schemas/src/enums/VerticalContentAlignment.json +++ b/schemas/src/enums/VerticalContentAlignment.json @@ -1,9 +1,9 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "classType": "Enum", - "values": [ - "top", - "center", - "bottom" - ] -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "classType": "Enum", + "values": [ + "top", + "center", + "bottom" + ] +} diff --git a/schemas/src/shared/AuthCardButton.json b/schemas/src/shared/AuthCardButton.json index ec2879a1bf..9dca974d33 100644 --- a/schemas/src/shared/AuthCardButton.json +++ b/schemas/src/shared/AuthCardButton.json @@ -1,25 +1,25 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "description": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-activity.md#card-action).", - "version": "1.4", - "properties": { - "type": { - "type": "string", - "description": "The type of the button.", - "required": true - }, - "title": { - "type": "string", - "description": "The caption of the button." - }, - "image": { - "type": "string", - "description": "A URL to an image to display alongside the button's caption." - }, - "value": { - "type": "string", - "description": "The value associated with the button. The meaning of value depends on the button's type.", - "required": true - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "description": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.cardaction).", + "version": "1.4", + "properties": { + "type": { + "type": "string", + "description": "The type of the button.", + "required": true + }, + "title": { + "type": "string", + "description": "The caption of the button." + }, + "image": { + "type": "string", + "description": "A URL to an image to display alongside the button's caption." + }, + "value": { + "type": "string", + "description": "The value associated with the button. The meaning of value depends on the button's type.", + "required": true + } + } +} diff --git a/schemas/src/shared/Authentication.json b/schemas/src/shared/Authentication.json index ce0ba80a33..8e0d8fdcc5 100644 --- a/schemas/src/shared/Authentication.json +++ b/schemas/src/shared/Authentication.json @@ -1,23 +1,23 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "description": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#oauth-card)", - "version": "1.4", - "properties": { - "text": { - "type": "string", - "description": "Text that can be displayed to the end user when prompting them to authenticate." - }, - "connectionName": { - "type": "string", - "description": "The identifier for registered OAuth connection setting information." - }, - "tokenExchangeResource": { - "type": "TokenExchangeResource", - "description": "Provides information required to enable on-behalf-of single sign-on user authentication." - }, - "buttons": { - "type": "AuthCardButton[]", - "description": "Buttons that should be displayed to the user when prompting for authentication. The array MUST contain one button of type \"signin\". Other button types are not currently supported." - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "description": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.oauthcard)", + "version": "1.4", + "properties": { + "text": { + "type": "string", + "description": "Text that can be displayed to the end user when prompting them to authenticate." + }, + "connectionName": { + "type": "string", + "description": "The identifier for registered OAuth connection setting information." + }, + "tokenExchangeResource": { + "type": "TokenExchangeResource", + "description": "Provides information required to enable on-behalf-of single sign-on user authentication." + }, + "buttons": { + "type": "AuthCardButton[]", + "description": "Buttons that should be displayed to the user when prompting for authentication. The array MUST contain one button of type \"signin\". Other button types are not currently supported." + } + } +} diff --git a/schemas/src/shared/BackgroundImage.json b/schemas/src/shared/BackgroundImage.json index 56d3e16486..468f76e616 100644 --- a/schemas/src/shared/BackgroundImage.json +++ b/schemas/src/shared/BackgroundImage.json @@ -1,24 +1,24 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "description": "Specifies a background image. Acceptable formats are PNG, JPEG, and GIF", - "properties": { - "url": { - "type": "uri-reference", - "description": "The URL (or data url) of the image. Acceptable formats are PNG, JPEG, and GIF", - "required": true - }, - "fillMode": { - "type": "ImageFillMode", - "description": "Describes how the image should fill the area." - }, - "horizontalAlignment": { - "type": "HorizontalAlignment", - "description": "Describes how the image should be aligned if it must be cropped or if using repeat fill mode." - }, - "verticalAlignment": { - "type": "VerticalAlignment", - "description": "Describes how the image should be aligned if it must be cropped or if using repeat fill mode." - } - }, - "version": "1.2" + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "description": "Specifies a background image. Acceptable formats are PNG, JPEG, and GIF", + "properties": { + "url": { + "type": "uri-reference", + "description": "The URL (or data url) of the image. Acceptable formats are PNG, JPEG, and GIF", + "required": true + }, + "fillMode": { + "type": "ImageFillMode", + "description": "Describes how the image should fill the area." + }, + "horizontalAlignment": { + "type": "HorizontalAlignment", + "description": "Describes how the image should be aligned if it must be cropped or if using repeat fill mode." + }, + "verticalAlignment": { + "type": "VerticalAlignment", + "description": "Describes how the image should be aligned if it must be cropped or if using repeat fill mode." + } + }, + "version": "1.2" } diff --git a/schemas/src/shared/Item.json b/schemas/src/shared/Item.json index 6256c71c08..f58b25aa9a 100644 --- a/schemas/src/shared/Item.json +++ b/schemas/src/shared/Item.json @@ -1,11 +1,11 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "isAbstract": true, - "properties": { - "requires": { - "type": "Dictionary", - "description": "A series of key/value pairs indicating features that the item requires with corresponding minimum version. When a feature is missing or of insufficient version, fallback is triggered.", - "version": "1.2" - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "isAbstract": true, + "properties": { + "requires": { + "type": "Dictionary", + "description": "A series of key/value pairs indicating features that the item requires with corresponding minimum version. When a feature is missing or of insufficient version, fallback is triggered.", + "version": "1.2" + } + } +} diff --git a/schemas/src/shared/Refresh.json b/schemas/src/shared/Refresh.json index 96ea0de9a9..d7d99e825c 100644 --- a/schemas/src/shared/Refresh.json +++ b/schemas/src/shared/Refresh.json @@ -1,15 +1,15 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "description": "Defines how a card can be refreshed by making a request to the target Bot.", - "version": "1.4", - "properties": { - "action": { - "type": "Action.Execute", - "description": "The action to be executed to refresh the card. Clients can run this refresh action automatically or can provide an affordance for users to trigger it manually." - }, - "userIds": { - "type": "string[]", - "description": "A list of user Ids informing the client for which users should the refresh action should be run automatically. Some clients will not run the refresh action automatically unless this property is specified. Some clients may ignore this property and always run the refresh action automatically." - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "description": "Defines how a card can be refreshed by making a request to the target Bot.", + "version": "1.4", + "properties": { + "action": { + "type": "Action.Execute", + "description": "The action to be executed to refresh the card. Clients can run this refresh action automatically or can provide an affordance for users to trigger it manually." + }, + "userIds": { + "type": "string[]", + "description": "A list of user Ids informing the client for which users should the refresh action should be run automatically. Some clients will not run the refresh action automatically unless this property is specified. Some clients may ignore this property and always run the refresh action automatically." + } + } +} diff --git a/schemas/src/shared/ToggleableItem.json b/schemas/src/shared/ToggleableItem.json index 6d53cacd62..f147bfdab1 100644 --- a/schemas/src/shared/ToggleableItem.json +++ b/schemas/src/shared/ToggleableItem.json @@ -1,17 +1,17 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "extends": "Item", - "isAbstract": true, - "properties": { - "id": { - "type": "string", - "description": "A unique identifier associated with the item." - }, - "isVisible": { - "type": "boolean", - "description": "If `false`, this item will be removed from the visual tree.", - "default": true, - "version": "1.2" - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "extends": "Item", + "isAbstract": true, + "properties": { + "id": { + "type": "string", + "description": "A unique identifier associated with the item." + }, + "isVisible": { + "type": "boolean", + "description": "If `false`, this item will be removed from the visual tree.", + "default": true, + "version": "1.2" + } + } +} diff --git a/schemas/src/shared/TokenExchangeResource.json b/schemas/src/shared/TokenExchangeResource.json index 62182b4929..c5c31f338e 100644 --- a/schemas/src/shared/TokenExchangeResource.json +++ b/schemas/src/shared/TokenExchangeResource.json @@ -1,22 +1,22 @@ { - "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", - "description": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#TokenExchangeResource)", - "version": "1.4", - "properties": { - "id": { - "type": "string", - "description": "The unique identified of this token exchange instance.", - "required": true - }, - "uri": { - "type": "string", - "description": "An application ID or resource identifier with which to exchange a token on behalf of. This property is identity provider- and application-specific.", - "required": true - }, - "providerId": { - "type": "string", - "description": "An identifier for the identity provider with which to attempt a token exchange.", - "required": true - } - } -} \ No newline at end of file + "$schema": "https://raw.githubusercontent.com/microsoft/AdaptiveCards/6f39aedce45864ae1067ed44a5551dc973790bb5/source/nodejs/typed-schema/schema/lib/Type.json", + "description": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.tokenexchangeresource)", + "version": "1.4", + "properties": { + "id": { + "type": "string", + "description": "The unique identified of this token exchange instance.", + "required": true + }, + "uri": { + "type": "string", + "description": "An application ID or resource identifier with which to exchange a token on behalf of. This property is identity provider- and application-specific.", + "required": true + }, + "providerId": { + "type": "string", + "description": "An identifier for the identity provider with which to attempt a token exchange.", + "required": true + } + } +} diff --git a/scripts/FormatSource.ps1 b/scripts/FormatSource.ps1 new file mode 100644 index 0000000000..a8fa0c1192 --- /dev/null +++ b/scripts/FormatSource.ps1 @@ -0,0 +1,293 @@ +<# +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See LICENSE in the project root for license information. + +this file work is a derivative of https://github.com/microsoft/MixedReality-GraphicsTools-Unreal/blob/main/Tools/scripts/Common.psm1 +#> + +<# +.SYNOPSIS + Run clang-format on all source files. +.PARAMETER Path + Path to the directory (or file) to be processed recursively. By default scans the entire repo. +.PARAMETER ClangFormat + Path to clang-format executable, e.g. "C:\Tools\clang-format.exe" +.PARAMETER ModifiedOnly + Scan only files modified in current git checkout. +.PARAMETER Staged + Check only files staged for commit +.PARAMETER ChangesFile + Scan only files listed in provided txt file (one path per line). Paths need to be relative to repo root. +.PARAMETER Verify + Whether to fail if files are not formatted (instead of applying changes). +.PARAMETER UseVS2019 + Use ClangFormat provided with Visual Studio 2019. This version will take precedence over -ClangFormat parameter + and PATH variable. +.PARAMETER NoFail` + Do not set RC=1 when errors found, i.e. only report errors in output. +#> +[CmdletBinding()] +param ( + [string]$Path = $null, + [string]$ClangFormat = $null, + [boolean]$ModifiedOnly = $True, + [boolean]$Staged = $false, + [string]$ChangesFile = $null, + [boolean]$Verify = $false, + [boolean]$UseVS2019 = $true, + [boolean]$NoFail = $false +) + +# Only check source files +$FilePatterns = "\.(h|cpp|hpp|c|m|mm)$" + +#PerfApp is C++/Cx project and not supported +$IgnoreFolders = "(Generated Files|include|PerfApp|pic2card|android|uwp|nodejs|vscode|community|dotnet|node_modules|out|.git|.vs|.vscode|bin|CMakeFiles|generated|debug|x64)$" + +$RepoRoot = (Resolve-Path "$PSScriptRoot\..") + +<# +.SYNOPSIS + Given the path to the list of raw git changes, returns an array of + those changes rooted in the git root directory. +.DESCRIPTION + For example, the raw git changes will contain lines like: + + Assets/File.cs + + This function will return a list of paths that look like (assuming + that RepoRoot is C:\repo): + + C:\repo\Assets\File.cs +#> +function GetChangedFiles { + [CmdletBinding()] + param( + [string]$Filename, + [string]$RepoRoot + ) + process { + $rawContent = Get-Content -Path $Filename + $processedContent = @() + foreach ($line in $rawContent) { + $joinedPath = Join-Path -Path $RepoRoot -ChildPath $line + $processedContent += $joinedPath + } + $processedContent + } +} + +if ([string]::IsNullOrEmpty($Path)) +{ + $Path = $RepoRoot +} + +$ModifiedFiles = $null + +if ($ChangesFile) +{ + if (-not (Test-Path -Path $ChangesFile -PathType Leaf)) + { + Write-Host -ForegroundColor Red "ChangesFile not found: $ChangesFile" + Write-Host "Checking all source files" + } + else + { + $ModifiedFiles = GetChangedFiles -Filename $ChangesFile -RepoRoot $RepoRoot + if (($null -eq $ModifiedFiles) -or ($ModifiedFiles.Count -eq 0)) + { + Write-Host -ForegroundColor Green "No modified files to format." + exit 0 + } + } +} +elseif ($ModifiedOnly -or $Staged) +{ + $ModifiedFiles = @() + Push-Location -Path $RepoRoot + $Success = $False + try + { + if ($Staged) + { + $Status = (& git diff-index --cached --name-only HEAD) + $Success = ($LASTEXITCODE -eq 0) + $Status | ForEach-Object { + $FullPath = Resolve-Path $_ -ErrorAction SilentlyContinue + $FileName = Split-Path -Leaf -Path $FullPath + if ($FileName -match $FilePatterns) + { + $ModifiedFiles += $FullPath + } + } + } + else + { + $Status = (& git status --porcelain) + $Success = ($LASTEXITCODE -eq 0) + $Status | ForEach-Object { + $FullPath = (Resolve-Path ($_.Trim() -split " ",2)[-1] -ErrorAction SilentlyContinue) + $FileName = Split-Path -Leaf -Path $FullPath + if ($FileName -match $FilePatterns) + { + $ModifiedFiles += $FullPath + } + } + } + } + catch + { + # empty + } + if (-not $Success) + { + Write-Host -ForegroundColor Red "Could not get the list of modified files. Check if git is configured correctly." + exit 1 + } + Pop-Location + if (($null -eq $ModifiedFiles) -or ($ModifiedFiles.Count -eq 0)) + { + Write-Host -ForegroundColor Green "No modified files to format." + exit 0 + } +} + +if ($UseVS2019) +{ + # Attempt to use clang-format from Visual Studio 2019 if available + $LLVMDirs = @("${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\Enterprise\VC\Tools\Llvm", + "${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\Professional\VC\Tools\Llvm", + "${Env:ProgramFiles(x86)}\Microsoft Visual Studio\2019\Community\VC\Tools\Llvm") + foreach ($LLVMDir in $LLVMDirs) + { + $VS2019ClangFormatX64 = "$LLVMDir\x64\bin\clang-format.exe" + $VS2019ClangFormatX86 = "$LLVMDir\bin\clang-format.exe" + if (Test-Path -Type Leaf -Path $VS2019ClangFormatX64) + { + $ClangFormat = $VS2019ClangFormatX64 + break + } + elseif (Test-Path -Type Leaf -Path $VS2019ClangFormatX86) + { + $ClangFormat = $VS2019ClangFormatX86 + break + } + } +} +elseif ([string]::IsNullOrEmpty($ClangFormat) -or (-not (Test-Path -Type Leaf -Path $ClangFormat))) +{ + # Check for clang-format in PATH + $ClangFormat = (Get-Command -Name "clang-format.exe" -ErrorAction SilentlyContinue) +} + +if ([string]::IsNullOrEmpty($ClangFormat)) +{ + Write-Host -ForegroundColor Red "clang-format.exe not found. Please install VS2019 or make sure clang-format.exe is in PATH." + exit 1 +} + +Write-Host "[clang-format] Path is $ClangFormat" +Write-Host "[clang-format] Version is: " + & $ClangFormat --version + +function Format-Directory +{ + [CmdletBinding()] + param ( + [Parameter(Mandatory=$True)] + [string]$Path, + [Parameter(Mandatory=$True)] + [string]$ClangFormat, + [string]$RepoRoot = $null, + [AllowEmptyString()][string]$FilePatterns = $null, + [string[]]$ModifiedFiles = $null, + [boolean]$Verify = $false + ) + process + { + if (-not (Test-Path -Path $Path)) + { + Write-Host -ForegroundColor Red "Item not found: $Path" + return $False + } + if ($null -eq $FilePatterns) + { + $FilePatterns = "" + } + $Path = Resolve-Path $Path + $Success = $True + $FilesToFormat = @() + if ((Get-Item -Path $Path) -is [System.IO.DirectoryInfo]) + { + Get-ChildItem -Path $Path -File ` + | Where-Object { $_ -match $FilePatterns } ` + | ForEach-Object { + $FilePath = "$Path\$_" + if (($null -eq $ModifiedFiles) -or ($ModifiedFiles -contains $FilePath)) + { + if (!($FilePath -match "Intermediate")) + { + $FilesToFormat += $FilePath + } + } + } + Get-ChildItem -Path $Path -Directory ` + | Where-Object { $_ -notmatch $IgnoreFolders } ` + | ForEach-Object { + $SubResult = (Format-Directory -Path "$Path\$_" ` + -ClangFormat $ClangFormat ` + -RepoRoot $RepoRoot ` + -FilePatterns $FilePatterns ` + -ModifiedFiles $ModifiedFiles ` + -Verify $Verify) + $Success = $SubResult -and $Success + } + } + else + { + $FilesToFormat += $Path + } + $FilesToFormat | ForEach-Object { + if ($Verify) + { + Write-Host "[clang-format] Checking formatting: $_" + & $ClangFormat --style=file -Werror --dry-run $_ + } + else + { + Write-Host "[clang-format] Formatting $_" + & $ClangFormat --style=file -Werror -i $_ + } + $Success = (0 -eq $LASTEXITCODE) -and $Success + } + return $Success + } +} + +$Success = (Format-Directory -Path $Path ` + -ClangFormat $ClangFormat ` + -FilePatterns $FilePatterns ` + -ModifiedFiles $ModifiedFiles ` + -RepoRoot $RepoRoot ` + -Verify $Verify) + +if ($Success) +{ + Write-Host "Done." + exit 0 +} +else +{ + Write-Host "You may need to update Visual studio and have the correct clang-format version in your local machine" + Write-Host -ForegroundColor Red "Errors found (see output). Please make sure to resolve all issues before opening a Pull Request." + Write-Host -ForegroundColor Red "Formatting can be applied by running:" + Write-Host -ForegroundColor Red " PowerShell.exe -ExecutionPolicy Bypass $PSCommandPath -ModifiedOnly `$False` [-Path ]" + Write-Host -ForegroundColor Red "or run below command in source/nodejs " + Write-Host -ForegroundColor Red " npm run format" + + if ($NoFail) + { + exit 0 # do not prevent commit when used in pre-commit hook + } + exit 1 +} \ No newline at end of file diff --git a/scripts/hooks/clangFormatFunc b/scripts/hooks/clangFormatFunc new file mode 100644 index 0000000000..5b536f1c8a --- /dev/null +++ b/scripts/hooks/clangFormatFunc @@ -0,0 +1,20 @@ +#!/bin/sh + +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +endWith='\.(cpp|cc|h|hpp)$' +ignoreFolder='/(PerfApp|android|ios|nodejs|vscode|community|dotnet)/' + +function checkFormat() { + GIT_ROOT=`git rev-parse --show-toplevel` + git diff-index --cached --name-only HEAD | grep -iE "${endWith}" | grep -iE -v "${ignoreFolder}" | xargs -I _ -P 0 "$clangFormat" --dry-run -Werror --ferror-limit=1 --verbose "$GIT_ROOT/_" + return $? +} + +function fixFormat() { + + GIT_ROOT=`git rev-parse --show-toplevel` + git diff-index --cached --name-only HEAD | grep -iE "${endWith}" | grep -iE -v "${ignoreFolder}" | xargs -I _ -P 0 "$clangFormat" --style=file -Werror -i --verbose "$GIT_ROOT/_" + return $? +} diff --git a/scripts/hooks/pre-commit b/scripts/hooks/pre-commit new file mode 100644 index 0000000000..ebbb71a719 --- /dev/null +++ b/scripts/hooks/pre-commit @@ -0,0 +1,37 @@ +#!/bin/sh + +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +# clangFormat="c:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\Llvm\x64\bin\clang-format.exe" +if [ -z "$clangFormat" ]; then + clangFormat="clang-format" +else + if [[ ! -f "$clangFormat" ]]; then + echo "Can't find the binary $clangFormat" + exit 1 + fi +fi + +"$clangFormat" --version +if [ "$?" -ne "0" ]; then + echo "'git commit' aborted! Please make sure clangFormat is set correctly in pre-commit." + exit 1 +fi + +. "scripts/hooks/clangFormatFunc" + +checkFormat + +if [ "$?" -ne "0" ]; then + echo "start auto fix clang-format" + fixFormat + if [ "$?" -ne "0" ]; then + echo "'git commit' aborted! Clang-format auto fix failed, and you have to manually fix the format issue." + else + echo "'git commit' aborted! But clang-format auto fix success, please re-run 'git add' and 'git commit'." + fi + exit 1 +else + echo "clang-format check passed, and will continue the commit" +fi diff --git a/source/EULA-Xamarin.txt b/source/EULA-Xamarin.txt deleted file mode 100644 index b337afae72..0000000000 --- a/source/EULA-Xamarin.txt +++ /dev/null @@ -1,44 +0,0 @@ -MICROSOFT SOFTWARE LICENSE TERMS -ADAPTIVECARDS.RENDERING.XAMARIN -________________________________________ -IF YOU LIVE IN (OR ARE A BUSINESS WITH A PRINCIPAL PLACE OF BUSINESS IN) THE UNITED STATES, PLEASE READ THE “BINDING ARBITRATION AND CLASS ACTION WAIVER” SECTION BELOW. IT AFFECTS HOW DISPUTES ARE RESOLVED. -________________________________________ - -These license terms are an agreement between you and Microsoft Corporation (or one of its affiliates). They apply to the software named above and any Microsoft services or software updates (except to the extent such services or updates are accompanied by new or additional terms, in which case those different terms apply prospectively and do not alter your or Microsoft’s rights relating to pre-updated software or services). - -IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW. BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. - -1. INSTALLATION AND USE RIGHTS. -a) General. Subject to the terms of this agreement, you may install and use any number of copies of the software to develop and test your applications, solely for use on Windows. -b) Included Microsoft Applications. The software may include other Microsoft applications. These license terms apply to those included applications, if any, unless other license terms are provided with the other Microsoft applications. -c) Microsoft Platforms. The software may include components from Microsoft Windows. These components are governed by separate agreements and their own product support policies, as described in the license terms found in the installation directory for that component or in the “Licenses” folder accompanying the software. -2. TIME-SENSITIVE SOFTWARE. -a) Period. This agreement is effective on your acceptance and terminates on the earlier of (i) 30 days following first availability of a commercial release of the software or (ii) upon termination by Microsoft. Microsoft may extend this agreement in its discretion. -b) Access to data. You may not be able to access data used in the software when it stops running. -3. DATA. -a) Data Collection. The software may collect information about you and your use of the software, and send that to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may opt-out of many of these scenarios, but not all, as described in the product documentation. There are also some features in the software that may enable you to collect data from users of your applications. If you use these features to enable data collection in your applications, you must comply with applicable law, including providing appropriate notices to users of your applications. You can learn more about data collection and use in the help documentation and the privacy statement at https://aka.ms/privacy. Your use of the software operates as your consent to these practices. -b) Processing of Personal Data. To the extent Microsoft is a processor or subprocessor of personal data in connection with the software, Microsoft makes the commitments in the European Union General Data Protection Regulation Terms of the Online Services Terms to all customers effective May 25, 2018, at https://docs.microsoft.com/en-us/legal/gdpr. -4. PRE-RELEASE SOFTWARE. The software is a pre-release version. It may not operate correctly. It may be different from the commercially released version. -5. SCOPE OF LICENSE. The software is licensed, not sold. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you will not (and have no right to): -a) work around any technical limitations in the software that only allow you to use it in certain ways; -b) reverse engineer, decompile or disassemble the software, or otherwise attempt to derive the source code for the software, except and to the extent required by third party licensing terms governing use of certain open source components that may be included in the software; -c) remove, minimize, block, or modify any notices of Microsoft or its suppliers in the software; -d) use the software in any way that is against the law or to create or propagate malware; or -e) share, publish, distribute, or lease the software, provide the software as a stand-alone offering for others to use, or transfer the software or this agreement to any third party. -6. EXPORT RESTRICTIONS. You must comply with all domestic and international export laws and regulations that apply to the software, which include restrictions on destinations, end users, and end use. For further information on export restrictions, visit https://aka.ms/exporting. -7. SUPPORT SERVICES. Microsoft is not obligated under this agreement to provide any support services for the software. Any support provided is “as is”, “with all faults”, and without warranty of any kind. -8. UPDATES. The software may periodically check for updates, and download and install them for you. You may obtain updates only from Microsoft or authorized sources. Microsoft may need to update your system to provide you with updates. You agree to receive these automatic updates without any additional notice. Updates may not include or support all existing software features, services, or peripheral devices. -9. BINDING ARBITRATION AND CLASS ACTION WAIVER. This Section applies if you live in (or, if a business, your principal place of business is in) the United States. If you and Microsoft have a dispute, you and Microsoft agree to try for 60 days to resolve it informally. If you and Microsoft can’t, you and Microsoft agree to binding individual arbitration before the American Arbitration Association under the Federal Arbitration Act (“FAA”), and not to sue in court in front of a judge or jury. Instead, a neutral arbitrator will decide. Class action lawsuits, class-wide arbitrations, private attorney-general actions, and any other proceeding where someone acts in a representative capacity are not allowed; nor is combining individual proceedings without the consent of all parties. The complete Arbitration Agreement contains more terms and is at https://aka.ms/arb-agreement-4. You and Microsoft agree to these terms. -10. ENTIRE AGREEMENT. This agreement, and any other terms Microsoft may provide for supplements, updates, or third-party applications, is the entire agreement for the software. -11. APPLICABLE LAW AND PLACE TO RESOLVE DISPUTES. If you acquired the software in the United States or Canada, the laws of the state or province where you live (or, if a business, where your principal place of business is located) govern the interpretation of this agreement, claims for its breach, and all other claims (including consumer protection, unfair competition, and tort claims), regardless of conflict of laws principles, except that the FAA governs everything related to arbitration. If you acquired the software in any other country, its laws apply, except that the FAA governs everything related to arbitration. If U.S. federal jurisdiction exists, you and Microsoft consent to exclusive jurisdiction and venue in the federal court in King County, Washington for all disputes heard in court (excluding arbitration). If not, you and Microsoft consent to exclusive jurisdiction and venue in the Superior Court of King County, Washington for all disputes heard in court (excluding arbitration). -12. CONSUMER RIGHTS; REGIONAL VARIATIONS. This agreement describes certain legal rights. You may have other rights, including consumer rights, under the laws of your state or country. Separate and apart from your relationship with Microsoft, you may also have rights with respect to the party from which you acquired the software. This agreement does not change those other rights if the laws of your state or country do not permit it to do so. For example, if you acquired the software in one of the below regions, or mandatory country law applies, then the following provisions apply to you: -a) Australia. You have statutory guarantees under the Australian Consumer Law and nothing in this agreement is intended to affect those rights. -b) Canada. If you acquired this software in Canada, you may stop receiving updates by turning off the automatic update feature, disconnecting your device from the Internet (if and when you re-connect to the Internet, however, the software will resume checking for and installing updates), or uninstalling the software. The product documentation, if any, may also specify how to turn off updates for your specific device or software. -c) Germany and Austria. -i. Warranty. The properly licensed software will perform substantially as described in any Microsoft materials that accompany the software. However, Microsoft gives no contractual guarantee in relation to the licensed software. -ii. Limitation of Liability. In case of intentional conduct, gross negligence, claims based on the Product Liability Act, as well as, in case of death or personal or physical injury, Microsoft is liable according to the statutory law. -Subject to the foregoing clause ii., Microsoft will only be liable for slight negligence if Microsoft is in breach of such material contractual obligations, the fulfillment of which facilitate the due performance of this agreement, the breach of which would endanger the purpose of this agreement and the compliance with which a party may constantly trust in (so-called "cardinal obligations"). In other cases of slight negligence, Microsoft will not be liable for slight negligence. -13. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR CONDITIONS. TO THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT EXCLUDES ALL IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -14. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR RECOVERING DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT, OR INCIDENTAL DAMAGES. -This limitation applies to (a) anything related to the software, services, content (including code) on third party Internet sites, or third party applications; and (b) claims for breach of contract, warranty, guarantee, or condition; strict liability, negligence, or other tort; or any other claim; in each case to the extent permitted by applicable law. -It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your state, province, or country may not allow the exclusion or limitation of incidental, consequential, or other damages. diff --git a/source/android/README.md b/source/android/README.md index a463007fa8..cdc644d881 100644 --- a/source/android/README.md +++ b/source/android/README.md @@ -39,8 +39,11 @@ If you get a build failure similar to "UnsupportedClassVersionError 52.0" then f compile 'io.adaptivecards:adaptivecards-android:1.2.0' For more information, please go to http://search.maven.org/ and search adaptivecards-android -# To test -1. Follow steps 1 and 2 from [To compile](#to-compile) section -2. Select "mobile" or "mobilechatapp" project -3. Click "Run" button and select device (physical or virtual) - 3.1 If running the mobile app, you must copy the samples to the device +## Testing + +The Android Renderer currently supports the following type of testing: + +| Type | Project | Location | +| --- | --- | --- | +| Unit tests | adaptivecards | [Location](./adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/) | +| UI tests | uitestapp | [Location](./uitestapp/src/androidTest/java/io.adaptivecards.uitestapp) | \ No newline at end of file diff --git a/source/android/adaptivecards/CMakeLists.txt b/source/android/adaptivecards/CMakeLists.txt index b51f45366e..48e9f8196c 100644 --- a/source/android/adaptivecards/CMakeLists.txt +++ b/source/android/adaptivecards/CMakeLists.txt @@ -25,22 +25,22 @@ add_library( # Sets the name of the library. # file are automatically included. ../../shared/cpp/ObjectModel/jsoncpp.cpp ../../shared/cpp/ObjectModel/ActionParserRegistration.cpp - ../../shared/cpp/ObjectModel/AdaptiveBase64Util.cpp ../../shared/cpp/ObjectModel/ActionSet.cpp + ../../shared/cpp/ObjectModel/AdaptiveBase64Util.cpp ../../shared/cpp/ObjectModel/AdaptiveCardParseException.cpp ../../shared/cpp/ObjectModel/AdaptiveCardParseWarning.cpp ../../shared/cpp/ObjectModel/AuthCardButton.cpp ../../shared/cpp/ObjectModel/Authentication.cpp - ../../shared/cpp/ObjectModel/BaseActionElement.cpp ../../shared/cpp/ObjectModel/BackgroundImage.cpp + ../../shared/cpp/ObjectModel/BaseActionElement.cpp ../../shared/cpp/ObjectModel/BaseCardElement.cpp ../../shared/cpp/ObjectModel/BaseElement.cpp ../../shared/cpp/ObjectModel/BaseInputElement.cpp ../../shared/cpp/ObjectModel/ChoiceInput.cpp ../../shared/cpp/ObjectModel/ChoiceSetInput.cpp + ../../shared/cpp/ObjectModel/CollectionCoreElement.cpp ../../shared/cpp/ObjectModel/Column.cpp ../../shared/cpp/ObjectModel/ColumnSet.cpp - ../../shared/cpp/ObjectModel/CollectionTypeElement.cpp ../../shared/cpp/ObjectModel/Container.cpp ../../shared/cpp/ObjectModel/DateInput.cpp ../../shared/cpp/ObjectModel/DateTimePreparsedToken.cpp @@ -72,6 +72,7 @@ add_library( # Sets the name of the library. ../../shared/cpp/ObjectModel/SemanticVersion.cpp ../../shared/cpp/ObjectModel/SharedAdaptiveCard.cpp ../../shared/cpp/ObjectModel/ShowCardAction.cpp + ../../shared/cpp/ObjectModel/StyledCollectionElement.cpp ../../shared/cpp/ObjectModel/SubmitAction.cpp ../../shared/cpp/ObjectModel/Table.cpp ../../shared/cpp/ObjectModel/TableCell.cpp @@ -86,8 +87,8 @@ add_library( # Sets the name of the library. ../../shared/cpp/ObjectModel/ToggleVisibilityAction.cpp ../../shared/cpp/ObjectModel/ToggleVisibilityTarget.cpp ../../shared/cpp/ObjectModel/TokenExchangeResource.cpp - ../../shared/cpp/ObjectModel/UnknownElement.cpp ../../shared/cpp/ObjectModel/UnknownAction.cpp + ../../shared/cpp/ObjectModel/UnknownElement.cpp ../../shared/cpp/ObjectModel/Util.cpp src/main/cpp/objectmodel_wrap.cpp ) diff --git a/source/android/adaptivecards/src/AdaptiveCardObjectModel.i b/source/android/adaptivecards/src/AdaptiveCardObjectModel.i index da0d1683c6..5cb276b04d 100644 --- a/source/android/adaptivecards/src/AdaptiveCardObjectModel.i +++ b/source/android/adaptivecards/src/AdaptiveCardObjectModel.i @@ -112,7 +112,8 @@ STD_OPTIONAL(AdaptiveCards::VerticalContentAlignment, StdOptionalVerticalContent #include "../../../shared/cpp/ObjectModel/BaseCardElement.h" #include "../../../shared/cpp/ObjectModel/BaseActionElement.h" #include "../../../shared/cpp/ObjectModel/BaseInputElement.h" -#include "../../../shared/cpp/ObjectModel/CollectionTypeElement.h" +#include "../../../shared/cpp/ObjectModel/CollectionCoreElement.h" +#include "../../../shared/cpp/ObjectModel/StyledCollectionElement.h" #include "../../../shared/cpp/ObjectModel/AdaptiveCardParseWarning.h" #include "../../../shared/cpp/ObjectModel/ActionParserRegistration.h" #include "../../../shared/cpp/ObjectModel/ElementParserRegistration.h" @@ -183,7 +184,8 @@ STD_OPTIONAL(AdaptiveCards::VerticalContentAlignment, StdOptionalVerticalContent %shared_ptr(AdaptiveCards::BaseCardElementParser) %shared_ptr(AdaptiveCards::ActionElementParserWrapper) %shared_ptr(AdaptiveCards::BaseCardElementParserWrapper) -%shared_ptr(AdaptiveCards::CollectionTypeElement) +%shared_ptr(AdaptiveCards::CollectionCoreElement) +%shared_ptr(AdaptiveCards::StyledCollectionElement) %shared_ptr(AdaptiveCards::FeatureRegistration) %shared_ptr(AdaptiveCards::BackgroundImage) %shared_ptr(AdaptiveCards::Container) @@ -901,7 +903,8 @@ namespace Json { %include "../../../shared/cpp/ObjectModel/BaseActionElement.h" %include "../../../shared/cpp/ObjectModel/BaseInputElement.h" %include "../../../shared/cpp/ObjectModel/BackgroundImage.h" -%include "../../../shared/cpp/ObjectModel/CollectionTypeElement.h" +%include "../../../shared/cpp/ObjectModel/CollectionCoreElement.h" +%include "../../../shared/cpp/ObjectModel/StyledCollectionElement.h" %include "../../../shared/cpp/ObjectModel/FeatureRegistration.h" %include "../../../shared/cpp/ObjectModel/SemanticVersion.h" %include "../../../shared/cpp/ObjectModel/Container.h" diff --git a/source/android/adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/TextInputPropertiesTest.java b/source/android/adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/TextInputPropertiesTest.java index dfeb35c0a0..c10d64b067 100644 --- a/source/android/adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/TextInputPropertiesTest.java +++ b/source/android/adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/TextInputPropertiesTest.java @@ -235,6 +235,7 @@ public void TextInputStyleTest() throws Exception tests.add(new Pair<>(TextInputStyle.Tel, String.format(inputTextPlaceholderTemplate, "Tel"))); tests.add(new Pair<>(TextInputStyle.Url, String.format(inputTextPlaceholderTemplate, "Url"))); tests.add(new Pair<>(TextInputStyle.Email, String.format(inputTextPlaceholderTemplate, "Email"))); + tests.add(new Pair<>(TextInputStyle.Password, String.format(inputTextPlaceholderTemplate, "Password"))); for (Pair test : tests) { diff --git a/source/android/adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/TextInputValidationTest.java b/source/android/adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/TextInputValidationTest.java index 24efeaa7ae..39502e0aac 100644 --- a/source/android/adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/TextInputValidationTest.java +++ b/source/android/adaptivecards/src/androidTest/java/io/adaptivecards/objectmodel/TextInputValidationTest.java @@ -45,6 +45,21 @@ private TextInput createTextInputWithValidationProperties(String regex, int maxL return textInput; } + private TextInput createPasswordInputWithValidationProperties(String regex, int maxLength) + { + return createPasswordInputWithValidationProperties(regex, maxLength, false); + } + + private TextInput createPasswordInputWithValidationProperties(String regex, int maxLength, boolean isRequired) + { + TextInput textInput = TestUtil.createMockTextInput(); + textInput.SetTextInputStyle(TextInputStyle.Password); + textInput.SetRegex(regex); + textInput.SetMaxLength(maxLength); + textInput.SetIsRequired(isRequired); + return textInput; + } + private TextInputHandler createTextInputHandler(TextInput textInput) { TextInputHandler textInputHandler = new TextInputHandler(textInput); @@ -615,4 +630,116 @@ public void VerifyRequiredRegexMaxLengthValidationFailsWithInvalidValues() TestUtil.runValidationTests(invalidHexColors, false, validationExecutor); } + /** + * VerifyPasswordValidationSucceedsWithNoSetValue + * @testDescription Verifies that a not required input will succeed when no value has been set + */ + @Test + public void VerifyPasswordValidationSucceedsWithNoSetValue() + { + TextInput textInput = createPasswordInputWithValidationProperties("", 0); + TextInputHandler textInputHandler = createTextInputHandler(textInput); + + Assert.assertTrue(textInputHandler.isValid()); + } + + /** + * VerifyPasswordValidationSucceedsWithSetValue + * @testDescription Verifies that a not required input will succeed with any value set + */ + @Test + public void VerifyPasswordValidationSucceedsWithSetValue() + { + TextInput textInput = createPasswordInputWithValidationProperties("", 0, true); + TextInputHandler textInputHandler = createTextInputHandler(textInput); + + TestUtil.GeneralValidationExecutor validationExecutor = new TestUtil.GeneralValidationExecutor(textInputHandler); + TestUtil.runValidationTests(TestUtil.concat(String.class, c_regexValidValues, c_regexInvalidValues, c_shortStrings, c_longStrings), true, validationExecutor); + } + + /** + * VerifyIsRequiredValidationFailsWithNoSetValue + * @testDescription Verifies that a required input will fail when no value has been set + */ + @Test + public void VerifyIsRequiredPasswordValidationFailsWithNoSetValue() + { + TextInput textInput = createPasswordInputWithValidationProperties("", 0, true); + TextInputHandler textInputHandler = createTextInputHandler(textInput); + + Assert.assertFalse(textInputHandler.isValid()); + } + + /** + * VerifyIsRequiredPasswordValidationSucceedsWithSetValue + * @testDescription Verifies that a required input will succeed with any value set + */ + @Test + public void VerifyIsRequiredPasswordValidationSucceedsWithSetValue() + { + TextInput textInput = createPasswordInputWithValidationProperties("", 0, true); + TextInputHandler textInputHandler = createTextInputHandler(textInput); + + TestUtil.GeneralValidationExecutor validationExecutor = new TestUtil.GeneralValidationExecutor(textInputHandler); + TestUtil.runValidationTests(TestUtil.concat(String.class, c_regexValidValues, c_regexInvalidValues, c_shortStrings, c_longStrings), true, validationExecutor); + } + + /** + * VerifySpecificRegexPasswordValidationFailsWithNonCompliantValues + * @testDescription Verifies that the regex validation (isValidOnSpecifics) fails when a value doesn't + * comply with the regex + */ + @Test + public void VerifySpecificRegexPasswordValidationFailsWithNonCompliantValues() + { + TextInput textInput = createPasswordInputWithValidationProperties(testRegexHexColor, 0); + TextInputHandler textInputHandler = createTextInputHandler(textInput); + + TestUtil.SpecificsValidationExecutor regexValidationExecutor = new TestUtil.SpecificsValidationExecutor(textInputHandler); + TestUtil.runValidationTests(c_regexInvalidValues, false, regexValidationExecutor); + } + + /** + * VerifySpecificRegexPasswordValidationSucceedsWithCompliantValues + * @testDescription Verifies that the min validation (isValidOnSpecifics) succeeds when a value + * complies with the regex + */ + @Test + public void VerifySpecificRegexPasswordValidationSucceedsWithCompliantValues() + { + TextInput textInput = createPasswordInputWithValidationProperties(testRegexHexColor, 0); + TextInputHandler textInputHandler = createTextInputHandler(textInput); + + TestUtil.SpecificsValidationExecutor regexValidationExecutor = new TestUtil.SpecificsValidationExecutor(textInputHandler); + TestUtil.runValidationTests(c_regexValidValues, true, regexValidationExecutor); + } + + /** + * VerifySpecificMaxLengthPasswordValidationSucceedsWithShortValues + * @testDescription Verifies that the maxLength validation (isValidOnSpecifics) succeeds when a short value has been set + */ + @Test + public void VerifySpecificMaxLengthPasswordValidationSucceedsWithShortValues() + { + TextInput textInput = createPasswordInputWithValidationProperties("", testMaxLength); + TextInputHandler textInputHandler = createTextInputHandler(textInput); + + TestUtil.SpecificsValidationExecutor maxValidationExecutor = new TestUtil.SpecificsValidationExecutor(textInputHandler); + TestUtil.runValidationTests(c_shortStrings, true, maxValidationExecutor); + } + + /** + * VerifySpecificMaxLengthPasswordValidationFailsWithLongValues + * @testDescription Verifies that the maxLength validation (isValidOnSpecifics) fails when a long value has been set + */ + @Test + public void VerifySpecificMaxLengthPasswordValidationFailsWithLongValues() + { + TextInput textInput = createPasswordInputWithValidationProperties("", testMaxLength); + TextInputHandler textInputHandler = createTextInputHandler(textInput); + + TestUtil.SpecificsValidationExecutor maxValidationExecutor = new TestUtil.SpecificsValidationExecutor(textInputHandler); + TestUtil.runValidationTests(c_longStrings, false, maxValidationExecutor); + } + } diff --git a/source/android/adaptivecards/src/main/cpp/objectmodel_wrap.cpp b/source/android/adaptivecards/src/main/cpp/objectmodel_wrap.cpp index b2dda753bd..c73d3b5b67 100644 --- a/source/android/adaptivecards/src/main/cpp/objectmodel_wrap.cpp +++ b/source/android/adaptivecards/src/main/cpp/objectmodel_wrap.cpp @@ -773,7 +773,8 @@ namespace Swig { #include "../../../shared/cpp/ObjectModel/BaseCardElement.h" #include "../../../shared/cpp/ObjectModel/BaseActionElement.h" #include "../../../shared/cpp/ObjectModel/BaseInputElement.h" -#include "../../../shared/cpp/ObjectModel/CollectionTypeElement.h" +#include "../../../shared/cpp/ObjectModel/CollectionCoreElement.h" +#include "../../../shared/cpp/ObjectModel/StyledCollectionElement.h" #include "../../../shared/cpp/ObjectModel/AdaptiveCardParseWarning.h" #include "../../../shared/cpp/ObjectModel/ActionParserRegistration.h" #include "../../../shared/cpp/ObjectModel/ElementParserRegistration.h" @@ -11610,9 +11611,9 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod } -SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_ParseContext_1SaveContextForCollectionTypeElement(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_ParseContext_1SaveContextForStyledCollectionElement(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { AdaptiveCards::ParseContext *arg1 = (AdaptiveCards::ParseContext *) 0 ; - AdaptiveCards::CollectionTypeElement *arg2 = 0 ; + AdaptiveCards::StyledCollectionElement *arg2 = 0 ; std::shared_ptr< AdaptiveCards::ParseContext > *smartarg1 = 0 ; (void)jenv; @@ -11623,18 +11624,18 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode smartarg1 = *(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1; arg1 = (AdaptiveCards::ParseContext *)(smartarg1 ? smartarg1->get() : 0); - arg2 = (AdaptiveCards::CollectionTypeElement *)((*(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg2) ? (*(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg2)->get() : 0); + arg2 = (AdaptiveCards::StyledCollectionElement *)((*(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg2) ? (*(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg2)->get() : 0); if (!arg2) { - SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::CollectionTypeElement const & reference is null"); + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::StyledCollectionElement const & reference is null"); return ; } - (arg1)->SaveContextForCollectionTypeElement((AdaptiveCards::CollectionTypeElement const &)*arg2); + (arg1)->SaveContextForStyledCollectionElement((AdaptiveCards::StyledCollectionElement const &)*arg2); } -SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_ParseContext_1RestoreContextForCollectionTypeElement(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_ParseContext_1RestoreContextForStyledCollectionElement(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { AdaptiveCards::ParseContext *arg1 = (AdaptiveCards::ParseContext *) 0 ; - AdaptiveCards::CollectionTypeElement *arg2 = 0 ; + AdaptiveCards::StyledCollectionElement *arg2 = 0 ; std::shared_ptr< AdaptiveCards::ParseContext > *smartarg1 = 0 ; (void)jenv; @@ -11645,12 +11646,12 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode smartarg1 = *(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1; arg1 = (AdaptiveCards::ParseContext *)(smartarg1 ? smartarg1->get() : 0); - arg2 = (AdaptiveCards::CollectionTypeElement *)((*(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg2) ? (*(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg2)->get() : 0); + arg2 = (AdaptiveCards::StyledCollectionElement *)((*(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg2) ? (*(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg2)->get() : 0); if (!arg2) { - SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::CollectionTypeElement const & reference is null"); + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::StyledCollectionElement const & reference is null"); return ; } - (arg1)->RestoreContextForCollectionTypeElement((AdaptiveCards::CollectionTypeElement const &)*arg2); + (arg1)->RestoreContextForStyledCollectionElement((AdaptiveCards::StyledCollectionElement const &)*arg2); } @@ -11754,13 +11755,13 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_InternalId_1Hash(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { jlong jresult = 0 ; AdaptiveCards::InternalId *arg1 = (AdaptiveCards::InternalId *) 0 ; - std::size_t result; + unsigned int result; (void)jenv; (void)jcls; (void)jarg1_; arg1 = *(AdaptiveCards::InternalId **)&jarg1; - result = ((AdaptiveCards::InternalId const *)arg1)->Hash(); + result = (unsigned int)((AdaptiveCards::InternalId const *)arg1)->Hash(); jresult = (jlong)result; return jresult; } @@ -14197,75 +14198,117 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode } -SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_delete_1CollectionTypeElement(JNIEnv *jenv, jclass jcls, jlong jarg1) { - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ; +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_delete_1CollectionCoreElement(JNIEnv *jenv, jclass jcls, jlong jarg1) { + AdaptiveCards::CollectionCoreElement *arg1 = (AdaptiveCards::CollectionCoreElement *) 0 ; + std::shared_ptr< AdaptiveCards::CollectionCoreElement > *smartarg1 = 0 ; + + (void)jenv; + (void)jcls; + + smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionCoreElement > **)&jarg1; + arg1 = (AdaptiveCards::CollectionCoreElement *)(smartarg1 ? smartarg1->get() : 0); + (void)arg1; delete smartarg1; +} + + +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionCoreElement_1DeserializeChildren(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + AdaptiveCards::CollectionCoreElement *arg1 = (AdaptiveCards::CollectionCoreElement *) 0 ; + AdaptiveCards::ParseContext *arg2 = 0 ; + Json::Value *arg3 = 0 ; + std::shared_ptr< AdaptiveCards::CollectionCoreElement > *smartarg1 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + + smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionCoreElement > **)&jarg1; + arg1 = (AdaptiveCards::CollectionCoreElement *)(smartarg1 ? smartarg1->get() : 0); + + arg2 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2)->get() : 0); + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::ParseContext & reference is null"); + return ; + } + arg3 = *(Json::Value **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Json::Value const & reference is null"); + return ; + } + (arg1)->DeserializeChildren(*arg2,(Json::Value const &)*arg3); +} + + +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_delete_1StyledCollectionElement(JNIEnv *jenv, jclass jcls, jlong jarg1) { + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ; (void)jenv; (void)jcls; - smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); + smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); (void)arg1; delete smartarg1; } -SWIGEXPORT jint JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetStyle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { +SWIGEXPORT jint JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetStyle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { jint jresult = 0 ; - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ; + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ; AdaptiveCards::ContainerStyle result; (void)jenv; (void)jcls; (void)jarg1_; - smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); - result = (AdaptiveCards::ContainerStyle)((AdaptiveCards::CollectionTypeElement const *)arg1)->GetStyle(); + smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); + result = (AdaptiveCards::ContainerStyle)((AdaptiveCards::StyledCollectionElement const *)arg1)->GetStyle(); jresult = (jint)result; return jresult; } -SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SetStyle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SetStyle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) { + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; AdaptiveCards::ContainerStyle arg2 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ; (void)jenv; (void)jcls; (void)jarg1_; - smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); + smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); arg2 = (AdaptiveCards::ContainerStyle)jarg2; (arg1)->SetStyle(arg2); } -SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetVerticalContentAlignment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetVerticalContentAlignment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { jlong jresult = 0 ; - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ; + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ; std::optional< AdaptiveCards::VerticalContentAlignment > result; (void)jenv; (void)jcls; (void)jarg1_; - smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); - result = ((AdaptiveCards::CollectionTypeElement const *)arg1)->GetVerticalContentAlignment(); + smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); + result = ((AdaptiveCards::StyledCollectionElement const *)arg1)->GetVerticalContentAlignment(); *(std::optional< AdaptiveCards::VerticalContentAlignment > **)&jresult = new std::optional< AdaptiveCards::VerticalContentAlignment >((const std::optional< AdaptiveCards::VerticalContentAlignment > &)result); return jresult; } -SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SetVerticalContentAlignment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SetVerticalContentAlignment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; std::optional< AdaptiveCards::VerticalContentAlignment > arg2 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ; std::optional< AdaptiveCards::VerticalContentAlignment > const *argp2 ; (void)jenv; @@ -14273,8 +14316,8 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode (void)jarg1_; (void)jarg2_; - smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); + smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); argp2 = *(std::optional< AdaptiveCards::VerticalContentAlignment > **)&jarg2; if (!argp2) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null std::optional< AdaptiveCards::VerticalContentAlignment > const"); @@ -14285,122 +14328,122 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode } -SWIGEXPORT jboolean JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetPadding(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { +SWIGEXPORT jboolean JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetPadding(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { jboolean jresult = 0 ; - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ; + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ; bool result; (void)jenv; (void)jcls; (void)jarg1_; - smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); - result = (bool)((AdaptiveCards::CollectionTypeElement const *)arg1)->GetPadding(); + smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); + result = (bool)((AdaptiveCards::StyledCollectionElement const *)arg1)->GetPadding(); jresult = (jboolean)result; return jresult; } -SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SetPadding(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SetPadding(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; bool arg2 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ; (void)jenv; (void)jcls; (void)jarg1_; - smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); + smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); arg2 = jarg2 ? true : false; (arg1)->SetPadding(arg2); } -SWIGEXPORT jboolean JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetBleed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { +SWIGEXPORT jboolean JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetBleed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { jboolean jresult = 0 ; - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ; + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ; bool result; (void)jenv; (void)jcls; (void)jarg1_; - smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); - result = (bool)((AdaptiveCards::CollectionTypeElement const *)arg1)->GetBleed(); + smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); + result = (bool)((AdaptiveCards::StyledCollectionElement const *)arg1)->GetBleed(); jresult = (jboolean)result; return jresult; } -SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SetBleed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SetBleed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) { + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; bool arg2 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ; (void)jenv; (void)jcls; (void)jarg1_; - smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); + smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); arg2 = jarg2 ? true : false; (arg1)->SetBleed(arg2); } -SWIGEXPORT jboolean JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetCanBleed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { +SWIGEXPORT jboolean JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetCanBleed(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { jboolean jresult = 0 ; - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ; + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ; bool result; (void)jenv; (void)jcls; (void)jarg1_; - smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); - result = (bool)((AdaptiveCards::CollectionTypeElement const *)arg1)->GetCanBleed(); + smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); + result = (bool)((AdaptiveCards::StyledCollectionElement const *)arg1)->GetCanBleed(); jresult = (jboolean)result; return jresult; } -SWIGEXPORT jint JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetBleedDirection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { +SWIGEXPORT jint JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetBleedDirection(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { jint jresult = 0 ; - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ; + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ; AdaptiveCards::ContainerBleedDirection result; (void)jenv; (void)jcls; (void)jarg1_; - smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); - result = (AdaptiveCards::ContainerBleedDirection)((AdaptiveCards::CollectionTypeElement const *)arg1)->GetBleedDirection(); + smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); + result = (AdaptiveCards::ContainerBleedDirection)((AdaptiveCards::StyledCollectionElement const *)arg1)->GetBleedDirection(); jresult = (jint)result; return jresult; } -SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1ConfigForContainerStyle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1ConfigForContainerStyle(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; AdaptiveCards::ParseContext *arg2 = 0 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ; (void)jenv; (void)jcls; (void)jarg1_; (void)jarg2_; - smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); + smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); arg2 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< const AdaptiveCards::ParseContext > **)&jarg2) ? (*(std::shared_ptr< const AdaptiveCards::ParseContext > **)&jarg2)->get() : 0); if (!arg2) { @@ -14411,18 +14454,18 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode } -SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SetParentalId(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SetParentalId(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; AdaptiveCards::InternalId *arg2 = 0 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ; (void)jenv; (void)jcls; (void)jarg1_; (void)jarg2_; - smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); + smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); arg2 = *(AdaptiveCards::InternalId **)&jarg2; if (!arg2) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::InternalId const & reference is null"); @@ -14432,46 +14475,46 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode } -SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetParentalId(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetParentalId(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { jlong jresult = 0 ; - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ; + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ; AdaptiveCards::InternalId result; (void)jenv; (void)jcls; (void)jarg1_; - smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); - result = ((AdaptiveCards::CollectionTypeElement const *)arg1)->GetParentalId(); + smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); + result = ((AdaptiveCards::StyledCollectionElement const *)arg1)->GetParentalId(); *(AdaptiveCards::InternalId **)&jresult = new AdaptiveCards::InternalId((const AdaptiveCards::InternalId &)result); return jresult; } -SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetSelectAction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetSelectAction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { jlong jresult = 0 ; - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ; + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ; std::shared_ptr< AdaptiveCards::BaseActionElement > result; (void)jenv; (void)jcls; (void)jarg1_; - smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); - result = ((AdaptiveCards::CollectionTypeElement const *)arg1)->GetSelectAction(); + smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); + result = ((AdaptiveCards::StyledCollectionElement const *)arg1)->GetSelectAction(); *(std::shared_ptr< AdaptiveCards::BaseActionElement > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::BaseActionElement >(result) : 0; return jresult; } -SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SetSelectAction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SetSelectAction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; std::shared_ptr< AdaptiveCards::BaseActionElement > arg2 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ; std::shared_ptr< AdaptiveCards::BaseActionElement > const *argp2 ; (void)jenv; @@ -14479,36 +14522,36 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode (void)jarg1_; (void)jarg2_; - smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); + smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); argp2 = *(std::shared_ptr< AdaptiveCards::BaseActionElement > **)&jarg2; if (argp2) arg2 = *argp2; (arg1)->SetSelectAction(arg2); } -SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetBackgroundImage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetBackgroundImage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { jlong jresult = 0 ; - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ; + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ; std::shared_ptr< AdaptiveCards::BackgroundImage > result; (void)jenv; (void)jcls; (void)jarg1_; - smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); - result = ((AdaptiveCards::CollectionTypeElement const *)arg1)->GetBackgroundImage(); + smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); + result = ((AdaptiveCards::StyledCollectionElement const *)arg1)->GetBackgroundImage(); *(std::shared_ptr< AdaptiveCards::BackgroundImage > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::BackgroundImage >(result) : 0; return jresult; } -SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SetBackgroundImage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SetBackgroundImage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; std::shared_ptr< AdaptiveCards::BackgroundImage > arg2 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ; std::shared_ptr< AdaptiveCards::BackgroundImage > const *argp2 ; (void)jenv; @@ -14516,90 +14559,61 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode (void)jarg1_; (void)jarg2_; - smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); + smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); argp2 = *(std::shared_ptr< AdaptiveCards::BackgroundImage > **)&jarg2; if (argp2) arg2 = *argp2; (arg1)->SetBackgroundImage(arg2); } -SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1GetMinHeight(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1GetMinHeight(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { jlong jresult = 0 ; - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ; + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ; unsigned int result; (void)jenv; (void)jcls; (void)jarg1_; - smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); - result = (unsigned int)((AdaptiveCards::CollectionTypeElement const *)arg1)->GetMinHeight(); + smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); + result = (unsigned int)((AdaptiveCards::StyledCollectionElement const *)arg1)->GetMinHeight(); jresult = (jlong)result; return jresult; } -SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SetMinHeight(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SetMinHeight(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2) { + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; unsigned int arg2 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement > *smartarg1 = 0 ; (void)jenv; (void)jcls; (void)jarg1_; - smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); + smartarg1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); arg2 = (unsigned int)jarg2; (arg1)->SetMinHeight(arg2); } -SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1DeserializeChildren(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; - AdaptiveCards::ParseContext *arg2 = 0 ; - Json::Value *arg3 = 0 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement > *smartarg1 = 0 ; - - (void)jenv; - (void)jcls; - (void)jarg1_; - (void)jarg2_; - (void)jarg3_; - - smartarg1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); - - arg2 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2)->get() : 0); - if (!arg2) { - SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::ParseContext & reference is null"); - return ; - } - arg3 = *(Json::Value **)&jarg3; - if (!arg3) { - SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Json::Value const & reference is null"); - return ; - } - (arg1)->DeserializeChildren(*arg2,(Json::Value const &)*arg3); -} - - -SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SerializeToJsonValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SerializeToJsonValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { jlong jresult = 0 ; - AdaptiveCards::CollectionTypeElement *arg1 = (AdaptiveCards::CollectionTypeElement *) 0 ; - std::shared_ptr< AdaptiveCards::CollectionTypeElement const > *smartarg1 = 0 ; + AdaptiveCards::StyledCollectionElement *arg1 = (AdaptiveCards::StyledCollectionElement *) 0 ; + std::shared_ptr< AdaptiveCards::StyledCollectionElement const > *smartarg1 = 0 ; Json::Value result; (void)jenv; (void)jcls; (void)jarg1_; - smartarg1 = *(std::shared_ptr< const AdaptiveCards::CollectionTypeElement > **)&jarg1; - arg1 = (AdaptiveCards::CollectionTypeElement *)(smartarg1 ? smartarg1->get() : 0); - result = ((AdaptiveCards::CollectionTypeElement const *)arg1)->SerializeToJsonValue(); + smartarg1 = *(std::shared_ptr< const AdaptiveCards::StyledCollectionElement > **)&jarg1; + arg1 = (AdaptiveCards::StyledCollectionElement *)(smartarg1 ? smartarg1->get() : 0); + result = ((AdaptiveCards::StyledCollectionElement const *)arg1)->SerializeToJsonValue(); *(Json::Value **)&jresult = new Json::Value((const Json::Value &)result); return jresult; } @@ -29424,120 +29438,59 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode } -SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_new_1TableCellParser_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { - jlong jresult = 0 ; - AdaptiveCards::TableCellParser *result = 0 ; - - (void)jenv; - (void)jcls; - result = (AdaptiveCards::TableCellParser *)new AdaptiveCards::TableCellParser(); - - *(std::shared_ptr< AdaptiveCards::TableCellParser > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::TableCellParser >(result SWIG_NO_NULL_DELETER_1) : 0; - - return jresult; -} - - -SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_new_1TableCellParser_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableCell_1DeserializeTableCellFromString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { jlong jresult = 0 ; - AdaptiveCards::TableCellParser *arg1 = 0 ; - AdaptiveCards::TableCellParser *result = 0 ; + AdaptiveCards::ParseContext *arg1 = 0 ; + std::string *arg2 = 0 ; + std::shared_ptr< AdaptiveCards::TableCell > result; (void)jenv; (void)jcls; (void)jarg1_; - arg1 = (AdaptiveCards::TableCellParser *)((*(std::shared_ptr< const AdaptiveCards::TableCellParser > **)&jarg1) ? (*(std::shared_ptr< const AdaptiveCards::TableCellParser > **)&jarg1)->get() : 0); + arg1 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1)->get() : 0); if (!arg1) { - SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::TableCellParser const & reference is null"); - return 0; - } - result = (AdaptiveCards::TableCellParser *)new AdaptiveCards::TableCellParser((AdaptiveCards::TableCellParser const &)*arg1); - - *(std::shared_ptr< AdaptiveCards::TableCellParser > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::TableCellParser >(result SWIG_NO_NULL_DELETER_1) : 0; - - return jresult; -} - - -SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_delete_1TableCellParser(JNIEnv *jenv, jclass jcls, jlong jarg1) { - AdaptiveCards::TableCellParser *arg1 = (AdaptiveCards::TableCellParser *) 0 ; - std::shared_ptr< AdaptiveCards::TableCellParser > *smartarg1 = 0 ; - - (void)jenv; - (void)jcls; - - smartarg1 = *(std::shared_ptr< AdaptiveCards::TableCellParser > **)&jarg1; - arg1 = (AdaptiveCards::TableCellParser *)(smartarg1 ? smartarg1->get() : 0); - (void)arg1; delete smartarg1; -} - - -SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableCellParser_1Deserialize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { - jlong jresult = 0 ; - AdaptiveCards::TableCellParser *arg1 = (AdaptiveCards::TableCellParser *) 0 ; - AdaptiveCards::ParseContext *arg2 = 0 ; - Json::Value *arg3 = 0 ; - std::shared_ptr< AdaptiveCards::TableCellParser > *smartarg1 = 0 ; - std::shared_ptr< AdaptiveCards::BaseCardElement > result; - - (void)jenv; - (void)jcls; - (void)jarg1_; - (void)jarg2_; - (void)jarg3_; - - smartarg1 = *(std::shared_ptr< AdaptiveCards::TableCellParser > **)&jarg1; - arg1 = (AdaptiveCards::TableCellParser *)(smartarg1 ? smartarg1->get() : 0); - - arg2 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2)->get() : 0); - if (!arg2) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::ParseContext & reference is null"); return 0; } - arg3 = *(Json::Value **)&jarg3; - if (!arg3) { - SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Json::Value const & reference is null"); + if(!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string"); return 0; - } - result = (arg1)->Deserialize(*arg2,(Json::Value const &)*arg3); - *(std::shared_ptr< AdaptiveCards::BaseCardElement > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::BaseCardElement >(result) : 0; + } + const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2_pstr) return 0; + std::string arg2_str(arg2_pstr); + arg2 = &arg2_str; + jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); + result = AdaptiveCards::TableCell::DeserializeTableCellFromString(*arg1,(std::string const &)*arg2); + *(std::shared_ptr< AdaptiveCards::TableCell > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::TableCell >(result) : 0; return jresult; } -SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableCellParser_1DeserializeFromString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3) { +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableCell_1DeserializeTableCell(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { jlong jresult = 0 ; - AdaptiveCards::TableCellParser *arg1 = (AdaptiveCards::TableCellParser *) 0 ; - AdaptiveCards::ParseContext *arg2 = 0 ; - std::string *arg3 = 0 ; - std::shared_ptr< AdaptiveCards::TableCellParser > *smartarg1 = 0 ; - std::shared_ptr< AdaptiveCards::BaseCardElement > result; + AdaptiveCards::ParseContext *arg1 = 0 ; + Json::Value *arg2 = 0 ; + std::shared_ptr< AdaptiveCards::TableCell > result; (void)jenv; (void)jcls; (void)jarg1_; (void)jarg2_; - smartarg1 = *(std::shared_ptr< AdaptiveCards::TableCellParser > **)&jarg1; - arg1 = (AdaptiveCards::TableCellParser *)(smartarg1 ? smartarg1->get() : 0); - - arg2 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2)->get() : 0); - if (!arg2) { + arg1 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1)->get() : 0); + if (!arg1) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::ParseContext & reference is null"); return 0; } - if(!jarg3) { - SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string"); + arg2 = *(Json::Value **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Json::Value const & reference is null"); return 0; - } - const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0); - if (!arg3_pstr) return 0; - std::string arg3_str(arg3_pstr); - arg3 = &arg3_str; - jenv->ReleaseStringUTFChars(jarg3, arg3_pstr); - result = (arg1)->DeserializeFromString(*arg2,(std::string const &)*arg3); - *(std::shared_ptr< AdaptiveCards::BaseCardElement > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::BaseCardElement >(result) : 0; + } + result = AdaptiveCards::TableCell::DeserializeTableCell(*arg1,(Json::Value const &)*arg2); + *(std::shared_ptr< AdaptiveCards::TableCell > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::TableCell >(result) : 0; return jresult; } @@ -29609,6 +29562,35 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod } +SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_Table_1DeserializeChildren(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { + AdaptiveCards::Table *arg1 = (AdaptiveCards::Table *) 0 ; + AdaptiveCards::ParseContext *arg2 = 0 ; + Json::Value *arg3 = 0 ; + std::shared_ptr< AdaptiveCards::Table > *smartarg1 = 0 ; + + (void)jenv; + (void)jcls; + (void)jarg1_; + (void)jarg2_; + (void)jarg3_; + + smartarg1 = *(std::shared_ptr< AdaptiveCards::Table > **)&jarg1; + arg1 = (AdaptiveCards::Table *)(smartarg1 ? smartarg1->get() : 0); + + arg2 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2)->get() : 0); + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::ParseContext & reference is null"); + return ; + } + arg3 = *(Json::Value **)&jarg3; + if (!arg3) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Json::Value const & reference is null"); + return ; + } + (arg1)->DeserializeChildren(*arg2,(Json::Value const &)*arg3); +} + + SWIGEXPORT jboolean JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_Table_1GetShowGridLines(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { jboolean jresult = 0 ; AdaptiveCards::Table *arg1 = (AdaptiveCards::Table *) 0 ; @@ -30519,120 +30501,59 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode } -SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_new_1TableRowParser_1_1SWIG_10(JNIEnv *jenv, jclass jcls) { +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableRow_1DeserializeTableRowFromString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { jlong jresult = 0 ; - AdaptiveCards::TableRowParser *result = 0 ; - - (void)jenv; - (void)jcls; - result = (AdaptiveCards::TableRowParser *)new AdaptiveCards::TableRowParser(); - - *(std::shared_ptr< AdaptiveCards::TableRowParser > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::TableRowParser >(result SWIG_NO_NULL_DELETER_1) : 0; - - return jresult; -} - - -SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_new_1TableRowParser_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) { - jlong jresult = 0 ; - AdaptiveCards::TableRowParser *arg1 = 0 ; - AdaptiveCards::TableRowParser *result = 0 ; + AdaptiveCards::ParseContext *arg1 = 0 ; + std::string *arg2 = 0 ; + std::shared_ptr< AdaptiveCards::TableRow > result; (void)jenv; (void)jcls; (void)jarg1_; - arg1 = (AdaptiveCards::TableRowParser *)((*(std::shared_ptr< const AdaptiveCards::TableRowParser > **)&jarg1) ? (*(std::shared_ptr< const AdaptiveCards::TableRowParser > **)&jarg1)->get() : 0); + arg1 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1)->get() : 0); if (!arg1) { - SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::TableRowParser const & reference is null"); - return 0; - } - result = (AdaptiveCards::TableRowParser *)new AdaptiveCards::TableRowParser((AdaptiveCards::TableRowParser const &)*arg1); - - *(std::shared_ptr< AdaptiveCards::TableRowParser > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::TableRowParser >(result SWIG_NO_NULL_DELETER_1) : 0; - - return jresult; -} - - -SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_delete_1TableRowParser(JNIEnv *jenv, jclass jcls, jlong jarg1) { - AdaptiveCards::TableRowParser *arg1 = (AdaptiveCards::TableRowParser *) 0 ; - std::shared_ptr< AdaptiveCards::TableRowParser > *smartarg1 = 0 ; - - (void)jenv; - (void)jcls; - - smartarg1 = *(std::shared_ptr< AdaptiveCards::TableRowParser > **)&jarg1; - arg1 = (AdaptiveCards::TableRowParser *)(smartarg1 ? smartarg1->get() : 0); - (void)arg1; delete smartarg1; -} - - -SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableRowParser_1Deserialize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jlong jarg3, jobject jarg3_) { - jlong jresult = 0 ; - AdaptiveCards::TableRowParser *arg1 = (AdaptiveCards::TableRowParser *) 0 ; - AdaptiveCards::ParseContext *arg2 = 0 ; - Json::Value *arg3 = 0 ; - std::shared_ptr< AdaptiveCards::TableRowParser > *smartarg1 = 0 ; - std::shared_ptr< AdaptiveCards::BaseCardElement > result; - - (void)jenv; - (void)jcls; - (void)jarg1_; - (void)jarg2_; - (void)jarg3_; - - smartarg1 = *(std::shared_ptr< AdaptiveCards::TableRowParser > **)&jarg1; - arg1 = (AdaptiveCards::TableRowParser *)(smartarg1 ? smartarg1->get() : 0); - - arg2 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2)->get() : 0); - if (!arg2) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::ParseContext & reference is null"); return 0; } - arg3 = *(Json::Value **)&jarg3; - if (!arg3) { - SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Json::Value const & reference is null"); + if(!jarg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string"); return 0; - } - result = (arg1)->Deserialize(*arg2,(Json::Value const &)*arg3); - *(std::shared_ptr< AdaptiveCards::BaseCardElement > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::BaseCardElement >(result) : 0; + } + const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); + if (!arg2_pstr) return 0; + std::string arg2_str(arg2_pstr); + arg2 = &arg2_str; + jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); + result = AdaptiveCards::TableRow::DeserializeTableRowFromString(*arg1,(std::string const &)*arg2); + *(std::shared_ptr< AdaptiveCards::TableRow > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::TableRow >(result) : 0; return jresult; } -SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableRowParser_1DeserializeFromString(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_, jstring jarg3) { +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableRow_1DeserializeTableRow(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) { jlong jresult = 0 ; - AdaptiveCards::TableRowParser *arg1 = (AdaptiveCards::TableRowParser *) 0 ; - AdaptiveCards::ParseContext *arg2 = 0 ; - std::string *arg3 = 0 ; - std::shared_ptr< AdaptiveCards::TableRowParser > *smartarg1 = 0 ; - std::shared_ptr< AdaptiveCards::BaseCardElement > result; + AdaptiveCards::ParseContext *arg1 = 0 ; + Json::Value *arg2 = 0 ; + std::shared_ptr< AdaptiveCards::TableRow > result; (void)jenv; (void)jcls; (void)jarg1_; (void)jarg2_; - smartarg1 = *(std::shared_ptr< AdaptiveCards::TableRowParser > **)&jarg1; - arg1 = (AdaptiveCards::TableRowParser *)(smartarg1 ? smartarg1->get() : 0); - - arg2 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg2)->get() : 0); - if (!arg2) { + arg1 = (AdaptiveCards::ParseContext *)((*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1) ? (*(std::shared_ptr< AdaptiveCards::ParseContext > **)&jarg1)->get() : 0); + if (!arg1) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "AdaptiveCards::ParseContext & reference is null"); return 0; } - if(!jarg3) { - SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string"); + arg2 = *(Json::Value **)&jarg2; + if (!arg2) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Json::Value const & reference is null"); return 0; - } - const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0); - if (!arg3_pstr) return 0; - std::string arg3_str(arg3_pstr); - arg3 = &arg3_str; - jenv->ReleaseStringUTFChars(jarg3, arg3_pstr); - result = (arg1)->DeserializeFromString(*arg2,(std::string const &)*arg3); - *(std::shared_ptr< AdaptiveCards::BaseCardElement > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::BaseCardElement >(result) : 0; + } + result = AdaptiveCards::TableRow::DeserializeTableRow(*arg1,(Json::Value const &)*arg2); + *(std::shared_ptr< AdaptiveCards::TableRow > **)&jresult = result ? new std::shared_ptr< AdaptiveCards::TableRow >(result) : 0; return jresult; } @@ -34720,23 +34641,33 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod return baseptr; } -SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionTypeElement_1SWIGSmartPtrUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) { +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_CollectionCoreElement_1SWIGSmartPtrUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) { jlong baseptr = 0; - std::shared_ptr< AdaptiveCards::CollectionTypeElement > *argp1; + std::shared_ptr< AdaptiveCards::CollectionCoreElement > *argp1; (void)jenv; (void)jcls; - argp1 = *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&jarg1; + argp1 = *(std::shared_ptr< AdaptiveCards::CollectionCoreElement > **)&jarg1; *(std::shared_ptr< AdaptiveCards::BaseCardElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::BaseCardElement >(*argp1) : 0; return baseptr; } +SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_StyledCollectionElement_1SWIGSmartPtrUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) { + jlong baseptr = 0; + std::shared_ptr< AdaptiveCards::StyledCollectionElement > *argp1; + (void)jenv; + (void)jcls; + argp1 = *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&jarg1; + *(std::shared_ptr< AdaptiveCards::CollectionCoreElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::CollectionCoreElement >(*argp1) : 0; + return baseptr; +} + SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_Container_1SWIGSmartPtrUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) { jlong baseptr = 0; std::shared_ptr< AdaptiveCards::Container > *argp1; (void)jenv; (void)jcls; argp1 = *(std::shared_ptr< AdaptiveCards::Container > **)&jarg1; - *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::CollectionTypeElement >(*argp1) : 0; + *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::StyledCollectionElement >(*argp1) : 0; return baseptr; } @@ -34796,7 +34727,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod (void)jenv; (void)jcls; argp1 = *(std::shared_ptr< AdaptiveCards::Column > **)&jarg1; - *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::CollectionTypeElement >(*argp1) : 0; + *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::StyledCollectionElement >(*argp1) : 0; return baseptr; } @@ -34816,7 +34747,7 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod (void)jenv; (void)jcls; argp1 = *(std::shared_ptr< AdaptiveCards::ColumnSet > **)&jarg1; - *(std::shared_ptr< AdaptiveCards::CollectionTypeElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::CollectionTypeElement >(*argp1) : 0; + *(std::shared_ptr< AdaptiveCards::StyledCollectionElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::StyledCollectionElement >(*argp1) : 0; return baseptr; } @@ -35068,23 +34999,13 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod return baseptr; } -SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableCellParser_1SWIGSmartPtrUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jlong baseptr = 0; - std::shared_ptr< AdaptiveCards::TableCellParser > *argp1; - (void)jenv; - (void)jcls; - argp1 = *(std::shared_ptr< AdaptiveCards::TableCellParser > **)&jarg1; - *(std::shared_ptr< AdaptiveCards::ContainerParser > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::ContainerParser >(*argp1) : 0; - return baseptr; -} - SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_Table_1SWIGSmartPtrUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) { jlong baseptr = 0; std::shared_ptr< AdaptiveCards::Table > *argp1; (void)jenv; (void)jcls; argp1 = *(std::shared_ptr< AdaptiveCards::Table > **)&jarg1; - *(std::shared_ptr< AdaptiveCards::BaseCardElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::BaseCardElement >(*argp1) : 0; + *(std::shared_ptr< AdaptiveCards::CollectionCoreElement > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::CollectionCoreElement >(*argp1) : 0; return baseptr; } @@ -35108,16 +35029,6 @@ SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMod return baseptr; } -SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TableRowParser_1SWIGSmartPtrUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) { - jlong baseptr = 0; - std::shared_ptr< AdaptiveCards::TableRowParser > *argp1; - (void)jenv; - (void)jcls; - argp1 = *(std::shared_ptr< AdaptiveCards::TableRowParser > **)&jarg1; - *(std::shared_ptr< AdaptiveCards::BaseCardElementParser > **)&baseptr = argp1 ? new std::shared_ptr< AdaptiveCards::BaseCardElementParser >(*argp1) : 0; - return baseptr; -} - SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TextBlock_1SWIGSmartPtrUpcast(JNIEnv *jenv, jclass jcls, jlong jarg1) { jlong baseptr = 0; std::shared_ptr< AdaptiveCards::TextBlock > *argp1; diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCardObjectModelJNI.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCardObjectModelJNI.java index 17f41b8654..232efdb276 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCardObjectModelJNI.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/AdaptiveCardObjectModelJNI.java @@ -516,8 +516,8 @@ public class AdaptiveCardObjectModelJNI { public final static native int ParseContext_GetParentalContainerStyle(long jarg1, ParseContext jarg1_); public final static native void ParseContext_SetParentalContainerStyle(long jarg1, ParseContext jarg1_, int jarg2); public final static native long ParseContext_PaddingParentInternalId(long jarg1, ParseContext jarg1_); - public final static native void ParseContext_SaveContextForCollectionTypeElement(long jarg1, ParseContext jarg1_, long jarg2, CollectionTypeElement jarg2_); - public final static native void ParseContext_RestoreContextForCollectionTypeElement(long jarg1, ParseContext jarg1_, long jarg2, CollectionTypeElement jarg2_); + public final static native void ParseContext_SaveContextForStyledCollectionElement(long jarg1, ParseContext jarg1_, long jarg2, StyledCollectionElement jarg2_); + public final static native void ParseContext_RestoreContextForStyledCollectionElement(long jarg1, ParseContext jarg1_, long jarg2, StyledCollectionElement jarg2_); public final static native int ParseContext_GetBleedDirection(long jarg1, ParseContext jarg1_); public final static native void ParseContext_PushBleedDirection(long jarg1, ParseContext jarg1_, int jarg2); public final static native void ParseContext_PopBleedDirection(long jarg1, ParseContext jarg1_); @@ -653,28 +653,29 @@ public class AdaptiveCardObjectModelJNI { public final static native long BackgroundImage_Deserialize(long jarg1, JsonValue jarg1_); public final static native long BackgroundImage_DeserializeFromString(String jarg1); public final static native void delete_BackgroundImage(long jarg1); - public final static native void delete_CollectionTypeElement(long jarg1); - public final static native int CollectionTypeElement_GetStyle(long jarg1, CollectionTypeElement jarg1_); - public final static native void CollectionTypeElement_SetStyle(long jarg1, CollectionTypeElement jarg1_, int jarg2); - public final static native long CollectionTypeElement_GetVerticalContentAlignment(long jarg1, CollectionTypeElement jarg1_); - public final static native void CollectionTypeElement_SetVerticalContentAlignment(long jarg1, CollectionTypeElement jarg1_, long jarg2, StdOptionalVerticalContentAlignment jarg2_); - public final static native boolean CollectionTypeElement_GetPadding(long jarg1, CollectionTypeElement jarg1_); - public final static native void CollectionTypeElement_SetPadding(long jarg1, CollectionTypeElement jarg1_, boolean jarg2); - public final static native boolean CollectionTypeElement_GetBleed(long jarg1, CollectionTypeElement jarg1_); - public final static native void CollectionTypeElement_SetBleed(long jarg1, CollectionTypeElement jarg1_, boolean jarg2); - public final static native boolean CollectionTypeElement_GetCanBleed(long jarg1, CollectionTypeElement jarg1_); - public final static native int CollectionTypeElement_GetBleedDirection(long jarg1, CollectionTypeElement jarg1_); - public final static native void CollectionTypeElement_ConfigForContainerStyle(long jarg1, CollectionTypeElement jarg1_, long jarg2, ParseContext jarg2_); - public final static native void CollectionTypeElement_SetParentalId(long jarg1, CollectionTypeElement jarg1_, long jarg2, InternalId jarg2_); - public final static native long CollectionTypeElement_GetParentalId(long jarg1, CollectionTypeElement jarg1_); - public final static native long CollectionTypeElement_GetSelectAction(long jarg1, CollectionTypeElement jarg1_); - public final static native void CollectionTypeElement_SetSelectAction(long jarg1, CollectionTypeElement jarg1_, long jarg2, BaseActionElement jarg2_); - public final static native long CollectionTypeElement_GetBackgroundImage(long jarg1, CollectionTypeElement jarg1_); - public final static native void CollectionTypeElement_SetBackgroundImage(long jarg1, CollectionTypeElement jarg1_, long jarg2, BackgroundImage jarg2_); - public final static native long CollectionTypeElement_GetMinHeight(long jarg1, CollectionTypeElement jarg1_); - public final static native void CollectionTypeElement_SetMinHeight(long jarg1, CollectionTypeElement jarg1_, long jarg2); - public final static native void CollectionTypeElement_DeserializeChildren(long jarg1, CollectionTypeElement jarg1_, long jarg2, ParseContext jarg2_, long jarg3, JsonValue jarg3_); - public final static native long CollectionTypeElement_SerializeToJsonValue(long jarg1, CollectionTypeElement jarg1_); + public final static native void delete_CollectionCoreElement(long jarg1); + public final static native void CollectionCoreElement_DeserializeChildren(long jarg1, CollectionCoreElement jarg1_, long jarg2, ParseContext jarg2_, long jarg3, JsonValue jarg3_); + public final static native void delete_StyledCollectionElement(long jarg1); + public final static native int StyledCollectionElement_GetStyle(long jarg1, StyledCollectionElement jarg1_); + public final static native void StyledCollectionElement_SetStyle(long jarg1, StyledCollectionElement jarg1_, int jarg2); + public final static native long StyledCollectionElement_GetVerticalContentAlignment(long jarg1, StyledCollectionElement jarg1_); + public final static native void StyledCollectionElement_SetVerticalContentAlignment(long jarg1, StyledCollectionElement jarg1_, long jarg2, StdOptionalVerticalContentAlignment jarg2_); + public final static native boolean StyledCollectionElement_GetPadding(long jarg1, StyledCollectionElement jarg1_); + public final static native void StyledCollectionElement_SetPadding(long jarg1, StyledCollectionElement jarg1_, boolean jarg2); + public final static native boolean StyledCollectionElement_GetBleed(long jarg1, StyledCollectionElement jarg1_); + public final static native void StyledCollectionElement_SetBleed(long jarg1, StyledCollectionElement jarg1_, boolean jarg2); + public final static native boolean StyledCollectionElement_GetCanBleed(long jarg1, StyledCollectionElement jarg1_); + public final static native int StyledCollectionElement_GetBleedDirection(long jarg1, StyledCollectionElement jarg1_); + public final static native void StyledCollectionElement_ConfigForContainerStyle(long jarg1, StyledCollectionElement jarg1_, long jarg2, ParseContext jarg2_); + public final static native void StyledCollectionElement_SetParentalId(long jarg1, StyledCollectionElement jarg1_, long jarg2, InternalId jarg2_); + public final static native long StyledCollectionElement_GetParentalId(long jarg1, StyledCollectionElement jarg1_); + public final static native long StyledCollectionElement_GetSelectAction(long jarg1, StyledCollectionElement jarg1_); + public final static native void StyledCollectionElement_SetSelectAction(long jarg1, StyledCollectionElement jarg1_, long jarg2, BaseActionElement jarg2_); + public final static native long StyledCollectionElement_GetBackgroundImage(long jarg1, StyledCollectionElement jarg1_); + public final static native void StyledCollectionElement_SetBackgroundImage(long jarg1, StyledCollectionElement jarg1_, long jarg2, BackgroundImage jarg2_); + public final static native long StyledCollectionElement_GetMinHeight(long jarg1, StyledCollectionElement jarg1_); + public final static native void StyledCollectionElement_SetMinHeight(long jarg1, StyledCollectionElement jarg1_, long jarg2); + public final static native long StyledCollectionElement_SerializeToJsonValue(long jarg1, StyledCollectionElement jarg1_); public final static native String c_adaptiveCardsFeature_get(); public final static native String ToLowercase(String jarg1); public final static native long new_CaseInsensitiveKeyHash(); @@ -1454,15 +1455,13 @@ public class AdaptiveCardObjectModelJNI { public final static native long new_TableCell__SWIG_0(); public final static native long new_TableCell__SWIG_1(long jarg1, TableCell jarg1_); public final static native void delete_TableCell(long jarg1); - public final static native long new_TableCellParser__SWIG_0(); - public final static native long new_TableCellParser__SWIG_1(long jarg1, TableCellParser jarg1_); - public final static native void delete_TableCellParser(long jarg1); - public final static native long TableCellParser_Deserialize(long jarg1, TableCellParser jarg1_, long jarg2, ParseContext jarg2_, long jarg3, JsonValue jarg3_); - public final static native long TableCellParser_DeserializeFromString(long jarg1, TableCellParser jarg1_, long jarg2, ParseContext jarg2_, String jarg3); + public final static native long TableCell_DeserializeTableCellFromString(long jarg1, ParseContext jarg1_, String jarg2); + public final static native long TableCell_DeserializeTableCell(long jarg1, ParseContext jarg1_, long jarg2, JsonValue jarg2_); public final static native long new_Table__SWIG_0(); public final static native long new_Table__SWIG_1(long jarg1, Table jarg1_); public final static native void delete_Table(long jarg1); public final static native long Table_SerializeToJsonValue(long jarg1, Table jarg1_); + public final static native void Table_DeserializeChildren(long jarg1, Table jarg1_, long jarg2, ParseContext jarg2_, long jarg3, JsonValue jarg3_); public final static native boolean Table_GetShowGridLines(long jarg1, Table jarg1_); public final static native void Table_SetShowGridLines(long jarg1, Table jarg1_, boolean jarg2); public final static native boolean Table_GetFirstRowAsHeaders(long jarg1, Table jarg1_); @@ -1509,11 +1508,8 @@ public class AdaptiveCardObjectModelJNI { public final static native void TableRow_SetHorizontalCellContentAlignment(long jarg1, TableRow jarg1_, long jarg2, StdOptionalHorizontalAlignment jarg2_); public final static native int TableRow_GetStyle(long jarg1, TableRow jarg1_); public final static native void TableRow_SetStyle(long jarg1, TableRow jarg1_, int jarg2); - public final static native long new_TableRowParser__SWIG_0(); - public final static native long new_TableRowParser__SWIG_1(long jarg1, TableRowParser jarg1_); - public final static native void delete_TableRowParser(long jarg1); - public final static native long TableRowParser_Deserialize(long jarg1, TableRowParser jarg1_, long jarg2, ParseContext jarg2_, long jarg3, JsonValue jarg3_); - public final static native long TableRowParser_DeserializeFromString(long jarg1, TableRowParser jarg1_, long jarg2, ParseContext jarg2_, String jarg3); + public final static native long TableRow_DeserializeTableRowFromString(long jarg1, ParseContext jarg1_, String jarg2); + public final static native long TableRow_DeserializeTableRow(long jarg1, ParseContext jarg1_, long jarg2, JsonValue jarg2_); public final static native long new_TextBlock__SWIG_0(); public final static native long new_TextBlock__SWIG_1(long jarg1, TextBlock jarg1_); public final static native void delete_TextBlock(long jarg1); @@ -1718,7 +1714,8 @@ public class AdaptiveCardObjectModelJNI { public final static native long BaseCardElement_SWIGSmartPtrUpcast(long jarg1); public final static native long BaseActionElement_SWIGSmartPtrUpcast(long jarg1); public final static native long BaseInputElement_SWIGSmartPtrUpcast(long jarg1); - public final static native long CollectionTypeElement_SWIGSmartPtrUpcast(long jarg1); + public final static native long CollectionCoreElement_SWIGSmartPtrUpcast(long jarg1); + public final static native long StyledCollectionElement_SWIGSmartPtrUpcast(long jarg1); public final static native long Container_SWIGSmartPtrUpcast(long jarg1); public final static native long ContainerParser_SWIGSmartPtrUpcast(long jarg1); public final static native long Image_SWIGSmartPtrUpcast(long jarg1); @@ -1753,11 +1750,9 @@ public class AdaptiveCardObjectModelJNI { public final static native long FactSet_SWIGSmartPtrUpcast(long jarg1); public final static native long FactSetParser_SWIGSmartPtrUpcast(long jarg1); public final static native long TableCell_SWIGSmartPtrUpcast(long jarg1); - public final static native long TableCellParser_SWIGSmartPtrUpcast(long jarg1); public final static native long Table_SWIGSmartPtrUpcast(long jarg1); public final static native long TableParser_SWIGSmartPtrUpcast(long jarg1); public final static native long TableRow_SWIGSmartPtrUpcast(long jarg1); - public final static native long TableRowParser_SWIGSmartPtrUpcast(long jarg1); public final static native long TextBlock_SWIGSmartPtrUpcast(long jarg1); public final static native long TextBlockParser_SWIGSmartPtrUpcast(long jarg1); public final static native long Media_SWIGSmartPtrUpcast(long jarg1); diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/CollectionCoreElement.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/CollectionCoreElement.java new file mode 100644 index 0000000000..af96c73aea --- /dev/null +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/CollectionCoreElement.java @@ -0,0 +1,50 @@ +/* ---------------------------------------------------------------------------- + * This file was automatically generated by SWIG (http://www.swig.org). + * Version 4.0.2 + * + * Do not make changes to this file unless you know what you are doing--modify + * the SWIG interface file instead. + * ----------------------------------------------------------------------------- */ + +package io.adaptivecards.objectmodel; + +public class CollectionCoreElement extends BaseCardElement { + private transient long swigCPtr; + private transient boolean swigCMemOwnDerived; + + protected CollectionCoreElement(long cPtr, boolean cMemoryOwn) { + super(AdaptiveCardObjectModelJNI.CollectionCoreElement_SWIGSmartPtrUpcast(cPtr), true); + swigCMemOwnDerived = cMemoryOwn; + swigCPtr = cPtr; + } + + protected static long getCPtr(CollectionCoreElement obj) { + return (obj == null) ? 0 : obj.swigCPtr; + } + + protected void swigSetCMemOwn(boolean own) { + swigCMemOwnDerived = own; + super.swigSetCMemOwn(own); + } + + @SuppressWarnings("deprecation") + protected void finalize() { + delete(); + } + + public synchronized void delete() { + if (swigCPtr != 0) { + if (swigCMemOwnDerived) { + swigCMemOwnDerived = false; + AdaptiveCardObjectModelJNI.delete_CollectionCoreElement(swigCPtr); + } + swigCPtr = 0; + } + super.delete(); + } + + public void DeserializeChildren(ParseContext context, JsonValue value) { + AdaptiveCardObjectModelJNI.CollectionCoreElement_DeserializeChildren(swigCPtr, this, ParseContext.getCPtr(context), context, JsonValue.getCPtr(value), value); + } + +} diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Column.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Column.java index 532d53ac3f..58f3675cb4 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Column.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Column.java @@ -8,7 +8,7 @@ package io.adaptivecards.objectmodel; -public class Column extends CollectionTypeElement { +public class Column extends StyledCollectionElement { private transient long swigCPtr; private transient boolean swigCMemOwnDerived; diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ColumnSet.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ColumnSet.java index 6b2c7dbaa1..11c06c66ac 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ColumnSet.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ColumnSet.java @@ -8,7 +8,7 @@ package io.adaptivecards.objectmodel; -public class ColumnSet extends CollectionTypeElement { +public class ColumnSet extends StyledCollectionElement { private transient long swigCPtr; private transient boolean swigCMemOwnDerived; diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Container.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Container.java index 43a7cae013..bcddba6b11 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Container.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Container.java @@ -8,7 +8,7 @@ package io.adaptivecards.objectmodel; -public class Container extends CollectionTypeElement { +public class Container extends StyledCollectionElement { private transient long swigCPtr; private transient boolean swigCMemOwnDerived; diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ParseContext.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ParseContext.java index 24eb21722c..d0b2977d2d 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ParseContext.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/ParseContext.java @@ -115,12 +115,12 @@ public InternalId PaddingParentInternalId() { return new InternalId(AdaptiveCardObjectModelJNI.ParseContext_PaddingParentInternalId(swigCPtr, this), true); } - public void SaveContextForCollectionTypeElement(CollectionTypeElement current) { - AdaptiveCardObjectModelJNI.ParseContext_SaveContextForCollectionTypeElement(swigCPtr, this, CollectionTypeElement.getCPtr(current), current); + public void SaveContextForStyledCollectionElement(StyledCollectionElement current) { + AdaptiveCardObjectModelJNI.ParseContext_SaveContextForStyledCollectionElement(swigCPtr, this, StyledCollectionElement.getCPtr(current), current); } - public void RestoreContextForCollectionTypeElement(CollectionTypeElement current) { - AdaptiveCardObjectModelJNI.ParseContext_RestoreContextForCollectionTypeElement(swigCPtr, this, CollectionTypeElement.getCPtr(current), current); + public void RestoreContextForStyledCollectionElement(StyledCollectionElement current) { + AdaptiveCardObjectModelJNI.ParseContext_RestoreContextForStyledCollectionElement(swigCPtr, this, StyledCollectionElement.getCPtr(current), current); } public ContainerBleedDirection GetBleedDirection() { diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/CollectionTypeElement.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/StyledCollectionElement.java similarity index 50% rename from source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/CollectionTypeElement.java rename to source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/StyledCollectionElement.java index 946eae6a13..03ffd4d5ff 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/CollectionTypeElement.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/StyledCollectionElement.java @@ -8,17 +8,17 @@ package io.adaptivecards.objectmodel; -public class CollectionTypeElement extends BaseCardElement { +public class StyledCollectionElement extends CollectionCoreElement { private transient long swigCPtr; private transient boolean swigCMemOwnDerived; - protected CollectionTypeElement(long cPtr, boolean cMemoryOwn) { - super(AdaptiveCardObjectModelJNI.CollectionTypeElement_SWIGSmartPtrUpcast(cPtr), true); + protected StyledCollectionElement(long cPtr, boolean cMemoryOwn) { + super(AdaptiveCardObjectModelJNI.StyledCollectionElement_SWIGSmartPtrUpcast(cPtr), true); swigCMemOwnDerived = cMemoryOwn; swigCPtr = cPtr; } - protected static long getCPtr(CollectionTypeElement obj) { + protected static long getCPtr(StyledCollectionElement obj) { return (obj == null) ? 0 : obj.swigCPtr; } @@ -36,7 +36,7 @@ public synchronized void delete() { if (swigCPtr != 0) { if (swigCMemOwnDerived) { swigCMemOwnDerived = false; - AdaptiveCardObjectModelJNI.delete_CollectionTypeElement(swigCPtr); + AdaptiveCardObjectModelJNI.delete_StyledCollectionElement(swigCPtr); } swigCPtr = 0; } @@ -44,93 +44,89 @@ public synchronized void delete() { } public ContainerStyle GetStyle() { - return ContainerStyle.swigToEnum(AdaptiveCardObjectModelJNI.CollectionTypeElement_GetStyle(swigCPtr, this)); + return ContainerStyle.swigToEnum(AdaptiveCardObjectModelJNI.StyledCollectionElement_GetStyle(swigCPtr, this)); } public void SetStyle(ContainerStyle value) { - AdaptiveCardObjectModelJNI.CollectionTypeElement_SetStyle(swigCPtr, this, value.swigValue()); + AdaptiveCardObjectModelJNI.StyledCollectionElement_SetStyle(swigCPtr, this, value.swigValue()); } public @androidx.annotation.Nullable VerticalContentAlignment GetVerticalContentAlignment() { - StdOptionalVerticalContentAlignment optvalue = new StdOptionalVerticalContentAlignment(AdaptiveCardObjectModelJNI.CollectionTypeElement_GetVerticalContentAlignment(swigCPtr, this), false); + StdOptionalVerticalContentAlignment optvalue = new StdOptionalVerticalContentAlignment(AdaptiveCardObjectModelJNI.StyledCollectionElement_GetVerticalContentAlignment(swigCPtr, this), false); return optvalue.has_value() ? optvalue.value() : null; } public void SetVerticalContentAlignment(@androidx.annotation.Nullable VerticalContentAlignment value) { StdOptionalVerticalContentAlignment optvalue = (value == null) ? new StdOptionalVerticalContentAlignment() : new StdOptionalVerticalContentAlignment(value); { - AdaptiveCardObjectModelJNI.CollectionTypeElement_SetVerticalContentAlignment(swigCPtr, this, StdOptionalVerticalContentAlignment.getCPtr(optvalue), optvalue); + AdaptiveCardObjectModelJNI.StyledCollectionElement_SetVerticalContentAlignment(swigCPtr, this, StdOptionalVerticalContentAlignment.getCPtr(optvalue), optvalue); } } public boolean GetPadding() { - return AdaptiveCardObjectModelJNI.CollectionTypeElement_GetPadding(swigCPtr, this); + return AdaptiveCardObjectModelJNI.StyledCollectionElement_GetPadding(swigCPtr, this); } public void SetPadding(boolean value) { - AdaptiveCardObjectModelJNI.CollectionTypeElement_SetPadding(swigCPtr, this, value); + AdaptiveCardObjectModelJNI.StyledCollectionElement_SetPadding(swigCPtr, this, value); } public boolean GetBleed() { - return AdaptiveCardObjectModelJNI.CollectionTypeElement_GetBleed(swigCPtr, this); + return AdaptiveCardObjectModelJNI.StyledCollectionElement_GetBleed(swigCPtr, this); } public void SetBleed(boolean value) { - AdaptiveCardObjectModelJNI.CollectionTypeElement_SetBleed(swigCPtr, this, value); + AdaptiveCardObjectModelJNI.StyledCollectionElement_SetBleed(swigCPtr, this, value); } public boolean GetCanBleed() { - return AdaptiveCardObjectModelJNI.CollectionTypeElement_GetCanBleed(swigCPtr, this); + return AdaptiveCardObjectModelJNI.StyledCollectionElement_GetCanBleed(swigCPtr, this); } public ContainerBleedDirection GetBleedDirection() { - return ContainerBleedDirection.swigToEnum(AdaptiveCardObjectModelJNI.CollectionTypeElement_GetBleedDirection(swigCPtr, this)); + return ContainerBleedDirection.swigToEnum(AdaptiveCardObjectModelJNI.StyledCollectionElement_GetBleedDirection(swigCPtr, this)); } public void ConfigForContainerStyle(ParseContext context) { - AdaptiveCardObjectModelJNI.CollectionTypeElement_ConfigForContainerStyle(swigCPtr, this, ParseContext.getCPtr(context), context); + AdaptiveCardObjectModelJNI.StyledCollectionElement_ConfigForContainerStyle(swigCPtr, this, ParseContext.getCPtr(context), context); } public void SetParentalId(InternalId id) { - AdaptiveCardObjectModelJNI.CollectionTypeElement_SetParentalId(swigCPtr, this, InternalId.getCPtr(id), id); + AdaptiveCardObjectModelJNI.StyledCollectionElement_SetParentalId(swigCPtr, this, InternalId.getCPtr(id), id); } public InternalId GetParentalId() { - return new InternalId(AdaptiveCardObjectModelJNI.CollectionTypeElement_GetParentalId(swigCPtr, this), true); + return new InternalId(AdaptiveCardObjectModelJNI.StyledCollectionElement_GetParentalId(swigCPtr, this), true); } public BaseActionElement GetSelectAction() { - long cPtr = AdaptiveCardObjectModelJNI.CollectionTypeElement_GetSelectAction(swigCPtr, this); + long cPtr = AdaptiveCardObjectModelJNI.StyledCollectionElement_GetSelectAction(swigCPtr, this); return (cPtr == 0) ? null : new BaseActionElement(cPtr, true); } public void SetSelectAction(BaseActionElement action) { - AdaptiveCardObjectModelJNI.CollectionTypeElement_SetSelectAction(swigCPtr, this, BaseActionElement.getCPtr(action), action); + AdaptiveCardObjectModelJNI.StyledCollectionElement_SetSelectAction(swigCPtr, this, BaseActionElement.getCPtr(action), action); } public BackgroundImage GetBackgroundImage() { - long cPtr = AdaptiveCardObjectModelJNI.CollectionTypeElement_GetBackgroundImage(swigCPtr, this); + long cPtr = AdaptiveCardObjectModelJNI.StyledCollectionElement_GetBackgroundImage(swigCPtr, this); return (cPtr == 0) ? null : new BackgroundImage(cPtr, true); } public void SetBackgroundImage(BackgroundImage value) { - AdaptiveCardObjectModelJNI.CollectionTypeElement_SetBackgroundImage(swigCPtr, this, BackgroundImage.getCPtr(value), value); + AdaptiveCardObjectModelJNI.StyledCollectionElement_SetBackgroundImage(swigCPtr, this, BackgroundImage.getCPtr(value), value); } public long GetMinHeight() { - return AdaptiveCardObjectModelJNI.CollectionTypeElement_GetMinHeight(swigCPtr, this); + return AdaptiveCardObjectModelJNI.StyledCollectionElement_GetMinHeight(swigCPtr, this); } public void SetMinHeight(long value) { - AdaptiveCardObjectModelJNI.CollectionTypeElement_SetMinHeight(swigCPtr, this, value); - } - - public void DeserializeChildren(ParseContext context, JsonValue value) { - AdaptiveCardObjectModelJNI.CollectionTypeElement_DeserializeChildren(swigCPtr, this, ParseContext.getCPtr(context), context, JsonValue.getCPtr(value), value); + AdaptiveCardObjectModelJNI.StyledCollectionElement_SetMinHeight(swigCPtr, this, value); } public JsonValue SerializeToJsonValue() { - return new JsonValue(AdaptiveCardObjectModelJNI.CollectionTypeElement_SerializeToJsonValue(swigCPtr, this), true); + return new JsonValue(AdaptiveCardObjectModelJNI.StyledCollectionElement_SerializeToJsonValue(swigCPtr, this), true); } } diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Table.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Table.java index 3ecacf8355..6706aad232 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Table.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/Table.java @@ -8,7 +8,7 @@ package io.adaptivecards.objectmodel; -public class Table extends BaseCardElement { +public class Table extends CollectionCoreElement { private transient long swigCPtr; private transient boolean swigCMemOwnDerived; @@ -55,6 +55,10 @@ public JsonValue SerializeToJsonValue() { return new JsonValue(AdaptiveCardObjectModelJNI.Table_SerializeToJsonValue(swigCPtr, this), true); } + public void DeserializeChildren(ParseContext context, JsonValue value) { + AdaptiveCardObjectModelJNI.Table_DeserializeChildren(swigCPtr, this, ParseContext.getCPtr(context), context, JsonValue.getCPtr(value), value); + } + public boolean GetShowGridLines() { return AdaptiveCardObjectModelJNI.Table_GetShowGridLines(swigCPtr, this); } diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableCell.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableCell.java index c4aa4a0d5c..74e62d0f9b 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableCell.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableCell.java @@ -51,4 +51,14 @@ public TableCell(TableCell arg0) { this(AdaptiveCardObjectModelJNI.new_TableCell__SWIG_1(TableCell.getCPtr(arg0), arg0), true); } + public static TableCell DeserializeTableCellFromString(ParseContext context, String root) { + long cPtr = AdaptiveCardObjectModelJNI.TableCell_DeserializeTableCellFromString(ParseContext.getCPtr(context), context, root); + return (cPtr == 0) ? null : new TableCell(cPtr, true); + } + + public static TableCell DeserializeTableCell(ParseContext context, JsonValue root) { + long cPtr = AdaptiveCardObjectModelJNI.TableCell_DeserializeTableCell(ParseContext.getCPtr(context), context, JsonValue.getCPtr(root), root); + return (cPtr == 0) ? null : new TableCell(cPtr, true); + } + } diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableCellParser.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableCellParser.java deleted file mode 100644 index 41af73c057..0000000000 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableCellParser.java +++ /dev/null @@ -1,64 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 4.0.2 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -package io.adaptivecards.objectmodel; - -public class TableCellParser extends ContainerParser { - private transient long swigCPtr; - private transient boolean swigCMemOwnDerived; - - protected TableCellParser(long cPtr, boolean cMemoryOwn) { - super(AdaptiveCardObjectModelJNI.TableCellParser_SWIGSmartPtrUpcast(cPtr), true); - swigCMemOwnDerived = cMemoryOwn; - swigCPtr = cPtr; - } - - protected static long getCPtr(TableCellParser obj) { - return (obj == null) ? 0 : obj.swigCPtr; - } - - protected void swigSetCMemOwn(boolean own) { - swigCMemOwnDerived = own; - super.swigSetCMemOwn(own); - } - - @SuppressWarnings("deprecation") - protected void finalize() { - delete(); - } - - public synchronized void delete() { - if (swigCPtr != 0) { - if (swigCMemOwnDerived) { - swigCMemOwnDerived = false; - AdaptiveCardObjectModelJNI.delete_TableCellParser(swigCPtr); - } - swigCPtr = 0; - } - super.delete(); - } - - public TableCellParser() { - this(AdaptiveCardObjectModelJNI.new_TableCellParser__SWIG_0(), true); - } - - public TableCellParser(TableCellParser arg0) { - this(AdaptiveCardObjectModelJNI.new_TableCellParser__SWIG_1(TableCellParser.getCPtr(arg0), arg0), true); - } - - public BaseCardElement Deserialize(ParseContext context, JsonValue root) { - long cPtr = AdaptiveCardObjectModelJNI.TableCellParser_Deserialize(swigCPtr, this, ParseContext.getCPtr(context), context, JsonValue.getCPtr(root), root); - return (cPtr == 0) ? null : new BaseCardElement(cPtr, true); - } - - public BaseCardElement DeserializeFromString(ParseContext context, String jsonString) { - long cPtr = AdaptiveCardObjectModelJNI.TableCellParser_DeserializeFromString(swigCPtr, this, ParseContext.getCPtr(context), context, jsonString); - return (cPtr == 0) ? null : new BaseCardElement(cPtr, true); - } - -} diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableRow.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableRow.java index c725f0b517..649fc3198d 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableRow.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableRow.java @@ -95,4 +95,14 @@ public void SetStyle(ContainerStyle value) { AdaptiveCardObjectModelJNI.TableRow_SetStyle(swigCPtr, this, value.swigValue()); } + public static TableRow DeserializeTableRowFromString(ParseContext context, String root) { + long cPtr = AdaptiveCardObjectModelJNI.TableRow_DeserializeTableRowFromString(ParseContext.getCPtr(context), context, root); + return (cPtr == 0) ? null : new TableRow(cPtr, true); + } + + public static TableRow DeserializeTableRow(ParseContext context, JsonValue root) { + long cPtr = AdaptiveCardObjectModelJNI.TableRow_DeserializeTableRow(ParseContext.getCPtr(context), context, JsonValue.getCPtr(root), root); + return (cPtr == 0) ? null : new TableRow(cPtr, true); + } + } diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableRowParser.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableRowParser.java deleted file mode 100644 index c56a2a9a17..0000000000 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TableRowParser.java +++ /dev/null @@ -1,64 +0,0 @@ -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 4.0.2 - * - * Do not make changes to this file unless you know what you are doing--modify - * the SWIG interface file instead. - * ----------------------------------------------------------------------------- */ - -package io.adaptivecards.objectmodel; - -public class TableRowParser extends BaseCardElementParser { - private transient long swigCPtr; - private transient boolean swigCMemOwnDerived; - - protected TableRowParser(long cPtr, boolean cMemoryOwn) { - super(AdaptiveCardObjectModelJNI.TableRowParser_SWIGSmartPtrUpcast(cPtr), true); - swigCMemOwnDerived = cMemoryOwn; - swigCPtr = cPtr; - } - - protected static long getCPtr(TableRowParser obj) { - return (obj == null) ? 0 : obj.swigCPtr; - } - - protected void swigSetCMemOwn(boolean own) { - swigCMemOwnDerived = own; - super.swigSetCMemOwn(own); - } - - @SuppressWarnings("deprecation") - protected void finalize() { - delete(); - } - - public synchronized void delete() { - if (swigCPtr != 0) { - if (swigCMemOwnDerived) { - swigCMemOwnDerived = false; - AdaptiveCardObjectModelJNI.delete_TableRowParser(swigCPtr); - } - swigCPtr = 0; - } - super.delete(); - } - - public TableRowParser() { - this(AdaptiveCardObjectModelJNI.new_TableRowParser__SWIG_0(), true); - } - - public TableRowParser(TableRowParser arg0) { - this(AdaptiveCardObjectModelJNI.new_TableRowParser__SWIG_1(TableRowParser.getCPtr(arg0), arg0), true); - } - - public BaseCardElement Deserialize(ParseContext context, JsonValue root) { - long cPtr = AdaptiveCardObjectModelJNI.TableRowParser_Deserialize(swigCPtr, this, ParseContext.getCPtr(context), context, JsonValue.getCPtr(root), root); - return (cPtr == 0) ? null : new BaseCardElement(cPtr, true); - } - - public BaseCardElement DeserializeFromString(ParseContext context, String jsonString) { - long cPtr = AdaptiveCardObjectModelJNI.TableRowParser_DeserializeFromString(swigCPtr, this, ParseContext.getCPtr(context), context, jsonString); - return (cPtr == 0) ? null : new BaseCardElement(cPtr, true); - } - -} diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TextInputStyle.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TextInputStyle.java index 99b99f7162..4609d9db86 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TextInputStyle.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/objectmodel/TextInputStyle.java @@ -12,7 +12,8 @@ public enum TextInputStyle { Text(0), Tel, Url, - Email; + Email, + Password; public final int swigValue() { return swigValue; diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/ChoiceSetInputRenderer.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/ChoiceSetInputRenderer.java index 43ab160dc3..18159fb5fb 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/ChoiceSetInputRenderer.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/ChoiceSetInputRenderer.java @@ -7,8 +7,11 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.FragmentManager; + +import android.os.Build; import android.text.TextUtils; import android.util.TypedValue; +import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; @@ -17,6 +20,7 @@ import android.widget.AutoCompleteTextView; import android.widget.CheckBox; import android.widget.CompoundButton; +import android.widget.Filter; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Spinner; @@ -50,9 +54,12 @@ import io.adaptivecards.renderer.inputhandler.RadioGroupInputHandler; import io.adaptivecards.renderer.registration.CardRendererRegistration; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Vector; +import java.util.function.Predicate; +import java.util.stream.Collectors; public class ChoiceSetInputRenderer extends BaseCardElementRenderer { @@ -440,11 +447,29 @@ class FilteredChoiceSetAdapter extends ArrayAdapter { boolean m_mustWrap = false; + // m_items contains the items currently being displayed as suggestions + // m_originalItemsList contains the items provided by the card author when the element was created + List m_items, m_originalItemsList; + FilteredChoiceSetAdapter(Context context, int resource, Vector items, boolean mustWrap) { super(context, resource, items); m_mustWrap = mustWrap; + m_items = items; + m_originalItemsList = new ArrayList<>(items); + } + + @Override + public int getCount() + { + return m_items.size(); + } + + @Override + public String getItem(int pos) + { + return m_items.get(pos); } @NonNull @@ -463,6 +488,75 @@ public View getView(int position, @Nullable View convertView, @NonNull ViewGroup return view; } + + @NonNull + @Override + public Filter getFilter() { + return m_substringFilter; + } + + Filter m_substringFilter = new Filter() { + + @Override + protected FilterResults performFiltering(CharSequence constraint) { + + FilterResults filterResults = new FilterResults(); + + // Due to the time it takes for evaluating all options, this part of the code has + // to be synchronized, otherwise the worker thread that calls the publishResults + // function will throw an illegalstateexception or a concurrentmodificationexception + synchronized (filterResults) + { + List filteredSuggestions = new ArrayList<>(); + + // isEmpty compares against null and 0-length strings + if (!TextUtils.isEmpty(constraint)) + { + String lowerCaseConstraint = constraint.toString().toLowerCase(); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) + { + Predicate bySubstring = choice -> choice.toLowerCase().contains(lowerCaseConstraint); + filteredSuggestions = m_originalItemsList.stream().filter(bySubstring).collect(Collectors.toList()); + } + else + { + for (String choice : m_originalItemsList) + { + if (choice.toLowerCase().contains(lowerCaseConstraint)) + { + filteredSuggestions.add(choice); + } + } + } + } + else + { + filteredSuggestions = m_originalItemsList; + } + + filterResults.values = filteredSuggestions; + filterResults.count = filteredSuggestions.size(); + + return filterResults; + } + } + + @Override + protected void publishResults(CharSequence constraint, FilterResults filterResults) + { + if (filterResults != null && filterResults.count > 0) + { + m_items = (ArrayList) filterResults.values; + notifyDataSetChanged(); + } + else + { + notifyDataSetInvalidated(); + } + } + }; + } autoCompleteTextView.setAdapter(new FilteredChoiceSetAdapter(context, @@ -475,6 +569,22 @@ public View getView(int position, @Nullable View convertView, @NonNull ViewGroup autoCompleteTextView.setText(titleList.get(valueIndex)); } + autoCompleteTextView.setOnTouchListener(new View.OnTouchListener(){ + @Override + public boolean onTouch(View v, MotionEvent event){ + autoCompleteTextView.showDropDown(); + return false; + } + }); + + autoCompleteTextView.setOnKeyListener(new View.OnKeyListener() { + @Override + public boolean onKey(View view, int i, KeyEvent keyEvent) { + autoCompleteTextView.showDropDown(); + return false; + } + }); + autoCompleteTextView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/TextInputRenderer.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/TextInputRenderer.java index 5fb354e418..7df0de40ea 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/TextInputRenderer.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/TextInputRenderer.java @@ -13,6 +13,7 @@ import android.text.InputType; import android.text.TextUtils; import android.text.TextWatcher; +import android.text.method.PasswordTransformationMethod; import android.util.TypedValue; import android.view.ContextThemeWrapper; import android.view.Gravity; @@ -91,6 +92,11 @@ else if (textInputStyle == TextInputStyle.Email) { editText.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS); } + else if (textInputStyle == TextInputStyle.Password) + { + editText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD); + editText.setTransformationMethod(PasswordTransformationMethod.getInstance()); + } else { throw new IllegalArgumentException("Unknown TextInputStyle: " + textInputStyle.toString()); @@ -397,7 +403,7 @@ public View render( BaseActionElement action = textInput.GetInlineAction(); - if (textInput.GetIsMultiline()) + if (textInput.GetIsMultiline() && (textInput.GetTextInputStyle() != TextInputStyle.Password)) { // If the Input.Text has to stretch then don't limit the number of lines, // otherwise default to 3 lines diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/customcontrols/ValidatedAutoCompleteTextView.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/customcontrols/ValidatedAutoCompleteTextView.java index 8318b91369..a44c32d9c5 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/customcontrols/ValidatedAutoCompleteTextView.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/input/customcontrols/ValidatedAutoCompleteTextView.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.res.Resources; +import android.graphics.Rect; import android.util.TypedValue; import android.widget.LinearLayout; @@ -45,6 +46,23 @@ public ValidatedAutoCompleteTextView(Context context, boolean usingCustomInputs) } } + @Override + public boolean enoughToFilter() + { + return true; + } + + @Override + protected void onFocusChanged(boolean focused, int direction, + Rect previouslyFocusedRect) + { + super.onFocusChanged(focused, direction, previouslyFocusedRect); + if (focused) + { + performFiltering(getText(), 0); + } + } + /** * Peeks the usingCustomInputs attribute in the style to verify if custom inputs are being used * @param context Context to retrieve the value from diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ColumnRenderer.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ColumnRenderer.java index 28b1fc12cc..a71f378527 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ColumnRenderer.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ColumnRenderer.java @@ -165,7 +165,7 @@ public View render( ContainerRenderer.applyVerticalContentAlignment(columnLayout, column.GetVerticalContentAlignment()); ContainerRenderer.applyPadding(styleForThis, renderArgs.getContainerStyle(), columnLayout, hostConfig); - ContainerRenderer.applyContainerStyle(styleForThis, columnLayout, hostConfig); + ContainerRenderer.applyContainerStyle(styleForThis, renderArgs.getContainerStyle(), columnLayout, hostConfig); ContainerRenderer.applyBleed(column, columnLayout, context, hostConfig); BaseCardElementRenderer.applyRtl(column.GetRtl(), columnLayout); diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ColumnSetRenderer.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ColumnSetRenderer.java index 062bb35170..88d9a485d4 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ColumnSetRenderer.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ColumnSetRenderer.java @@ -132,7 +132,7 @@ public View render( columnSetLayout.setTag(tagContent); ContainerRenderer.applyPadding(styleForThis, parentContainerStyle, columnSetLayout, hostConfig); - ContainerRenderer.applyContainerStyle(styleForThis, columnSetLayout, hostConfig); + ContainerRenderer.applyContainerStyle(styleForThis, parentContainerStyle, columnSetLayout, hostConfig); ContainerRenderer.applyBleed(columnSet, columnSetLayout, context, hostConfig); return columnSetLayout; diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ContainerRenderer.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ContainerRenderer.java index bd0acd9179..bfe53bbdf2 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ContainerRenderer.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/ContainerRenderer.java @@ -19,7 +19,6 @@ import io.adaptivecards.objectmodel.BackgroundImage; import io.adaptivecards.objectmodel.BaseActionElement; import io.adaptivecards.objectmodel.BaseCardElement; -import io.adaptivecards.objectmodel.CollectionTypeElement; import io.adaptivecards.objectmodel.Container; import io.adaptivecards.objectmodel.ContainerBleedDirection; import io.adaptivecards.objectmodel.ContainerStyle; @@ -28,6 +27,7 @@ import io.adaptivecards.objectmodel.HorizontalAlignment; import io.adaptivecards.objectmodel.HostConfig; import io.adaptivecards.objectmodel.SubmitAction; +import io.adaptivecards.objectmodel.StyledCollectionElement; import io.adaptivecards.objectmodel.VerticalContentAlignment; import io.adaptivecards.renderer.AdaptiveFallbackException; import io.adaptivecards.renderer.BackgroundImageLoaderAsync; @@ -86,7 +86,7 @@ public View render( ContainerStyle containerStyle = renderArgs.getContainerStyle(); ContainerStyle styleForThis = getLocalContainerStyle(container, containerStyle); applyPadding(styleForThis, containerStyle, containerView, hostConfig); - applyContainerStyle(styleForThis, containerView, hostConfig); + applyContainerStyle(styleForThis, containerStyle, containerView, hostConfig); applyBleed(container, containerView, context, hostConfig); BaseCardElementRenderer.applyRtl(container.GetRtl(), containerView); @@ -142,12 +142,12 @@ else if(verticalContentAlignment == VerticalContentAlignment.Bottom) /** * @deprecated renamed to {@link #applyBleed} */ - public static void ApplyBleed(CollectionTypeElement collectionElement, ViewGroup collectionElementView, Context context, HostConfig hostConfig) + public static void ApplyBleed(StyledCollectionElement collectionElement, ViewGroup collectionElementView, Context context, HostConfig hostConfig) { applyBleed(collectionElement, collectionElementView, context, hostConfig); } - public static void applyBleed(CollectionTypeElement collectionElement, ViewGroup collectionElementView, Context context, HostConfig hostConfig) + public static void applyBleed(StyledCollectionElement collectionElement, ViewGroup collectionElementView, Context context, HostConfig hostConfig) { if (collectionElement.GetBleed() && collectionElement.GetCanBleed()) { @@ -189,7 +189,7 @@ public static void applyBleed(CollectionTypeElement collectionElement, ViewGroup public static void ApplyPadding(ContainerStyle computedContainerStyle, ContainerStyle parentContainerStyle, ViewGroup collectionElementView, HostConfig hostConfig) { applyPadding(computedContainerStyle, parentContainerStyle, collectionElementView, hostConfig); - applyContainerStyle(computedContainerStyle, collectionElementView, hostConfig); + applyContainerStyle(computedContainerStyle, parentContainerStyle, collectionElementView, hostConfig); } public static void applyPadding(ContainerStyle computedContainerStyle, ContainerStyle parentContainerStyle, ViewGroup collectionElementView, HostConfig hostConfig) @@ -206,28 +206,32 @@ public static void applyPadding(ContainerStyle computedContainerStyle, Container } } - public static void applyContainerStyle(ContainerStyle computedContainerStyle, ViewGroup collectionElementView, HostConfig hostConfig) + public static void applyContainerStyle(ContainerStyle computedContainerStyle, ContainerStyle parentContainerStyle, ViewGroup collectionElementView, HostConfig hostConfig) { - int color = Color.parseColor(hostConfig.GetBackgroundColor(computedContainerStyle)); - if (collectionElementView.getBackground() instanceof GradientDrawable) + if (computedContainerStyle != parentContainerStyle) { - ((GradientDrawable) collectionElementView.getBackground()).setColor(color); - } - else - { - collectionElementView.setBackgroundColor(color); + String backgroundColor = hostConfig.GetBackgroundColor(computedContainerStyle); + int color = Color.parseColor(backgroundColor); + if (collectionElementView.getBackground() instanceof GradientDrawable) + { + ((GradientDrawable) collectionElementView.getBackground()).setColor(color); + } + else + { + collectionElementView.setBackgroundColor(color); + } } } /** * @deprecated renamed to {@link #getLocalContainerStyle} */ - public static ContainerStyle GetLocalContainerStyle(CollectionTypeElement collectionElement, ContainerStyle parentContainerStyle) + public static ContainerStyle GetLocalContainerStyle(StyledCollectionElement collectionElement, ContainerStyle parentContainerStyle) { return getLocalContainerStyle(collectionElement, parentContainerStyle); } - public static ContainerStyle getLocalContainerStyle(CollectionTypeElement collectionElement, ContainerStyle parentContainerStyle) + public static ContainerStyle getLocalContainerStyle(StyledCollectionElement collectionElement, ContainerStyle parentContainerStyle) { return computeContainerStyle(collectionElement.GetStyle(), parentContainerStyle); } diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TableCellRenderer.kt b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TableCellRenderer.kt index bd65fc5cd7..55dd60f293 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TableCellRenderer.kt +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TableCellRenderer.kt @@ -54,7 +54,7 @@ object TableCellRenderer : BaseCardElementRenderer() { val computedStyle = ContainerRenderer.getLocalContainerStyle(cell, renderArgs.containerStyle) ContainerRenderer.applyPadding(computedStyle, renderArgs.containerStyle, cellLayout, hostConfig, renderArgs.table.GetShowGridLines()) - ContainerRenderer.applyContainerStyle(computedStyle, cellLayout, hostConfig) + ContainerRenderer.applyContainerStyle(computedStyle, renderArgs.containerStyle, cellLayout, hostConfig) ContainerRenderer.applyVerticalContentAlignment(cellLayout, computeVerticalContentAlignment(cell.GetVerticalContentAlignment(), row, col, renderArgs.table)) ContainerRenderer.setSelectAction(renderedCard, cell.GetSelectAction(), cellLayout, cardActionHandler, renderArgs) diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TableRenderer.kt b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TableRenderer.kt index afcb405997..57bf8515a3 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TableRenderer.kt +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TableRenderer.kt @@ -41,7 +41,7 @@ object TableRenderer : BaseCardElementRenderer() { clipToPadding = false } val rowStyle = ContainerRenderer.computeContainerStyle(row.GetStyle(), renderArgs.containerStyle) - ContainerRenderer.applyContainerStyle(rowStyle, rowLayout, hostConfig) + ContainerRenderer.applyContainerStyle(rowStyle, renderArgs.containerStyle, rowLayout, hostConfig) for (j in table.GetColumns().indices) { val cell = row.GetCells().getOrNull(j) ?: break diff --git a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TextBlockRenderer.java b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TextBlockRenderer.java index 64462bcaa4..4940c05c9f 100644 --- a/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TextBlockRenderer.java +++ b/source/android/adaptivecards/src/main/java/io/adaptivecards/renderer/readonly/TextBlockRenderer.java @@ -10,6 +10,7 @@ import android.text.Spannable; import android.text.SpannableString; import android.text.TextUtils; +import android.text.method.LinkMovementMethod; import android.text.style.ClickableSpan; import android.view.MotionEvent; import android.view.View; @@ -221,8 +222,10 @@ public View render( { textView.setMaxLines(1); } + textView.setEllipsize(TextUtils.TruncateAt.END); textView.setOnTouchListener(new TouchTextView(new SpannableString(text))); + textView.setHorizontallyScrolling(false); applyTextFormat(textView, hostConfig, textBlock.GetStyle(), textBlock.GetFontType(), textBlock.GetTextWeight(), renderArgs); applyTextSize(textView, hostConfig, textBlock.GetStyle(), textBlock.GetFontType(), textBlock.GetTextSize(), renderArgs); @@ -240,6 +243,8 @@ else if (!textBlock.GetWrap()) textView.setMaxLines(1); } + textView.setMovementMethod(LinkMovementMethod.getInstance()); + viewGroup.addView(textView); return textView; } diff --git a/source/android/uitestapp/build.gradle b/source/android/uitestapp/build.gradle index 44a433ef70..0a3317455a 100644 --- a/source/android/uitestapp/build.gradle +++ b/source/android/uitestapp/build.gradle @@ -30,7 +30,8 @@ android { assets { srcDirs { ["../../../samples/v1.3/Scenarios/", - "../../../samples/v1.5/Test/"] + "../../../samples/v1.5/Test/", + "../../../samples/v1.5/Elements/"] } } } @@ -45,6 +46,7 @@ dependencies { implementation 'androidx.navigation:navigation-ui:2.2.2' implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0' implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0' + implementation 'androidx.test.uiautomator:uiautomator:2.2.0' androidTestImplementation 'androidx.test:core:1.3.0' androidTestImplementation 'androidx.test:runner:1.3.0' @@ -53,6 +55,7 @@ dependencies { androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.1.0' + androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0' // androidTestImplementation 'androidx.test.espresso:espresso-intents:3.1.0' // androidTestImplementation 'androidx.test.espresso:espresso-web:3.1.0'' diff --git a/source/android/uitestapp/src/androidTest/java/io.adaptivecards.uitestapp/TestHelpers.kt b/source/android/uitestapp/src/androidTest/java/io.adaptivecards.uitestapp/TestHelpers.kt index 87542aa20c..a9eef3bb79 100644 --- a/source/android/uitestapp/src/androidTest/java/io.adaptivecards.uitestapp/TestHelpers.kt +++ b/source/android/uitestapp/src/androidTest/java/io.adaptivecards.uitestapp/TestHelpers.kt @@ -3,8 +3,14 @@ package io.adaptivecards.uitestapp import androidx.test.espresso.Espresso +import androidx.test.espresso.ViewInteraction import androidx.test.espresso.action.ViewActions +import androidx.test.espresso.assertion.ViewAssertions +import androidx.test.espresso.matcher.RootMatchers import androidx.test.espresso.matcher.ViewMatchers +import io.adaptivecards.renderer.TagContent +import io.adaptivecards.uitestapp.ui.inputs.RetrievedInput +import org.hamcrest.Matchers object TestHelpers { internal fun goToTestCasesScreen() { @@ -18,4 +24,28 @@ object TestHelpers { internal fun goToInputsScreen() { Espresso.onView(ViewMatchers.withId(R.id.navigation_inputs)).perform(ViewActions.click()) } + + internal fun findInputInValidatedContainer(validatedContainerTagId : String) : ViewInteraction { + return Espresso.onView(ViewMatchers.withParent(ViewMatchers.withTagValue(Matchers.`is`(TagContent(validatedContainerTagId))))); + } + + internal fun clearTextInInput(input : ViewInteraction) { + input.perform(ViewActions.scrollTo(), ViewActions.click(), ViewActions.clearText()); + } + + internal fun setTextInInput(input : ViewInteraction, text : String) { + input.perform(ViewActions.scrollTo(), ViewActions.click(), ViewActions.clearText(), ViewActions.typeText(text)); + } + + internal fun selectPopupOption(optionText : String) { + Espresso.onData(Matchers.`is`(optionText)).inRoot(RootMatchers.isPlatformPopup()).perform(ViewActions.scrollTo(), ViewActions.click()); + } + + internal fun clickOnElementWithText(text : String) { + Espresso.onView(ViewMatchers.withText(text)).perform(ViewActions.click()) + } + + internal fun assertInputValuePairExists(inputId : String, value : String) { + Espresso.onData(Matchers.`is`(RetrievedInput(inputId, value))).check(ViewAssertions.matches(ViewMatchers.isDisplayed())) + } } diff --git a/source/android/uitestapp/src/androidTest/java/io.adaptivecards.uitestapp/UiTests.kt b/source/android/uitestapp/src/androidTest/java/io.adaptivecards.uitestapp/UiTests.kt index a88f6a03e6..a3ced04ea2 100644 --- a/source/android/uitestapp/src/androidTest/java/io.adaptivecards.uitestapp/UiTests.kt +++ b/source/android/uitestapp/src/androidTest/java/io.adaptivecards.uitestapp/UiTests.kt @@ -10,6 +10,7 @@ import kotlin.Throws import androidx.test.espresso.Espresso import androidx.test.espresso.ViewAction import androidx.test.espresso.ViewAssertion +import androidx.test.espresso.ViewInteraction import org.hamcrest.Matchers import androidx.test.espresso.action.ViewActions import io.adaptivecards.uitestapp.TestHelpers @@ -18,12 +19,20 @@ import io.adaptivecards.renderer.TagContent import androidx.test.espresso.contrib.PickerActions import io.adaptivecards.uitestapp.ui.inputs.RetrievedInput import androidx.test.espresso.assertion.ViewAssertions +import androidx.test.espresso.matcher.RootMatchers import androidx.test.ext.junit.rules.ActivityScenarioRule import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.LargeTest import org.junit.Assert import org.junit.Test import java.io.IOException +import android.R.attr.y + +import android.R.attr.x +import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation +import androidx.test.uiautomator.UiDevice +import org.junit.Ignore + @RunWith(AndroidJUnit4::class) @LargeTest @@ -73,4 +82,148 @@ class UiTests { Espresso.onView(ViewMatchers.withText("10. The tenth thing\n11. The list is still going!\n12. Should be 12!")).check(ViewAssertions.matches(ViewMatchers.isDisplayed())) } + + @Test + @Throws(Exception::class) + fun TestFilteredChoiceSetCanFindSubstrings() { + Espresso.onData(Matchers.`is`("Input.ChoiceSet.Filtered.json")).perform(ViewActions.click()) + TestHelpers.goToRenderedCardScreen() + + // Click on the filtered choiceset, delete all text and write "rr" to try to find parrot + TestHelpers.setTextInInput(TestHelpers.findInputInValidatedContainer("chosenAnimal"), "rr") + + TestHelpers.selectPopupOption("Crimson Shining Parrot") + + TestHelpers.clickOnElementWithText("OK") + + TestHelpers.goToInputsScreen() + TestHelpers.assertInputValuePairExists("chosenAnimal", "Crimson Shining Parrot") + } + + @Test + @Throws(Exception::class) + fun TestFilteredChoiceSetIgnoresCase() { + Espresso.onData(Matchers.`is`("Input.ChoiceSet.Filtered.json")).perform(ViewActions.click()) + TestHelpers.goToRenderedCardScreen() + + // Click on the filtered choiceset, delete all text and write "rr" to try to find parrot + TestHelpers.setTextInInput(TestHelpers.findInputInValidatedContainer("chosenAnimal"), "RR") + + TestHelpers.selectPopupOption("Crimson Shining Parrot") + + TestHelpers.clickOnElementWithText("OK") + + TestHelpers.goToInputsScreen() + TestHelpers.assertInputValuePairExists("chosenAnimal", "Crimson Shining Parrot") + } + + @Test + @Throws(Exception::class) + fun TestFilteredChoiceSetCanFindPrefix() { + Espresso.onData(Matchers.`is`("Input.ChoiceSet.Filtered.json")).perform(ViewActions.click()) + TestHelpers.goToRenderedCardScreen() + + // Click on the filtered choiceset, delete all text and write "braz" to try to find brazillian + TestHelpers.setTextInInput(TestHelpers.findInputInValidatedContainer("chosenAnimal"), "braz") + + Thread.sleep(1000) + + TestHelpers.selectPopupOption("Brazilian Tulipwood") + + TestHelpers.clickOnElementWithText("OK") + + TestHelpers.goToInputsScreen() + TestHelpers.assertInputValuePairExists("chosenAnimal", "Brazilian Tulipwood") + } + + @Test + @Throws(Exception::class) + fun TestFilteredChoiceSetCanFindSuffix() { + Espresso.onData(Matchers.`is`("Input.ChoiceSet.Filtered.json")).perform(ViewActions.click()) + TestHelpers.goToRenderedCardScreen() + + // Click on the filtered choiceset, delete all text and write "cuda" to try to find barracuda + TestHelpers.setTextInInput(TestHelpers.findInputInValidatedContainer("chosenAnimal"), "cuda") + + TestHelpers.selectPopupOption("Blackspot barracuda") + + TestHelpers.clickOnElementWithText("OK") + + TestHelpers.goToInputsScreen() + TestHelpers.assertInputValuePairExists("chosenAnimal", "Blackspot barracuda") + } + + @Test + @Throws(Exception::class) + fun TestFilteredChoiceSetShowsAllElementsWhenEmpty() { + Espresso.onData(Matchers.`is`("Input.ChoiceSet.Filtered.json")).perform(ViewActions.click()) + TestHelpers.goToRenderedCardScreen() + + // Click on the filtered choiceset, delete all text + TestHelpers.clearTextInInput(TestHelpers.findInputInValidatedContainer("chosenAnimal")) + + TestHelpers.selectPopupOption("CORAL") + + TestHelpers.clickOnElementWithText("OK") + + TestHelpers.goToInputsScreen() + TestHelpers.assertInputValuePairExists("chosenAnimal", "Alaska tree coral") + } + + // For some reason this test method is not working on the pipeline but does work locally, + // more investigation will be performed + @Ignore + @Test + @Throws(Exception::class) + fun TestFilteredChoiceSetShowsAllElementsOnClick() { + Espresso.onData(Matchers.`is`("Input.ChoiceSet.Filtered.json")).perform(ViewActions.click()) + TestHelpers.goToRenderedCardScreen() + + // Click on the filtered choiceset and delete all text + TestHelpers.clearTextInInput(TestHelpers.findInputInValidatedContainer("chosenAnimal")) + + // Click on a random point to dismiss the choices popup + val device: UiDevice = UiDevice.getInstance(getInstrumentation()) + device.click(1, 20) + + // Click again on the choiceset + TestHelpers.findInputInValidatedContainer("chosenAnimal").perform(ViewActions.scrollTo(), ViewActions.click()); + + TestHelpers.selectPopupOption("Zebra White") + + TestHelpers.clickOnElementWithText("OK") + + TestHelpers.goToInputsScreen() + TestHelpers.assertInputValuePairExists("chosenAnimal", "Zebra White") + } + + // For some reason this test method is not working on the pipeline but does work locally, + // more investigation will be performed + @Ignore + @Test + @Throws(Exception::class) + fun TestFilteredChoiceSetMaintainsAllChoices() { + Espresso.onData(Matchers.`is`("Input.ChoiceSet.Filtered.json")).perform(ViewActions.click()) + TestHelpers.goToRenderedCardScreen() + + // Click on the filtered choiceset and type "parrot" + TestHelpers.setTextInInput(TestHelpers.findInputInValidatedContainer("chosenAnimal"), "parrot"); + + // Select and option to remove popup + TestHelpers.selectPopupOption("Mexican Parrotlet") + + Thread.sleep(3000) + + // Click again on the choiceset and type "stygobromid", as there's only one result it + // should have not appeared in the "parrot" query but it should still show up to verify + // that options are not accidentally deleted when searching + TestHelpers.setTextInInput(TestHelpers.findInputInValidatedContainer("chosenAnimal"), "stygobromid"); + + TestHelpers.selectPopupOption("Alabama stygobromid") + + TestHelpers.clickOnElementWithText("OK") + + TestHelpers.goToInputsScreen() + TestHelpers.assertInputValuePairExists("chosenAnimal", "Alabama stygobromid") + } } diff --git a/source/dotnet/AdaptiveCards.sln b/source/dotnet/AdaptiveCards.sln index 86af462029..549af1d2da 100644 --- a/source/dotnet/AdaptiveCards.sln +++ b/source/dotnet/AdaptiveCards.sln @@ -13,10 +13,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdaptiveCards.Sample.WPFVis EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{57CE90F5-EDC6-4CA5-9680-4A106621B4AF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdaptiveCards.Rendering.Html.Test", "Test\AdaptiveCards.Rendering.Html.Test\AdaptiveCards.Rendering.Html.Test.csproj", "{9B454519-D567-47E4-ADEF-2DF0D60F69B6}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdaptiveCards.Rendering.Html", "Library\AdaptiveCards.Rendering.Html\AdaptiveCards.Rendering.Html.csproj", "{EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdaptiveCards.Rendering.Wpf", "Library\AdaptiveCards.Rendering.Wpf\AdaptiveCards.Rendering.Wpf.csproj", "{385BFAAD-07E0-4DBF-844D-9EE12EFC0799}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdaptiveCards.Rendering.Wpf.Xceed", "Library\AdaptiveCards.Rendering.Wpf.Xceed\AdaptiveCards.Rendering.Wpf.Xceed.csproj", "{4741ABEC-33B0-424F-B5F1-464EC31AEEBD}" @@ -159,102 +155,6 @@ Global {96144C6C-2E37-4A84-95AB-7F01D9222F2F}.Release|x64.Build.0 = Release|Any CPU {96144C6C-2E37-4A84-95AB-7F01D9222F2F}.Release|x86.ActiveCfg = Release|Any CPU {96144C6C-2E37-4A84-95AB-7F01D9222F2F}.Release|x86.Build.0 = Release|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|ARM.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|iPhone.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|x64.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|x64.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|x86.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.AppStore|x86.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|ARM.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|ARM.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|iPhone.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|x64.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|x64.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|x86.ActiveCfg = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Debug|x86.Build.0 = Debug|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|Any CPU.Build.0 = Release|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|ARM.ActiveCfg = Release|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|ARM.Build.0 = Release|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|iPhone.ActiveCfg = Release|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|iPhone.Build.0 = Release|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|x64.ActiveCfg = Release|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|x64.Build.0 = Release|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|x86.ActiveCfg = Release|Any CPU - {9B454519-D567-47E4-ADEF-2DF0D60F69B6}.Release|x86.Build.0 = Release|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|ARM.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|iPhone.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|x64.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|x64.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|x86.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.AppStore|x86.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|ARM.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|ARM.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|iPhone.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|x64.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|x64.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|x86.ActiveCfg = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Debug|x86.Build.0 = Debug|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|Any CPU.Build.0 = Release|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|ARM.ActiveCfg = Release|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|ARM.Build.0 = Release|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|iPhone.ActiveCfg = Release|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|iPhone.Build.0 = Release|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|x64.ActiveCfg = Release|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|x64.Build.0 = Release|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|x86.ActiveCfg = Release|Any CPU - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0}.Release|x86.Build.0 = Release|Any CPU {385BFAAD-07E0-4DBF-844D-9EE12EFC0799}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU {385BFAAD-07E0-4DBF-844D-9EE12EFC0799}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU {385BFAAD-07E0-4DBF-844D-9EE12EFC0799}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU @@ -351,54 +251,6 @@ Global {4741ABEC-33B0-424F-B5F1-464EC31AEEBD}.Release|x64.Build.0 = Release|Any CPU {4741ABEC-33B0-424F-B5F1-464EC31AEEBD}.Release|x86.ActiveCfg = Release|Any CPU {4741ABEC-33B0-424F-B5F1-464EC31AEEBD}.Release|x86.Build.0 = Release|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|ARM.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|iPhone.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|x64.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|x64.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|x86.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.AppStore|x86.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|ARM.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|ARM.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|iPhone.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|x64.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|x64.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|x86.ActiveCfg = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Debug|x86.Build.0 = Debug|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|Any CPU.Build.0 = Release|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|ARM.ActiveCfg = Release|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|ARM.Build.0 = Release|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|iPhone.ActiveCfg = Release|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|iPhone.Build.0 = Release|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|x64.ActiveCfg = Release|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|x64.Build.0 = Release|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|x86.ActiveCfg = Release|Any CPU - {C015DC5F-E523-4828-8E46-118A8242B51A}.Release|x86.Build.0 = Release|Any CPU {4DB2C1D1-630A-4445-95F3-4E342ABD9342}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU {4DB2C1D1-630A-4445-95F3-4E342ABD9342}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU {4DB2C1D1-630A-4445-95F3-4E342ABD9342}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU @@ -718,11 +570,8 @@ Global GlobalSection(NestedProjects) = preSolution {FC4A3527-05A2-4297-98D3-CB1CB512FFDA} = {C7727147-4AD9-4005-A8D0-EEEED82347D3} {96144C6C-2E37-4A84-95AB-7F01D9222F2F} = {C443BF0A-C616-4E98-8994-C5BAE76AE556} - {9B454519-D567-47E4-ADEF-2DF0D60F69B6} = {57CE90F5-EDC6-4CA5-9680-4A106621B4AF} - {EDC08CB3-95F6-43BD-8265-41D5CF3E14D0} = {C7727147-4AD9-4005-A8D0-EEEED82347D3} {385BFAAD-07E0-4DBF-844D-9EE12EFC0799} = {C7727147-4AD9-4005-A8D0-EEEED82347D3} {4741ABEC-33B0-424F-B5F1-464EC31AEEBD} = {C7727147-4AD9-4005-A8D0-EEEED82347D3} - {C015DC5F-E523-4828-8E46-118A8242B51A} = {C443BF0A-C616-4E98-8994-C5BAE76AE556} {4DB2C1D1-630A-4445-95F3-4E342ABD9342} = {57CE90F5-EDC6-4CA5-9680-4A106621B4AF} {BCFC1329-903B-4440-ABE1-160C22A3AE23} = {C443BF0A-C616-4E98-8994-C5BAE76AE556} {03C99D2B-D6FC-4DBE-880C-5B1A4024DD67} = {C443BF0A-C616-4E98-8994-C5BAE76AE556} diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveCardRenderer.cs b/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveCardRenderer.cs deleted file mode 100644 index 4fe769ccd6..0000000000 --- a/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveCardRenderer.cs +++ /dev/null @@ -1,1998 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Net; -using Newtonsoft.Json; -using AdaptiveCards; - -namespace AdaptiveCards.Rendering.Html -{ - /// - /// Render a card as HTML suitable for server side generation - /// - public class AdaptiveCardRenderer : AdaptiveCardRendererBase - { - protected override AdaptiveSchemaVersion GetSupportedSchemaVersion() - { - return new AdaptiveSchemaVersion(1, 3); - } - - /// - /// Generate a ID, useful for joining two elements together, e.g., an input and label - /// - public static Func GenerateRandomId => () => "ac-" + Guid.NewGuid().ToString().Substring(0, 8); - - /// - /// Adds a CSS class to the action based on it's type name. Default is "ac-action-[actionName] - /// - public static Func GetActionCssClass = (action) => - { - var lenFromDot = action.Type.IndexOf(".") + 1; - var suffix = action.Type.Substring(lenFromDot, action.Type.Length - lenFromDot); - return "ac-action-" + suffix.Replace(suffix[0], char.ToLower(suffix[0])); - }; - - /// - /// A set of transforms that are applied to the HtmlTags for specific types - /// - public static AdaptiveRenderTransformers ActionTransformers { get; } = InitActionTransformers(); - - public AdaptiveCardRenderer() : this(new AdaptiveHostConfig()) { } - - public AdaptiveCardRenderer(AdaptiveHostConfig config) - { - SetObjectTypes(); - HostConfig = config; - } - - public AdaptiveFeatureRegistration FeatureRegistration { get; } = new AdaptiveFeatureRegistration(); - - public RenderedAdaptiveCard RenderCard(AdaptiveCard card) - { - try - { - var context = new AdaptiveRenderContext(HostConfig, ElementRenderers); - context.FeatureRegistration = FeatureRegistration; - context.Lang = card.Lang; - var tag = context.Render(card); - return new RenderedAdaptiveCard(tag, card, context.Warnings); - } - catch (Exception ex) - { - throw new AdaptiveRenderException("Failed to render card", ex) - { - CardFallbackText = card.FallbackText - }; - } - } - - private void SetObjectTypes() - { - ElementRenderers.Set(AdaptiveCardRender); - - ElementRenderers.Set(TextBlockRender); - ElementRenderers.Set(RichTextBlockRender); - - ElementRenderers.Set(ImageRender); - ElementRenderers.Set(MediaRender); - - ElementRenderers.Set(ContainerRender); - ElementRenderers.Set(ColumnRender); - ElementRenderers.Set(ColumnSetRender); - ElementRenderers.Set(FactSetRender); - ElementRenderers.Set(ImageSetRender); - ElementRenderers.Set(ActionSetRender); - - ElementRenderers.Set(ChoiceSetRender); - ElementRenderers.Set(TextInputRender); - ElementRenderers.Set(NumberInputRender); - ElementRenderers.Set(DateInputRender); - ElementRenderers.Set(TimeInputRender); - ElementRenderers.Set(ToggleInputRender); - - ElementRenderers.Set(AdaptiveActionRender); - ElementRenderers.Set(AdaptiveActionRender); - ElementRenderers.Set(AdaptiveActionRender); - ElementRenderers.Set(AdaptiveActionRender); - } - - private static AdaptiveRenderTransformers InitActionTransformers() - { - var transformers = new AdaptiveRenderTransformers(); - transformers.Register((action, tag, context) => tag.Attr("data-ac-url", action.Url)); - transformers.Register((action, tag, context) => tag.Attr("data-ac-submitData", JsonConvert.SerializeObject(action.Data, Formatting.None))); - transformers.Register((action, tag, context) => - { - var showCardId = GenerateRandomId(); - tag.Attr("data-ac-showCardId", showCardId); - tag.Attr("aria-controls", showCardId); - tag.Attr("aria-expanded", bool.FalseString); - }); - - return transformers; - } - - protected static HtmlTag AddActionAttributes(AdaptiveAction action, HtmlTag tag, AdaptiveRenderContext context) - { - tag.AddClass(GetActionCssClass(action)) - .Attr("role", "button") - .Attr("aria-label", action.Title ?? "") - .Attr("tabindex", "0"); - - - AdaptiveToggleVisibilityAction toggleVisibilityAction = null; - if ((toggleVisibilityAction = action as AdaptiveToggleVisibilityAction) != null) - { - string targetElements = string.Empty; - - foreach (var targetElement in toggleVisibilityAction.TargetElements) - { - // If the string is not empty, append a comma in preparation to add the new target element - if (!String.IsNullOrWhiteSpace(targetElements)) - { - targetElements += ","; - } - - string targetElementId = null; - string targetElementToggleAction = "Toggle"; - - if (targetElement != null) - { - targetElementId = targetElement.ElementId; - - if (targetElement.IsVisible.HasValue) - { - targetElementToggleAction = targetElement.IsVisible.Value.ToString(); - } - } - - targetElements += (targetElementId + ":" + targetElementToggleAction); - } - - tag.Attr("data-ac-targetelements", targetElements); - } - - ActionTransformers.Apply(action, tag, context); - - return tag; - } - - protected static HtmlTag AddInlineActionAttributes(AdaptiveAction action, HtmlTag tag, AdaptiveRenderContext context) - { - tag.AddClass(GetActionCssClass(action) + "-inline") - .Attr("role", "button") - .Attr("aria-label", action.Title ?? ""); - - ActionTransformers.Apply(action, tag, context); - - return tag; - } - - protected static HtmlTag AdaptiveActionRender(AdaptiveAction action, AdaptiveRenderContext context) - { - if (context.Config.SupportsInteractivity) - { - var actionsConfig = context.Config.Actions; - var buttonElement = new HtmlTag("button", false) - .Attr("type", "button") - .Style("overflow", "hidden") - .Style("white-space", "nowrap") - .Style("text-overflow", "ellipsis") - .Style("flex", - actionsConfig.ActionAlignment == AdaptiveHorizontalAlignment.Stretch ? "0 1 100%" : "0 1 auto") - .Style("display", "flex") - .Style("align-items", "center") - .Style("justify-content", "center") - .AddClass("ac-pushButton"); - - - if (!String.IsNullOrWhiteSpace(action.Style) && !String.Equals(action.Style, "default", StringComparison.OrdinalIgnoreCase)) - { - if (String.Equals(action.Style, "positive", StringComparison.OrdinalIgnoreCase)) - { - string accentColor = context.Config.ContainerStyles.Default.ForegroundColors.Accent.Default; - string lighterAccentColor = ColorUtil.GenerateLighterColor(accentColor); - buttonElement.Style("background-color", context.GetRGBColor(accentColor)); - buttonElement.Attr("onMouseOver", "this.style.backgroundColor='" + context.GetRGBColor(lighterAccentColor) + "'"); - buttonElement.Attr("onMouseOut", "this.style.backgroundColor='" + context.GetRGBColor(accentColor) + "'"); - buttonElement.Style("color", "#FFFFFF"); - buttonElement.AddClass("ac-action-positive"); - } - else if (String.Equals(action.Style, "destructive", StringComparison.OrdinalIgnoreCase)) - { - string attentionColor = context.Config.ContainerStyles.Default.ForegroundColors.Attention.Default; - string lighterAttentionColor = ColorUtil.GenerateLighterColor(attentionColor); - buttonElement.Style("color", context.GetRGBColor(attentionColor)); - buttonElement.Attr("onMouseOver", "this.style.color='" + context.GetRGBColor(lighterAttentionColor) + "'"); - buttonElement.Attr("onMouseOut", "this.style.color='" + context.GetRGBColor(attentionColor) + "'"); - buttonElement.AddClass("ac-action-destructive"); - } - else - { - buttonElement.AddClass("ac-action-" + action.Style); - } - } - - var hasTitle = !string.IsNullOrEmpty(action.Title); - - if (action.IconUrl != null) - { - // Append the icon to the button - // NOTE: always using icon size since it's difficult - // to match icon's height with text's height - var iconElement = new HtmlTag("image", false) - .Attr("src", action.IconUrl) - .Style("max-height", $"{actionsConfig.IconSize}px"); - - if (actionsConfig.IconPlacement == IconPlacement.LeftOfTitle) - { - buttonElement.Style("flex-direction", "row"); - - if (hasTitle) - { - iconElement.Style("margin-right", "4px"); - } - } - else - { - buttonElement.Style("flex-direction", "column"); - - if (hasTitle) - { - iconElement.Style("margin-bottom", "4px"); - } - } - - buttonElement.Append(iconElement); - } - - var titleElement = new HtmlTag("div", false) { Text = action.Title }; - buttonElement.Append(titleElement); - - AddActionAttributes(action, buttonElement, context); - return buttonElement; - } - - return null; - } - - protected static HtmlTag AdaptiveCardRender(AdaptiveCard card, AdaptiveRenderContext context) - { - var uiCard = new DivTag() - .AddClass($"ac-{card.Type.ToLower()}") - .Style("width", "100%") - .Style("background-color", context.GetRGBColor(context.Config.ContainerStyles.Default.BackgroundColor)) - .Style("padding", $"{context.Config.Spacing.Padding}px") - .Style("box-sizing", "border-box"); - - if (card.BackgroundImage != null) - { - ApplyBackgroundImage(card.BackgroundImage, uiCard, context); - } - - if (card.PixelMinHeight > 0) - { - uiCard.Style("min-height", card.PixelMinHeight + "px"); - } - - // Reset the parent style - context.RenderArgs.ParentStyle = AdaptiveContainerStyle.Default; - - switch (card.VerticalContentAlignment) - { - case AdaptiveVerticalContentAlignment.Center: - uiCard.Style("justify-content", "center"); - break; - case AdaptiveVerticalContentAlignment.Bottom: - uiCard.Style("justify-content", "flex-end"); - break; - case AdaptiveVerticalContentAlignment.Top: - default: - uiCard.Style("justify-content", "flex-start"); - break; - } - - AddContainerElements(uiCard, card.Body, context); - AddActions(uiCard, card.Actions, context); - - AddSelectAction(uiCard, card.SelectAction, context); - - // Add all accumulated selectAction show cards - foreach (var showCard in context.ShowCardTags) - { - uiCard.Children.Add(showCard); - } - - return uiCard; - } - - protected static void AddSelectAction(HtmlTag tag, AdaptiveAction selectAction, AdaptiveRenderContext context) - { - if (context.Config.SupportsInteractivity && selectAction != null) - { - // SelectAction doesn't allow showCard actions - if (selectAction is AdaptiveShowCardAction) - { - context.Warnings.Add(new AdaptiveWarning(-1, "Inline ShowCard not supported for SelectAction")); - return; - } - - tag.AddClass("ac-selectable"); - AddActionAttributes(selectAction, tag, context); - } - } - - protected static void AddActions(HtmlTag uiContainer, IList actions, AdaptiveRenderContext context) - { - if (context.Config.SupportsInteractivity && actions != null) - { - var uiButtonStrip = new DivTag() - .AddClass("ac-actionset") - .Style("display", "flex"); - var actionsConfig = context.Config.Actions; - - // TODO: This top marging is currently being double applied, will have to investigate later - //.Style("margin-top", $"{context.Config.GetSpacing(context.Config.Actions.Spacing)}px"); - - // contains ShowCardAction.AdaptiveCard - var showCards = new List(); - - if (actionsConfig.ActionsOrientation == ActionsOrientation.Horizontal) - { - uiButtonStrip.Style("flex-direction", "row"); - - switch (actionsConfig.ActionAlignment) - { - case AdaptiveHorizontalAlignment.Center: - uiButtonStrip.Style("justify-content", "center"); - break; - case AdaptiveHorizontalAlignment.Right: - uiButtonStrip.Style("justify-content", "flex-end"); - break; - default: - uiButtonStrip.Style("justify-content", "flex-start"); - break; - } - } - else - { - uiButtonStrip.Style("flex-direction", "column"); - switch (actionsConfig.ActionAlignment) - { - case AdaptiveHorizontalAlignment.Center: - uiButtonStrip.Style("align-items", "center"); - break; - case AdaptiveHorizontalAlignment.Right: - uiButtonStrip.Style("align-items", "flex-end"); - break; - case AdaptiveHorizontalAlignment.Stretch: - uiButtonStrip.Style("align-items", "stretch"); - break; - default: - uiButtonStrip.Style("align-items", "flex-start"); - break; - } - } - - // If the number of actions is bigger than maxActions, then log warning for it - if (actions.Count > actionsConfig.MaxActions) - { - context.Warnings.Add(new AdaptiveWarning((int)AdaptiveWarning.WarningStatusCode.MaxActionsExceeded, - "Some actions were not rendered due to exceeding the maximum number of actions allowed")); - } - - var maxActions = Math.Min(actionsConfig.MaxActions, actions.Count); - // See if all actions have icons, otherwise force the icon placement to the left - var oldConfigIconPlacement = actionsConfig.IconPlacement; - bool allActionsHaveIcons = true; - for (var i = 0; i < maxActions; i++) - { - if (string.IsNullOrEmpty(actions[i].IconUrl)) - { - allActionsHaveIcons = false; - break; - } - } - - if (!allActionsHaveIcons) - { - actionsConfig.IconPlacement = IconPlacement.LeftOfTitle; - } - - for (var i = 0; i < maxActions; i++) - { - // add actions - var uiAction = context.Render(actions[i]); - if (uiAction != null) - { - if (actions[i] is AdaptiveShowCardAction showCardAction) - { - var cardId = uiAction.Attributes["data-ac-showCardId"]; - - var uiCard = context.Render(showCardAction.Card); - if (uiCard != null) - { - uiCard.Attr("id", cardId) - .AddClass("ac-showCard") - .Style("padding", "0") - .Style("display", "none") - .Style("margin-top", $"{actionsConfig.ShowCard.InlineTopMargin}px"); - - showCards.Add(uiCard); - } - } - uiButtonStrip.Children.Add(uiAction); - } - - // add spacer between buttons according to config - if (i < maxActions - 1 && actionsConfig.ButtonSpacing > 0) - { - var uiSpacer = new DivTag(); - - if (actionsConfig.ActionsOrientation == ActionsOrientation.Horizontal) - { - uiSpacer.Style("flex", "0 0 auto"); - uiSpacer.Style("width", actionsConfig.ButtonSpacing + "px"); - } - else - { - uiSpacer.Style("height", actionsConfig.ButtonSpacing + "px"); - } - uiButtonStrip.Children.Add(uiSpacer); - } - } - - if (uiButtonStrip.Children.Any()) - { - AdaptiveCardRenderer.AddSeparator(uiContainer, new AdaptiveContainer(), context); - uiContainer.Children.Add(uiButtonStrip); - } - - foreach (var showCard in showCards) - { - uiContainer.Children.Add(showCard); - } - - // Restore the iconPlacement for the context. - actionsConfig.IconPlacement = oldConfigIconPlacement; - } - } - - protected static void AddContainerElements(HtmlTag uiContainer, IList elements, AdaptiveRenderContext context) - { - if (elements != null) - { - bool isFirstVisibleElement = true; - int index = 0; - - foreach (var cardElement in elements) - { - if (index != 0) - { - // Only the first element can bleed to the top - context.RenderArgs.BleedDirection &= ~BleedDirection.BleedUp; - } - - if (index != (elements.Count - 1)) - { - // Only the last element can bleed to the bottom - context.RenderArgs.BleedDirection &= ~BleedDirection.BleedDown; - } - - index++; - - // each element has a row - var uiElement = context.Render(cardElement); - if (uiElement != null) - { - HtmlTag uiSeparator = null; - - if (uiContainer.Children.Any()) - { - uiSeparator = AddSeparator(uiContainer, cardElement, context); - } - - if (cardElement is AdaptiveCollectionElement collectionElement) - { - if (collectionElement.PixelMinHeight > 0) - { - uiElement.Style("min-height", collectionElement.PixelMinHeight + "px"); - } - } - - if (!cardElement.IsVisible) - { - uiElement.Style("display", "none"); - - if (uiSeparator != null) - { - uiSeparator.Style("display", "none"); - } - } - else - { - // if it's visible and it's the first element, hide the separator - if (isFirstVisibleElement) - { - if (uiSeparator != null) - { - uiSeparator.Style("display", "none"); - } - - isFirstVisibleElement = false; - } - } - - if (!String.IsNullOrWhiteSpace(cardElement.Id)) - { - uiElement.Attr("name", cardElement.Id); - } - - if (uiSeparator != null) - { - string separatorId = GenerateRandomId(); - uiSeparator.Attr("id", separatorId); - uiElement.Attr("data-ac-separatorId", separatorId); - } - - uiContainer.Children.Add(uiElement); - } - } - } - } - - protected static HtmlTag AddSeparator(HtmlTag uiContainer, AdaptiveElement adaptiveElement, AdaptiveRenderContext context) - { - if (!adaptiveElement.Separator && adaptiveElement.Spacing == AdaptiveSpacing.None) - { - return null; - } - - int spacing = context.Config.GetSpacing(adaptiveElement.Spacing); - var uiSep = new DivTag().AddClass("ac-separator"); - - if (adaptiveElement.Separator) - { - SeparatorConfig sep = context.Config.Separator; - - uiSep.Style("padding-top", $"{spacing / 2}px") - .Style("margin-top", $"{spacing / 2}px") - .Style("border-top-color", $"{context.GetRGBColor(sep.LineColor)}") - .Style("border-top-width", $"{sep.LineThickness}px") - .Style("border-top-style", "solid"); - } - else - { - uiSep.Style("height", $"{spacing}px"); - } - - uiContainer.Children.Add(uiSep); - return uiSep; - } - - protected static HtmlTag ColumnRender(AdaptiveColumn column, AdaptiveRenderContext context) - { - var uiColumn = new DivTag() - .AddClass($"ac-{column.Type.Replace(".", "").ToLower()}") - .Style("display", "flex") - .Style("flex-direction", "column") - .Style("min-width", "0px"); - - var parentRenderArgs = context.RenderArgs; - var childRenderArgs = new AdaptiveRenderArgs(parentRenderArgs); - - if (column.PixelMinHeight > 0) - { - uiColumn.Style("min-height", column.PixelMinHeight + "px"); - } - - if (!column.IsVisible) - { - uiColumn.Style("display", "none"); - } - - if (column.BackgroundImage != null) - { - ApplyBackgroundImage(column.BackgroundImage, uiColumn, context); - } - - bool inheritsStyleFromParent = !column.Style.HasValue; - bool hasPadding = false; - if (!inheritsStyleFromParent) - { - hasPadding = ApplyPadding(uiColumn, column, parentRenderArgs, context); - - // Apply background color - ContainerStyleConfig containerStyle = context.Config.ContainerStyles.GetContainerStyleConfig(column.Style); - uiColumn.Style("background-color", context.GetRGBColor(containerStyle.BackgroundColor)); - - childRenderArgs.ForegroundColors = containerStyle.ForegroundColors; - } - - switch (column.VerticalContentAlignment) - { - case AdaptiveVerticalContentAlignment.Center: - uiColumn.Style("justify-content", "center"); - break; - case AdaptiveVerticalContentAlignment.Bottom: - uiColumn.Style("justify-content", "flex-end"); - break; - case AdaptiveVerticalContentAlignment.Top: - default: - uiColumn.Style("justify-content", "flex-start"); - break; - } - - // Modify context outer parent style so padding necessity can be determined - childRenderArgs.ParentStyle = (inheritsStyleFromParent) ? parentRenderArgs.ParentStyle : column.Style.Value; - - // If the column has no padding or has padding and doesn't bleed, then the children can bleed - // to the side the column would have bled - if (hasPadding) - { - childRenderArgs.BleedDirection = BleedDirection.BleedAll; - } - - childRenderArgs.HasParentWithPadding = hasPadding; - context.RenderArgs = childRenderArgs; - - AddContainerElements(uiColumn, column.Items, context); - - AddSelectAction(uiColumn, column.SelectAction, context); - - context.RenderArgs = parentRenderArgs; - - return uiColumn; - } - - protected static HtmlTag ColumnSetRender(AdaptiveColumnSet columnSet, AdaptiveRenderContext context) - { - var uiColumnSet = new DivTag() - .AddClass($"ac-{columnSet.Type.Replace(".", "").ToLower()}") - .Style("display", "flex"); - - AddSelectAction(uiColumnSet, columnSet.SelectAction, context); - - var parentRenderArgs = context.RenderArgs; - var childrenRenderArgs = new AdaptiveRenderArgs(parentRenderArgs); - - bool inheritsStyleFromParent = !columnSet.Style.HasValue; - bool hasPadding = false; - if (!inheritsStyleFromParent) - { - hasPadding = ApplyPadding(uiColumnSet, columnSet, parentRenderArgs, context); - // Apply background color - var columnSetStyle = context.Config.ContainerStyles.GetContainerStyleConfig(columnSet.Style); - uiColumnSet.Style("background-color", context.GetRGBColor(columnSetStyle.BackgroundColor)); - childrenRenderArgs.ForegroundColors = columnSetStyle.ForegroundColors; - } - - // Modify context outer parent style so padding necessity can be determined - childrenRenderArgs.ParentStyle = (inheritsStyleFromParent) ? parentRenderArgs.ParentStyle : columnSet.Style.Value; - - var max = Math.Max(1.0, columnSet.Columns.Select(col => - { - if (col.Width != null && double.TryParse(col.Width, out double widthVal)) - return widthVal; -#pragma warning disable CS0618 // Type or member is obsolete - if (double.TryParse(col.Size ?? "0", out double val)) -#pragma warning restore CS0618 // Type or member is obsolete - return val; - return 0; - }).Sum()); - - bool isFirstVisibleColumn = true; - for (int i = 0; i < columnSet.Columns.Count; ++i) - { - var column = columnSet.Columns[i]; - - var childRenderArgs = new AdaptiveRenderArgs(childrenRenderArgs); - // Reset up and down bleed for columns as that behaviour shouldn't be changed - childRenderArgs.BleedDirection |= (BleedDirection.BleedUp | BleedDirection.BleedDown); - - if (i != 0) - { - // Only the first column can bleed to the left - childRenderArgs.BleedDirection &= ~BleedDirection.BleedLeft; - } - - if (i != columnSet.Columns.Count - 1) - { - // Only the last column can bleed to the right - childRenderArgs.BleedDirection &= ~BleedDirection.BleedRight; - } - context.RenderArgs = childRenderArgs; - - var uiColumn = context.Render(column); - - HtmlTag separator = null; - // Add horizontal Seperator - if (uiColumnSet.Children.Any() && (column.Separator || column.Spacing != AdaptiveSpacing.None)) - { - SeparatorConfig sep = context.Config.Separator; - - int spacing = context.Config.GetSpacing(column.Spacing) / 2; - int lineThickness = column.Separator ? sep.LineThickness : 0; - - separator = new DivTag() - .AddClass($"ac-columnseparator") - .Style("flex", "0 0 auto") - .Style("padding-left", $"{spacing}px") - .Style("margin-left", $"{spacing}px") - .Style("border-left-style", $"solid"); - - // This are the only two properties for separator - if (sep != null) - { - separator.Style("border-left-color", $"{context.GetRGBColor(sep.LineColor)}") - .Style("border-left-width", $"{lineThickness}px"); - } - - uiColumnSet.Children.Add(separator); - } - - if (column.IsVisible && isFirstVisibleColumn) - { - if (separator != null) - { - separator.Style("display", "none"); - } - isFirstVisibleColumn = false; - } - - // do some sizing magic - var width = column.Width?.ToLower(); - if (string.IsNullOrEmpty(width)) -#pragma warning disable CS0618 // Type or member is obsolete - width = column.Size?.ToLower(); -#pragma warning restore CS0618 // Type or member is obsolete - if (width == null || width == AdaptiveColumnWidth.Stretch.ToLower()) - { - uiColumn = uiColumn.Style("flex", "1 1 auto"); - } - else if (width == AdaptiveColumnWidth.Auto.ToLower()) - { - uiColumn = uiColumn.Style("flex", "0 1 auto"); - } - else - { - if (double.TryParse(width, out double val) && val >= 0) - { - var percent = Convert.ToInt32(100 * (val / max)); - uiColumn = uiColumn.Style("flex", $"1 1 {percent}%"); - } - else if (width.EndsWith("px") && double.TryParse(width.Substring(0, width.Length - 2), out double pxVal) && pxVal >= 0) - { - uiColumn = uiColumn.Style("flex", $"0 0 {(int)pxVal}px"); - } - else - { - uiColumn = uiColumn.Style("flex", "0 0 auto"); - } - } - - if (!column.IsVisible) - { - uiColumn.Style("display", "none"); - - if (separator != null) - { - separator.Style("display", "none"); - } - } - - if (!String.IsNullOrEmpty(column.Id)) - { - uiColumn.Attr("name", column.Id); - } - - if (separator != null) - { - string separatorId = GenerateRandomId(); - separator.Attr("id", separatorId); - uiColumn.Attr("data-ac-separatorId", separatorId); - } - - uiColumnSet.Children.Add(uiColumn); - } - - context.RenderArgs = parentRenderArgs; - - return uiColumnSet; - } - - protected static HtmlTag ContainerRender(AdaptiveContainer container, AdaptiveRenderContext context) - { - var uiContainer = new DivTag() - .AddClass($"ac-{container.Type.Replace(".", "").ToLower()}"); - - if (container.BackgroundImage != null) - { - ApplyBackgroundImage(container.BackgroundImage, uiContainer, context); - } - - if (container.Height == AdaptiveHeight.Stretch) - { - uiContainer.Style("display", "flex") - .Style("flex-direction", "column") - .Style("flex", "1 1 100%"); - } - - // Keep track of ContainerStyle.ForegroundColors before Container is rendered - var parentRenderArgs = context.RenderArgs; - var childRenderArgs = new AdaptiveRenderArgs(parentRenderArgs); - - bool inheritsStyleFromParent = !container.Style.HasValue; - bool hasPadding = false; - if (!inheritsStyleFromParent) - { - hasPadding = ApplyPadding(uiContainer, container, parentRenderArgs, context); - // Apply background color - ContainerStyleConfig containerStyle = context.Config.ContainerStyles.GetContainerStyleConfig(container.Style); - uiContainer.Style("background-color", context.GetRGBColor(containerStyle.BackgroundColor)); - - childRenderArgs.ForegroundColors = containerStyle.ForegroundColors; - } - - if (hasPadding) - { - childRenderArgs.BleedDirection = BleedDirection.BleedAll; - } - - childRenderArgs.HasParentWithPadding = (hasPadding || parentRenderArgs.HasParentWithPadding); - - switch (container.VerticalContentAlignment) - { - case AdaptiveVerticalContentAlignment.Center: - uiContainer.Style("justify-content", "center"); - break; - case AdaptiveVerticalContentAlignment.Bottom: - uiContainer.Style("justify-content", "flex-end"); - break; - case AdaptiveVerticalContentAlignment.Top: - default: - uiContainer.Style("justify-content", "flex-start"); - break; - } - - // Modify context outer parent style so padding necessity can be determined - childRenderArgs.ParentStyle = (inheritsStyleFromParent) ? parentRenderArgs.ParentStyle : container.Style.Value; - context.RenderArgs = childRenderArgs; - - AddContainerElements(uiContainer, container.Items, context); - - AddSelectAction(uiContainer, container.SelectAction, context); - - // Revert context's value to that of outside the Container - context.RenderArgs = parentRenderArgs; - - return uiContainer; - } - - protected static HtmlTag FactSetRender(AdaptiveFactSet factSet, AdaptiveRenderContext context) - { - var uiFactSet = (TableTag)new TableTag() - .AddClass($"ac-{factSet.Type.Replace(".", "").ToLower()}") - .Attr("name", factSet.Id) - .Style("overflow", "hidden"); - - if (factSet.Height == AdaptiveHeight.Stretch) - { - uiFactSet.Style("display", "block") - .Style("flex", "1 1 100%"); - } - - foreach (var fact in factSet.Facts) - { - AdaptiveTextBlock factTitle = new AdaptiveTextBlock() - { - Text = fact.Title, - Size = context.Config.FactSet.Title.Size, - Color = context.Config.FactSet.Title.Color, - Weight = context.Config.FactSet.Title.Weight, - IsSubtle = context.Config.FactSet.Title.IsSubtle, - Wrap = context.Config.FactSet.Title.Wrap, - MaxWidth = context.Config.FactSet.Title.MaxWidth - }; - var uiTitle = context.Render(factTitle) - .AddClass("ac-facttitle") - .Style("margin-right", $"{context.Config.FactSet.Spacing}px"); - - AdaptiveTextBlock factValue = new AdaptiveTextBlock() - { - Text = fact.Value, - Size = context.Config.FactSet.Value.Size, - Color = context.Config.FactSet.Value.Color, - Weight = context.Config.FactSet.Value.Weight, - IsSubtle = context.Config.FactSet.Value.IsSubtle, - Wrap = context.Config.FactSet.Value.Wrap, - // MaxWidth is not supported on the Value of FactSet. Do not set it. - }; - var uiValue = context.Render(factValue) - .AddClass("ac-factvalue"); - - // create row in factset - var uiRow = uiFactSet - .AddBodyRow(); - uiRow.Style("height", "1px"); - - // add elements as cells - uiRow.AddCell().AddClass("ac-factset-titlecell").Style("height", "inherit") - .Style("max-width", $"{context.Config.FactSet.Title.MaxWidth}px") - .Append(uiTitle); - uiRow.AddCell().AddClass("ac-factset-valuecell").Style("height", "inherit").Append(uiValue); - } - return uiFactSet; - } - - protected static HtmlTag TextBlockRender(AdaptiveTextBlock textBlock, AdaptiveRenderContext context) - { - string fontFamily = context.Config.GetFontFamily(textBlock.FontType); - int fontSize = context.Config.GetFontSize(textBlock.FontType, textBlock.Size); - int weight = context.Config.GetFontWeight(textBlock.FontType, textBlock.Weight); - - // Not sure where this magic value comes from? - var lineHeight = fontSize * 1.33; - - var uiTextBlock = new HtmlTag("div", false) - .AddClass($"ac-{textBlock.Type.Replace(".", "").ToLower()}") - .Attr("name", textBlock.Id) - .Style("box-sizing", "border-box") - .Style("text-align", textBlock.HorizontalAlignment.ToString().ToLower()) - .Style("color", context.GetColor(textBlock.Color, textBlock.IsSubtle, false)) - .Style("line-height", $"{lineHeight.ToString("F", System.Globalization.CultureInfo.InvariantCulture)}px") - .Style("font-size", $"{fontSize}px") - .Style("font-weight", $"{weight}"); - - if (textBlock.Height == AdaptiveHeight.Stretch) - { - uiTextBlock.Style("flex", "1 1 100%"); - } - - if (textBlock.Italic) - { - uiTextBlock.Style("font-style", "italic"); - } - - if (textBlock.Strikethrough) - { - uiTextBlock.Style("text-decoration", "line-through"); - } - - if (textBlock.MaxLines > 0) - uiTextBlock = uiTextBlock - .Style("max-height", $"{lineHeight * textBlock.MaxLines}px") - .Style("overflow", "hidden"); - - uiTextBlock = textBlock.Wrap ? - uiTextBlock.Style("word-wrap", "break-word") : - uiTextBlock.Style("white-space", "nowrap"); - - var textTags = MarkdownToHtmlTagConverter.Convert(RendererUtilities.ApplyTextFunctions(textBlock.Text, context.Lang)); - uiTextBlock.Children.AddRange(textTags); - - Action setParagraphStyles = null; - setParagraphStyles = (HtmlTag htmlTag) => - { - if (htmlTag.Element?.ToLowerInvariant() == "p") - { - htmlTag.Style("margin-top", "0px"); - htmlTag.Style("margin-bottom", "0px"); - htmlTag.Style("width", "100%"); - - if (!string.IsNullOrEmpty(fontFamily)) - { - htmlTag.Style("font-family", fontFamily); - } - - if (!textBlock.Wrap) - { - htmlTag.Style("text-overflow", "ellipsis"); - htmlTag.Style("overflow", "hidden"); - } - } - - foreach (var child in htmlTag.Children) - { - setParagraphStyles(child); - } - }; - - setParagraphStyles(uiTextBlock); - - return uiTextBlock; - } - - protected static HtmlTag RichTextBlockRender(AdaptiveRichTextBlock richTextBlock, AdaptiveRenderContext context) - { - var uiTextBlock = new HtmlTag("div", false) - .AddClass($"ac-{richTextBlock.Type.Replace(".", "").ToLower()}") - .Attr("name", richTextBlock.Id) - .Style("box-sizing", "border-box") - .Style("text-align", richTextBlock.HorizontalAlignment.ToString().ToLower()); - - if (richTextBlock.Height == AdaptiveHeight.Stretch) - { - uiTextBlock.Style("flex", "1 1 100%"); - } - - uiTextBlock = uiTextBlock.Style("word-wrap", "break-word"); - - var uiParagraph = new HtmlTag("p"); - foreach (var inlineRun in richTextBlock.Inlines) - { - AdaptiveTextRun textRun = inlineRun as AdaptiveTextRun; - - var uiInlineRun = TextRunRender(textRun, context); - uiParagraph.Children.Add(uiInlineRun); - } - uiTextBlock.Children.Add(uiParagraph); - - Action setParagraphStyles = null; - setParagraphStyles = (HtmlTag htmlTag) => - { - if (htmlTag.Element?.ToLowerInvariant() == "p") - { - htmlTag.Style("margin-top", "0px"); - htmlTag.Style("margin-bottom", "0px"); - htmlTag.Style("width", "100%"); - } - - foreach (var child in htmlTag.Children) - { - setParagraphStyles(child); - } - }; - - setParagraphStyles(uiTextBlock); - - return uiTextBlock; - } - - protected static HtmlTag TextRunRender(AdaptiveTextRun textRun, AdaptiveRenderContext context) - { - string fontFamily = context.Config.GetFontFamily(textRun.FontType); - int fontSize = context.Config.GetFontSize(textRun.FontType, textRun.Size); - int weight = context.Config.GetFontWeight(textRun.FontType, textRun.Weight); - - // Not sure where this magic value comes from? - var lineHeight = fontSize * 1.33; - - var uiTextRun = new HtmlTag("span", true) - .AddClass($"ac-{textRun.Type.Replace(".", "").ToLower()}") - .Style("color", context.GetColor(textRun.Color, textRun.IsSubtle, false)) - .Style("line-height", $"{lineHeight.ToString("F", System.Globalization.CultureInfo.InvariantCulture)}px") - .Style("font-size", $"{fontSize}px") - .Style("font-weight", $"{weight}"); - - uiTextRun.Text = RendererUtilities.ApplyTextFunctions(textRun.Text, context.Lang); - - if (textRun.Italic) - { - uiTextRun.Style("font-style", "italic"); - } - - if (textRun.Strikethrough && textRun.Underline) - { - uiTextRun.Style("text-decoration", "line-through underline"); - } - else if (textRun.Strikethrough) - { - uiTextRun.Style("text-decoration", "line-through"); - } - else if (textRun.Underline) - { - uiTextRun.Style("text-decoration", "underline"); - } - - if (textRun.Highlight) - { - uiTextRun.Style("background-color", context.GetColor(textRun.Color, textRun.IsSubtle, true)); - } - - return uiTextRun; - } - - protected static HtmlTag ImageRender(AdaptiveImage image, AdaptiveRenderContext context) - { - var uiDiv = new DivTag() - .AddClass($"ac-{image.Type.Replace(".", "").ToLower()}") - .Attr("name", image.Id) - .Style("display", "block"); - - if (image.Height != AdaptiveHeight.Stretch) - { - uiDiv.Style("box-sizing", "border-box"); - } - else - { - uiDiv.Style("align-items", "flex-start") - .Style("flex", "1 1 100%"); - } - - // if explicit image size is not used, use Adaptive Image size - if (image.PixelWidth == 0 && image.PixelHeight == 0) - { - switch (image.Size) - { - case AdaptiveImageSize.Auto: - uiDiv = uiDiv.Style("max-width", $"100%"); - break; - case AdaptiveImageSize.Small: - uiDiv = uiDiv.Style("max-width", $"{context.Config.ImageSizes.Small}px"); - break; - case AdaptiveImageSize.Medium: - uiDiv = uiDiv.Style("max-width", $"{context.Config.ImageSizes.Medium}px"); - break; - case AdaptiveImageSize.Large: - uiDiv = uiDiv.Style("max-width", $"{context.Config.ImageSizes.Large}px"); - break; - case AdaptiveImageSize.Stretch: - uiDiv = uiDiv.Style("width", $"100%"); - break; - } - } - - var uiImage = new HtmlTag("img") - .Attr("alt", image.AltText ?? "card image") - .Attr("src", context.Config.ResolveFinalAbsoluteUri(image.Url)); - - // if explicit image size is used - if (image.PixelWidth != 0 || image.PixelHeight != 0) - { - if (image.PixelWidth != 0) - { - uiImage = uiImage.Attr("width", $"{image.PixelWidth}px"); - } - if (image.PixelHeight != 0) - { - uiImage = uiImage.Attr("height", $"{image.PixelHeight}px"); - } - uiImage = uiImage.Attr("object-fit", "fill"); - } - else - { - uiImage.Style("width", "100%"); - } - - switch (image.Style) - { - case AdaptiveImageStyle.Default: - break; - case AdaptiveImageStyle.Person: - uiImage = uiImage.Style("background-position", "50% 50%") - .Style("border-radius", "50%") - .Style("background-repeat", "no-repeat"); - break; - } - - switch (image.HorizontalAlignment) - { - case AdaptiveHorizontalAlignment.Left: - uiDiv = uiDiv.Style("overflow", "hidden"); - break; - case AdaptiveHorizontalAlignment.Center: - uiDiv = uiDiv.Style("overflow", "hidden") - .Style("margin-right", "auto") - .Style("margin-left", "auto"); - break; - case AdaptiveHorizontalAlignment.Right: - uiDiv = uiDiv.Style("overflow", "hidden") - .Style("margin-left", "auto"); - break; - } - - if (!string.IsNullOrEmpty(image.BackgroundColor)) - { - uiImage.Style("background-color", context.GetRGBColor(image.BackgroundColor)); - } - - uiDiv.Children.Add(uiImage); - - AddSelectAction(uiDiv, image.SelectAction, context); - return uiDiv; - } - - private static List _supportedMimeTypes = new List - { - "video/mp4", - "audio/mp4", - "audio/mpeg" - }; - - private static List _supportedAudioMimeTypes = new List - { - "audio/mp4", - "audio/mpeg" - }; - - /** Get the first media URI with a supported mime type */ - private static List GetMediaSources(AdaptiveMedia media, AdaptiveRenderContext context) - { - // Check if sources contain an invalid mix of MIME types (audio and video) - bool? isLastMediaSourceAudio = null; - foreach (var source in media.Sources) - { - if (!isLastMediaSourceAudio.HasValue) - { - isLastMediaSourceAudio = IsAudio(source); - } - else - { - if (IsAudio(source) != isLastMediaSourceAudio.Value) - { - // If there is one pair of sources with different MIME types, - // it's an invalid mix and a warning should be logged - context.Warnings.Add(new AdaptiveWarning(-1, "A Media element contains an invalid mix of MIME type")); - return null; - } - - isLastMediaSourceAudio = IsAudio(source); - } - } - - // Return the list of all supported sources with not-null URI - List validSources = new List(); - foreach (var source in media.Sources) - { - if (_supportedMimeTypes.Contains(source.MimeType)) - { - Uri finalMediaUri = context.Config.ResolveFinalAbsoluteUri(source.Url); - if (finalMediaUri != null) - { - validSources.Add(source); - } - } - } - - return validSources; - } - - private static bool IsAudio(AdaptiveMediaSource mediaSource) - { - return _supportedAudioMimeTypes.Contains(mediaSource.MimeType); - } - - protected static HtmlTag MediaRender(AdaptiveMedia media, AdaptiveRenderContext context) - { - List mediaSources = GetMediaSources(media, context); - - // No valid source is found - if (mediaSources.Count == 0) - { - context.Warnings.Add(new AdaptiveWarning(-1, "A Media element does not have any valid source")); - return null; - } - - var uiMedia = new DivTag() - .Style("width", "100%") - .Attr("alt", media.AltText ?? "card media"); - - string posterUrl = null; - if (!string.IsNullOrEmpty(media.Poster) && context.Config.ResolveFinalAbsoluteUri(media.Poster) != null) - { - posterUrl = context.Config.ResolveFinalAbsoluteUri(media.Poster).ToString(); - } - else if (!string.IsNullOrEmpty(context.Config.Media.DefaultPoster) - && context.Config.ResolveFinalAbsoluteUri(context.Config.Media.DefaultPoster) != null) - { - // Use the default poster from host - posterUrl = context.Config.ResolveFinalAbsoluteUri(context.Config.Media.DefaultPoster).ToString(); - } - - var thumbnailImage = new HtmlTag("image", false) - .Attr("src", posterUrl) - .Style("width", "100%") - .Style("height", "100%"); - - // If host does not support interactivity, simply return the - // poster image if present - if (!context.Config.SupportsInteractivity) - { - uiMedia.Children.Add(thumbnailImage); - - return uiMedia; - } - - #region Thumbnail - - var thumbnailButton = new DivTag() - .AddClass("ac-media-poster") - .Attr("role", "button") - .Attr("tabindex", "0") - .Attr("aria-label", "Play media") - .Attr("role", "contentinfo") - .Style("position", "relative") - .Style("display", "flex") - .Style("cursor", "pointer"); - - if (posterUrl != null) - { - thumbnailButton.Children.Add(thumbnailImage); - } - else - { - thumbnailButton.AddClass("empty") - .Style("height", "200px") - .Style("minHeight", "150px") - .Style("background-color", "#F2F2F2"); - } - - #region Play button - - // Overlay on top of poster image - var playButtonContainer = new DivTag() - .Style("position", "absolute") - .Style("left", "0") - .Style("top", "0") - .Style("width", "100%") - .Style("height", "100%") - .Style("display", "flex") - .Style("justify-content", "center") - .Style("align-items", "center"); - - // If host specifies a play button URL, - // render that image as the play button - if (!string.IsNullOrEmpty(context.Config.Media.PlayButton) - && context.Config.ResolveFinalAbsoluteUri(context.Config.Media.PlayButton) != null) - { - var playButtonImage = new HtmlTag("img") - .Attr("src", context.Config.ResolveFinalAbsoluteUri(context.Config.Media.PlayButton).ToString()) - .Style("width", "56px") - .Style("height", "56px"); - - playButtonContainer.Children.Add(playButtonImage); - } - else - { - int playButtonArrowWidth = 12; - int playButtonArrowHeight = 15; - - // Play symbol (black arrow) - var playButtonInnerElement = new DivTag() - .Style("width", playButtonArrowWidth + "px") - .Style("height", playButtonArrowHeight + "px") - .Style("color", "black") - .Style("border-top-width", (playButtonArrowHeight / 2) + "px") - .Style("border-bottom-width", (playButtonArrowHeight / 2) + "px") - .Style("border-left-width", playButtonArrowWidth + "px") - .Style("border-right-width", "0") - .Style("border-style", "solid") - .Style("border-top-color", "transparent") - .Style("border-right-color", "transparent") - .Style("border-bottom-color", "transparent"); - - // Circle around play symbol - var playButtonOuterElement = new DivTag() - .Style("display", "flex") - .Style("align-items", "center") - .Style("justify-content", "center") - .Style("width", "56px") - .Style("height", "56px") - .Style("border", "1px solid #EEEEEE") - .Style("border-radius", "28px") - .Style("box-shadow", "0px 0px 10px #EEEEEE") - .Style("background-color", "rgba(255, 255, 255, 0.9)") - .Style("color", "black"); - - playButtonOuterElement.Children.Add(playButtonInnerElement); - - playButtonContainer.Children.Add(playButtonOuterElement); - } - - #endregion - - thumbnailButton.Children.Add(playButtonContainer); - - #endregion - - uiMedia.Children.Add(thumbnailButton); - - if (context.Config.Media.AllowInlinePlayback) - { - // Media player is only created if inline playback is allowed - - // A unique ID to link the thumbnail button and the media player - // of the same Media element - string mediaId = GenerateRandomId(); - - thumbnailButton.Attr("data-ac-mediaId", mediaId); - - #region Media Player - - bool isAudio = IsAudio(mediaSources[0]); - - var uiMediaPlayerContainer = new DivTag() - .Attr("id", mediaId) - .Style("width", "100%") - .Style("height", "100%") - .Style("display", "none"); - - // If an audio has a poster, display the static poster image - // along with the media player - if (isAudio && posterUrl != null) - { - var staticPosterImage = new HtmlTag("image", false) - .Attr("src", posterUrl) - .Style("width", "100%") - .Style("height", "100%"); - - uiMediaPlayerContainer.Children.Add(staticPosterImage); - } - - var uiMediaPlayer = new HtmlTag(isAudio ? "audio" : "video") - .Attr("id", mediaId + "-player") - .Style("width", "100%") - .Attr("controls", "") - .Attr("preload", "none") - .Attr("poster", posterUrl); - - // Sources - foreach (var source in mediaSources) - { - var uiSource = new HtmlTag("source") - .Attr("src", context.Config.ResolveFinalAbsoluteUri(source.Url)) - .Attr("type", source.MimeType); - - uiMediaPlayer.Children.Add(uiSource); - } - - uiMediaPlayerContainer.Children.Add(uiMediaPlayer); - - #endregion - - uiMedia.Children.Add(uiMediaPlayerContainer); - } - else - { - // Attach media data to the thumbnail to be sent to host - thumbnailButton.Attr("data-ac-media-sources", JsonConvert.SerializeObject(media.Sources, Formatting.None)); - } - - return uiMedia; - } - - protected static HtmlTag ImageSetRender(AdaptiveImageSet imageSet, AdaptiveRenderContext context) - { - var uiImageSet = new DivTag() - .Attr("name", imageSet.Id) - .AddClass(imageSet.Type.ToLower()); - - if (imageSet.Height == AdaptiveHeight.Stretch) - { - uiImageSet.Style("display", "flex") - .Style("flex", "1 1 100%"); - } - - foreach (var image in imageSet.Images) - { - if (imageSet.ImageSize != AdaptiveImageSize.Auto) - image.Size = imageSet.ImageSize; - - var uiImage = context.Render(image) - .Style("display", "inline-block") - .Style("margin-right", "10px"); - - uiImageSet.Children.Add(uiImage); - } - return uiImageSet; - } - - protected static HtmlTag ActionSetRender(AdaptiveActionSet actionSet, AdaptiveRenderContext context) - { - var outerContainer = new DivTag() - .Style("box-sizing", "border-box") - .Style("width", "100%"); - AddActions(outerContainer, actionSet.Actions, context); - return outerContainer; - } - - /// - /// 1. IsMultiSelect == false && IsCompact == true => render as a drop down select element - /// 2. IsMultiSelect == false && IsCompact == false => render as a list of radio buttons - /// 3. IsMultiSelect == true => render as a list of toggle inputs - /// - protected static HtmlTag ChoiceSetRender(AdaptiveChoiceSetInput adaptiveChoiceSetInput, AdaptiveRenderContext context) - { - if (!adaptiveChoiceSetInput.IsMultiSelect) - { - if (adaptiveChoiceSetInput.Style == AdaptiveChoiceInputStyle.Compact) - { - var uiSelectElement = new HtmlTag("select") - .Attr("name", adaptiveChoiceSetInput.Id) - .AddClass("ac-input") - .AddClass("ac-multichoiceInput") - .Style("width", "100%"); - - if (adaptiveChoiceSetInput.Height == AdaptiveHeight.Stretch) - { - uiSelectElement.Style("flex", "1 1 100%"); - } - - var defaultValues = ParseChoiceSetInputDefaultValues(adaptiveChoiceSetInput.Value); - - // If more than one option is specified, default to not select any option - if (defaultValues.Count > 1) - { - var option = new HtmlTag("option") { Text = "" } - .Attr("disabled", string.Empty) - .Attr("hidden", string.Empty) - .Attr("selected", string.Empty); - uiSelectElement.Append(option); - } - - foreach (var choice in adaptiveChoiceSetInput.Choices) - { - var option = new HtmlTag("option") { Text = choice.Title } - .Attr("value", choice.Value); - - // Select an option only when one option is specified - if (defaultValues.Contains(choice.Value) && defaultValues.Count == 1) - { - option.Attr("selected", string.Empty); - } - uiSelectElement.Append(option); - } - - return uiSelectElement; - } - else - { - return ChoiceSetRenderInternal(adaptiveChoiceSetInput, context, "radio"); - } - } - else - { - return ChoiceSetRenderInternal(adaptiveChoiceSetInput, context, "checkbox"); - } - } - - private static HtmlTag ChoiceSetRenderInternal(AdaptiveChoiceSetInput adaptiveChoiceSetInput, AdaptiveRenderContext context, string htmlInputType) - { - var defaultValues = ParseChoiceSetInputDefaultValues(adaptiveChoiceSetInput.Value); - - // render as a series of radio buttons - var uiElement = new DivTag() - .AddClass("ac-input") - .Style("width", "100%") - .Style("flex", "1 1 100%") - .Attr("name", adaptiveChoiceSetInput.Id); - - foreach (var choice in adaptiveChoiceSetInput.Choices) - { - var htmlLabelId = GenerateRandomId(); - - var uiInput = new HtmlTag("input") - .Attr("id", htmlLabelId) - .Attr("type", htmlInputType) - .Attr("name", adaptiveChoiceSetInput.Id) - .Attr("value", choice.Value) - .Style("margin", "0px") - .Style("display", "inline-block") - .Style("vertical-align", "middle"); - - // Only select an option if isMultiSelect is true (checkboxes) - // or there is only one specified value - if (defaultValues.Contains(choice.Value) && (adaptiveChoiceSetInput.IsMultiSelect || defaultValues.Count == 1)) - { - uiInput.Attr("checked", string.Empty); - } - - var uiLabel = CreateLabel(htmlLabelId, choice.Title, context); - - var compoundInputElement = new DivTag() - .Append(uiInput) - .Append(uiLabel); - - // text-overflow ellipsis does not work when width is not specified in px - // when specified relatively such as using %, ellipsis does not work - if (!adaptiveChoiceSetInput.Wrap) - { - compoundInputElement.Style("white-space", "nowrap"); - compoundInputElement.Style("overflow", "hidden"); - } - - uiElement.Append(compoundInputElement); - } - - return uiElement; - - } - - // Default values are specified by a comma separated string - private static List ParseChoiceSetInputDefaultValues(string value) - { - return value?.Split(',').Select(p => p.Trim()).Where(s => !string.IsNullOrEmpty(s)).ToList() ?? new List(); - } - - private static HtmlTag CreateLabel(string forId, string innerText, AdaptiveRenderContext context) - { - var tag = new HtmlTag("label") - .SetInnerText(innerText) - .Attr("for", forId); - ApplyDefaultTextAttributes(tag, context); - return tag; - } - - private static void ApplyDefaultTextAttributes(HtmlTag tag, AdaptiveRenderContext context) - { -// Ignore deprecation warning for FontSizes -#pragma warning disable 0618 - tag.Style("color", context.GetColor(AdaptiveTextColor.Default, false, false)) - .Style("font-size", $"{context.Config.FontSizes.Default}px") - .Style("display", "inline-block") - .Style("margin-left", "6px") - .Style("vertical-align", "middle"); -#pragma warning restore 0618 - } - - protected static HtmlTag DateInputRender(AdaptiveDateInput input, AdaptiveRenderContext context) - { - var uiDateInput = new HtmlTag("input") - .Attr("name", input.Id) - .Attr("type", "date") - .AddClass("ac-input") - .AddClass("ac-dateInput") - .Style("width", "100%") - .Attr("aria-label", (input.Placeholder ?? "Select date") + " in mm/dd/yyyy format"); - - if (!string.IsNullOrEmpty(input.Value)) - { - uiDateInput.Attr("value", input.Value); - } - - if (!string.IsNullOrEmpty(input.Min)) - { - uiDateInput.Attr("min", input.Min); - } - - if (!string.IsNullOrEmpty(input.Max)) - { - uiDateInput.Attr("max", input.Max); - } - - if (input.Height == AdaptiveHeight.Stretch) - { - uiDateInput.Style("flex", "1 1 100%"); - } - - return uiDateInput; - } - - protected static HtmlTag NumberInputRender(AdaptiveNumberInput input, AdaptiveRenderContext context) - { - var uiNumberInput = new HtmlTag("input") - .Attr("name", input.Id) - .AddClass("ac-input") - .AddClass("ac-numberInput") - .Attr("type", "number") - .Style("width", "100%"); - - if (!double.IsNaN(input.Min)) - { - uiNumberInput.Attr("min", input.Min.ToString()); - } - - if (!double.IsNaN(input.Max)) - { - uiNumberInput.Attr("max", input.Max.ToString()); - } - - if (!double.IsNaN(input.Value)) - { - uiNumberInput.Attr("value", input.Value.ToString()); - } - - if (input.Height == AdaptiveHeight.Stretch) - { - uiNumberInput.Style("flex", "1 1 100%"); - } - - return uiNumberInput; - } - - protected static HtmlTag TextInputRender(AdaptiveTextInput input, AdaptiveRenderContext context) - { - HtmlTag uiTextInput; - if (input.IsMultiline) - { - uiTextInput = new HtmlTag("textarea", false); - - if (!string.IsNullOrEmpty(input.Value)) - { - uiTextInput.Text = input.Value; - } - } - else - { - uiTextInput = new HtmlTag("input").Attr("type", "text"); - - if (!string.IsNullOrEmpty(input.Value)) - { - uiTextInput.Attr("value", input.Value); - } - } - - uiTextInput - .Attr("name", input.Id) - .AddClass("ac-textinput") - .AddClass("ac-input"); - - if (input.InlineAction != null) - { - uiTextInput.Style("width", "100%"); - } - else - { - if (!input.IsMultiline) - { - uiTextInput.Style("flex", "1 1 auto"); - } - } - - if (!string.IsNullOrEmpty(input.Placeholder)) - { - uiTextInput.Attr("placeholder", input.Placeholder); - } - - if (input.MaxLength > 0) - { - uiTextInput.Attr("maxLength", input.MaxLength.ToString()); - } - - if (input.Height == AdaptiveHeight.Stretch) - { - uiTextInput.Style("flex", "1 1 100%"); - } - - if (context.Config.SupportsInteractivity && input.InlineAction != null) - { - // ShowCard Inline Action Mode is not supported - if (input.InlineAction.Type == AdaptiveShowCardAction.TypeName && - context.Config.Actions.ShowCard.ActionMode == ShowCardActionMode.Inline) - { - context.Warnings.Add(new AdaptiveWarning(-1, "Inline ShowCard not supported for InlineAction")); - } - else - { - var textInputWithInlineActionId = GenerateRandomId(); - var uiContainer = new DivTag() - .AddClass("ac-textinput-inlineaction") - .Attr("data-ac-textinput-id", textInputWithInlineActionId) - .Style("overflow", "hidden") - .Style("display", "flex") - .Attr("name", input.Id); - - if(input.Height == AdaptiveHeight.Stretch) - { - uiContainer.Style("flex", "1 1 100%"); - } - - uiTextInput.Attr("id", textInputWithInlineActionId); - - uiContainer.Children.Add(uiTextInput); - - var actionsConfig = context.Config.Actions; - - var buttonElement = new HtmlTag("button", false) - .Attr("type", "button") - .Style("overflow", "hidden") - .Style("white-space", "nowrap") - .Style("text-overflow", "ellipsis") - .Style("flex", "0 1 auto") - .Style("display", "flex") - .Style("align-items", "center") - .Style("justify-content", "center"); - - if (input.InlineAction.IconUrl != null) - { - // Append the icon to the button - // NOTE: always using icon size since it's difficult - // to match icon's height with text's height - var iconElement = new HtmlTag("image", false) - .Attr("src", input.InlineAction.IconUrl) - .Style("max-height", $"{actionsConfig.IconSize}px"); - - buttonElement.Append(iconElement); - } - else - { - var titleElement = new HtmlTag("div", false) { Text = input.InlineAction.Title }; - buttonElement.Append(titleElement); - } - - AddInlineActionAttributes(input.InlineAction, buttonElement, context); - string inlineActionId = GenerateRandomId(); - uiContainer.Attr("data-ac-inlineaction-id", inlineActionId); - buttonElement.Attr("id", inlineActionId); - uiContainer.Children.Add(buttonElement); - - return uiContainer; - } - } - - return uiTextInput; - } - - protected static HtmlTag TimeInputRender(AdaptiveTimeInput input, AdaptiveRenderContext context) - { - var uiTimeInput = new HtmlTag("input") - .Attr("type", "time") - .Attr("name", input.Id) - .AddClass("ac-input") - .AddClass("ac-timeInput") - .Style("width", "100%"); - - if (!string.IsNullOrEmpty(input.Value)) - { - uiTimeInput.Attr("value", input.Value); - } - - if (!string.IsNullOrEmpty(input.Min)) - { - uiTimeInput.Attr("min", input.Min); - } - - if (!string.IsNullOrEmpty(input.Max)) - { - uiTimeInput.Attr("max", input.Max); - } - - if (input.Height == AdaptiveHeight.Stretch) - { - uiTimeInput.Style("flex", "1 1 100%"); - } - - return uiTimeInput; - } - - protected static HtmlTag ToggleInputRender(AdaptiveToggleInput toggleInput, AdaptiveRenderContext context) - { - var htmlLabelId = GenerateRandomId(); - - var uiElement = new DivTag() - .AddClass("ac-input") - .Style("width", "100%") - .Attr("name", toggleInput.Id); - - if (toggleInput.Height == AdaptiveHeight.Stretch) - { - uiElement.Style("flex", "1 1 100%"); - } - - var uiCheckboxInput = new HtmlTag("input") - .Attr("id", htmlLabelId) - .Attr("type", "checkbox") - .Attr("name", toggleInput.Id) - .Attr("data-ac-valueOn", toggleInput.ValueOn ?? bool.TrueString) - .Attr("data-ac-valueOff", toggleInput.ValueOff ?? bool.FalseString) - .Style("display", "inline-block") - .Style("vertical-align", "middle") - .Style("margin", "0px"); - - if (toggleInput.Value == toggleInput.ValueOn) - { - uiCheckboxInput.Attr("checked", string.Empty); - } - - var uiLabel = CreateLabel(htmlLabelId, toggleInput.Title, context); - - uiElement.Append(uiCheckboxInput).Append(uiLabel); - - if (!toggleInput.Wrap) - { - uiElement.Style("white-space", "nowrap"); - uiElement.Style("overflow", "hidden"); - } - - return uiElement; - } - - protected static string GetFallbackText(AdaptiveElement adaptiveElement) - { -#pragma warning disable CS0618 // Type or member is obsolete - if (!string.IsNullOrEmpty(adaptiveElement.Speak)) - { -#if NET452 - var doc = new System.Xml.XmlDocument(); - var xml = adaptiveElement.Speak; - if (!xml.Trim().StartsWith("<")) - xml = $"\n{xml}"; - else if (!xml.StartsWith("\n{xml}"; - doc.LoadXml(xml); - return doc.InnerText; -#endif - } -#pragma warning restore CS0618 // Type or member is obsolete - return null; - } - - private static void ApplyBackgroundImage(AdaptiveBackgroundImage backgroundImage, HtmlTag uiContainer, AdaptiveRenderContext context) - { - switch (backgroundImage.FillMode) - { - case AdaptiveImageFillMode.Repeat: - uiContainer.Style("background-image", $"url('{context.Config.ResolveFinalAbsoluteUri(backgroundImage.Url)}')") - .Style("background-repeat", "repeat"); - break; - case AdaptiveImageFillMode.RepeatHorizontally: - uiContainer.Style("background-image", $"url('{context.Config.ResolveFinalAbsoluteUri(backgroundImage.Url)}')") - .Style("background-repeat", "repeat-x") - .Style("background-position", "left " + backgroundImage.VerticalAlignment.ToString()); - break; - case AdaptiveImageFillMode.RepeatVertically: - uiContainer.Style("background-image", $"url('{context.Config.ResolveFinalAbsoluteUri(backgroundImage.Url)}')") - .Style("background-repeat", "repeat-y") - .Style("background-position", backgroundImage.HorizontalAlignment.ToString() + " top"); - break; - case AdaptiveImageFillMode.Cover: - default: - uiContainer.Style("background-image", $"url('{context.Config.ResolveFinalAbsoluteUri(backgroundImage.Url)}')") - .Style("background-repeat", "no-repeat") - .Style("background-size", "cover") - .Style("background-position", backgroundImage.HorizontalAlignment.ToString().ToLower() + " " + backgroundImage.VerticalAlignment.ToString().ToLower()); - break; - } - } - - private static bool ApplyPadding(HtmlTag uiElement, AdaptiveCollectionElement element, AdaptiveRenderArgs parentRenderArgs, AdaptiveRenderContext context) - { - bool canApplyPadding = false; - - // AdaptiveColumn inherits from AdaptiveContainer so only one check is required for both - if (element is AdaptiveContainer container) - { - canApplyPadding = ((container.BackgroundImage != null) || (container.Style.HasValue && (container.Style != parentRenderArgs.ParentStyle))); - } - else if (element is AdaptiveColumnSet columnSet) - { - canApplyPadding = (columnSet.Style.HasValue && (columnSet.Style != parentRenderArgs.ParentStyle)); - } - - if (canApplyPadding) - { - int padding = context.Config.Spacing.Padding; - uiElement.Style("padding-right", padding + "px") - .Style("padding-left", padding + "px") - .Style("padding-top", padding + "px") - .Style("padding-bottom", padding + "px"); - - if (element.Bleed) - { - int leftMargin = 0, rightMargin = 0, topMargin = 0, bottomMargin = 0; - if ((parentRenderArgs.BleedDirection & BleedDirection.BleedLeft) != BleedDirection.BleedNone) - { - leftMargin = -padding; - } - - if ((parentRenderArgs.BleedDirection & BleedDirection.BleedRight) != BleedDirection.BleedNone) - { - rightMargin = -padding; - } - - if ((parentRenderArgs.BleedDirection & BleedDirection.BleedUp) != BleedDirection.BleedNone) - { - topMargin = -padding; - } - - if ((parentRenderArgs.BleedDirection & BleedDirection.BleedDown) != BleedDirection.BleedNone) - { - bottomMargin = -padding; - } - - uiElement.Style("margin-right", rightMargin + "px") - .Style("margin-left", leftMargin + "px") - .Style("margin-top", topMargin + "px") - .Style("margin-bottom", bottomMargin + "px"); - } - } - - return canApplyPadding; - } - } -} diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveCards.Rendering.Html.csproj b/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveCards.Rendering.Html.csproj deleted file mode 100644 index 2ad477425e..0000000000 --- a/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveCards.Rendering.Html.csproj +++ /dev/null @@ -1,38 +0,0 @@ - - - - net4.5.2;netstandard1.3;netstandard2.0 - Microsoft - Adaptive Card renderer for generating HTML tags - This library provides the ability to render an Adaptive Card into HTML, typically used for server-side card rendering - false - adaptivecards;adaptive-cards - https://adaptivecards.io - https://adaptivecards.io/content/icons_blue/blue-48.png - https://github.com/Microsoft/AdaptiveCards - EULA-Windows.txt - $(DefineConstants);$(AdditionalConstants) - © Microsoft Corporation. All rights reserved. - false - - - - - - - - - - - - - - - - - - 4.7.0 - - - - diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveRenderContext.cs b/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveRenderContext.cs deleted file mode 100644 index 23c6aa82eb..0000000000 --- a/source/dotnet/Library/AdaptiveCards.Rendering.Html/AdaptiveRenderContext.cs +++ /dev/null @@ -1,157 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -using System; -using System.Collections.Generic; -using Newtonsoft.Json; - -namespace AdaptiveCards.Rendering.Html -{ - public class AdaptiveRenderContext - { - public AdaptiveRenderContext(AdaptiveHostConfig hostConfig, AdaptiveElementRenderers elementRenderers) - { - // clone it - Config = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(hostConfig)); - ElementRenderers = elementRenderers; - RenderArgs = new AdaptiveRenderArgs { ForegroundColors = Config.ContainerStyles.Default.ForegroundColors }; - } - - public AdaptiveHostConfig Config { get; set; } - - public AdaptiveElementRenderers ElementRenderers { get; set; } - - public AdaptiveFeatureRegistration FeatureRegistration { get; set; } - - public IList Warnings { get; } = new List(); - - public IList ShowCardTags { get; } = new List(); - - private bool AncestorHasFallback = false; - - public HtmlTag Render(AdaptiveTypedElement element) - { - HtmlTag htmlTagOut = null; - var oldAncestorHasFallback = AncestorHasFallback; - var elementHasFallback = element != null && element.Fallback != null && (element.Fallback.Type != AdaptiveFallbackElement.AdaptiveFallbackType.None); - AncestorHasFallback = AncestorHasFallback || elementHasFallback; - - try - { - if (AncestorHasFallback && !element.MeetsRequirements(FeatureRegistration)) - { - throw new AdaptiveFallbackException("Element requirements aren't met"); - } - - // If non-interactive, inputs should just render text - if (!Config.SupportsInteractivity && element is AdaptiveInput input) - { - var tb = new AdaptiveTextBlock(); - tb.Text = input.GetNonInteractiveValue(); - Warnings.Add(new AdaptiveWarning(-1, $"Rendering non-interactive input element '{element.Type}'")); - htmlTagOut = Render(tb); - } - - if (htmlTagOut == null) - { - var renderer = ElementRenderers.Get(element.GetType()); - if (renderer != null) - { - htmlTagOut = renderer.Invoke(element, this); - } - } - } - catch (AdaptiveFallbackException) - { - if (!elementHasFallback) - { - throw; - } - } - - if (htmlTagOut == null) - { - // Since no renderer exists for this element, add warning and render fallback (if available) - if (element.Fallback != null && element.Fallback.Type != AdaptiveFallbackElement.AdaptiveFallbackType.None) - { - if (element.Fallback.Type == AdaptiveFallbackElement.AdaptiveFallbackType.Drop) - { - Warnings.Add(new AdaptiveWarning(-1, $"Dropping element for fallback '{element.Type}'")); - } - else if (element.Fallback.Type == AdaptiveFallbackElement.AdaptiveFallbackType.Content && element.Fallback.Content != null) - { - // Render fallback content - htmlTagOut = Render(element.Fallback.Content); - } - } - else if (AncestorHasFallback) - { - throw new AdaptiveFallbackException(); - } - else - { - Warnings.Add(new AdaptiveWarning(-1, $"No renderer for element '{element.Type}'")); - } - } - - AncestorHasFallback = oldAncestorHasFallback; - return htmlTagOut; - } - - public string GetColor(AdaptiveTextColor color, bool isSubtle, bool isHighlight) - { - FontColorConfig colorConfig; - switch (color) - { - case AdaptiveTextColor.Accent: - colorConfig = RenderArgs.ForegroundColors.Accent; - break; - case AdaptiveTextColor.Good: - colorConfig = RenderArgs.ForegroundColors.Good; - break; - case AdaptiveTextColor.Warning: - colorConfig = RenderArgs.ForegroundColors.Warning; - break; - case AdaptiveTextColor.Attention: - colorConfig = RenderArgs.ForegroundColors.Attention; - break; - case AdaptiveTextColor.Dark: - colorConfig = RenderArgs.ForegroundColors.Dark; - break; - case AdaptiveTextColor.Light: - colorConfig = RenderArgs.ForegroundColors.Light; - break; - default: - colorConfig = RenderArgs.ForegroundColors.Default; - break; - } - - if (isHighlight) - { - return GetRGBColor(isSubtle ? colorConfig.HighlightColors.Subtle : colorConfig.HighlightColors.Default); - } - else - { - return GetRGBColor(isSubtle ? colorConfig.Subtle : colorConfig.Default); - } - } - - public string GetRGBColor(string color) - { - if (color?.StartsWith("#") == true) - { - if (color.Length == 7) - return color; - if (color.Length == 9) - { - var opacity = (float)Convert.ToByte(color.Substring(1, 2), 16) / Byte.MaxValue; - return $"rgba({Convert.ToByte(color.Substring(3, 2), 16)}, {Convert.ToByte(color.Substring(5, 2), 16)}, {Convert.ToByte(color.Substring(7, 2), 16)}, {opacity.ToString("F", System.Globalization.CultureInfo.InvariantCulture)})"; - } - } - return color; - } - - public string Lang { get; set; } - - public AdaptiveRenderArgs RenderArgs { get; set; } - } -} diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Html/EULA-Windows.txt b/source/dotnet/Library/AdaptiveCards.Rendering.Html/EULA-Windows.txt deleted file mode 100644 index a224e46549..0000000000 --- a/source/dotnet/Library/AdaptiveCards.Rendering.Html/EULA-Windows.txt +++ /dev/null @@ -1,40 +0,0 @@ -MICROSOFT SOFTWARE LICENSE TERMS -MICROSOFT ADAPTIVECARDS -________________________________________ -IF YOU LIVE IN (OR ARE A BUSINESS WITH A PRINCIPAL PLACE OF BUSINESS IN) THE UNITED STATES, PLEASE READ THE “BINDING ARBITRATION AND CLASS ACTION WAIVER” SECTION BELOW. IT AFFECTS HOW DISPUTES ARE RESOLVED. -________________________________________ -These license terms are an agreement between you and Microsoft Corporation (or one of its affiliates). They apply to the software named above and any Microsoft services or software updates (except to the extent such services or updates are accompanied by new or additional terms, in which case those different terms apply prospectively and do not alter your or Microsoft’s rights relating to pre-updated software or services). - -IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE RIGHTS BELOW. BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. - -1. INSTALLATION AND USE RIGHTS. -a) General. Subject to the terms of this agreement, you may install and use any number of copies of the software to develop and test your applications, solely for use on Windows. -b) Included Microsoft Applications. The software may include other Microsoft applications. These license terms apply to those included applications, if any, unless other license terms are provided with the other Microsoft applications. -c) Microsoft Platforms. The software may include components from Microsoft Windows. These components are governed by separate agreements and their own product support policies, as described in the license terms found in the installation directory for that component or in the “Licenses” folder accompanying the software. -d) Third Party Components. The software may include third party components with separate legal notices or governed by other agreements, as may be described in the ThirdPartyNotices file(s) accompanying the software. -2. DATA. -a) Data Collection. The software may collect information about you and your use of the software, and send that to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may opt-out of many of these scenarios, but not all, as described in the product documentation. There are also some features in the software that may enable you to collect data from users of your applications. If you use these features to enable data collection in your applications, you must comply with applicable law, including providing appropriate notices to users of your applications. You can learn more about data collection and use in the help documentation and the privacy statement at https://aka.ms/privacy. Your use of the software operates as your consent to these practices. -b) Processing of Personal Data. To the extent Microsoft is a processor or subprocessor of personal data in connection with the software, Microsoft makes the commitments in the European Union General Data Protection Regulation Terms of the Online Services Terms to all customers effective May 25, 2018, at https://docs.microsoft.com/en-us/legal/gdpr. -3. SCOPE OF LICENSE. The software is licensed, not sold. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you will not (and have no right to): -a) work around any technical limitations in the software that only allow you to use it in certain ways; -b) reverse engineer, decompile or disassemble the software, or otherwise attempt to derive the source code for the software, except and to the extent required by third party licensing terms governing use of certain open source components that may be included in the software; -c) remove, minimize, block, or modify any notices of Microsoft or its suppliers in the software; -d) use the software in any way that is against the law or to create or propagate malware; or -e) share, publish, distribute, or lease the software, provide the software as a stand-alone offering for others to use, or transfer the software or this agreement to any third party. -4. EXPORT RESTRICTIONS. You must comply with all domestic and international export laws and regulations that apply to the software, which include restrictions on destinations, end users, and end use. For further information on export restrictions, visit https://aka.ms/exporting. -5. SUPPORT SERVICES. Microsoft is not obligated under this agreement to provide any support services for the software. Any support provided is “as is”, “with all faults”, and without warranty of any kind. -6. UPDATES. The software may periodically check for updates, and download and install them for you. You may obtain updates only from Microsoft or authorized sources. Microsoft may need to update your system to provide you with updates. You agree to receive these automatic updates without any additional notice. Updates may not include or support all existing software features, services, or peripheral devices. -7. BINDING ARBITRATION AND CLASS ACTION WAIVER. This Section applies if you live in (or, if a business, your principal place of business is in) the United States. If you and Microsoft have a dispute, you and Microsoft agree to try for 60 days to resolve it informally. If you and Microsoft can’t, you and Microsoft agree to binding individual arbitration before the American Arbitration Association under the Federal Arbitration Act (“FAA”), and not to sue in court in front of a judge or jury. Instead, a neutral arbitrator will decide. Class action lawsuits, class-wide arbitrations, private attorney-general actions, and any other proceeding where someone acts in a representative capacity are not allowed; nor is combining individual proceedings without the consent of all parties. The complete Arbitration Agreement contains more terms and is at https://aka.ms/arb-agreement-4. You and Microsoft agree to these terms. -8. ENTIRE AGREEMENT. This agreement, and any other terms Microsoft may provide for supplements, updates, or third-party applications, is the entire agreement for the software. -9. APPLICABLE LAW AND PLACE TO RESOLVE DISPUTES. If you acquired the software in the United States or Canada, the laws of the state or province where you live (or, if a business, where your principal place of business is located) govern the interpretation of this agreement, claims for its breach, and all other claims (including consumer protection, unfair competition, and tort claims), regardless of conflict of laws principles, except that the FAA governs everything related to arbitration. If you acquired the software in any other country, its laws apply, except that the FAA governs everything related to arbitration. If U.S. federal jurisdiction exists, you and Microsoft consent to exclusive jurisdiction and venue in the federal court in King County, Washington for all disputes heard in court (excluding arbitration). If not, you and Microsoft consent to exclusive jurisdiction and venue in the Superior Court of King County, Washington for all disputes heard in court (excluding arbitration). -10. CONSUMER RIGHTS; REGIONAL VARIATIONS. This agreement describes certain legal rights. You may have other rights, including consumer rights, under the laws of your state or country. Separate and apart from your relationship with Microsoft, you may also have rights with respect to the party from which you acquired the software. This agreement does not change those other rights if the laws of your state or country do not permit it to do so. For example, if you acquired the software in one of the below regions, or mandatory country law applies, then the following provisions apply to you: -a) Australia. You have statutory guarantees under the Australian Consumer Law and nothing in this agreement is intended to affect those rights. -b) Canada. If you acquired this software in Canada, you may stop receiving updates by turning off the automatic update feature, disconnecting your device from the Internet (if and when you re-connect to the Internet, however, the software will resume checking for and installing updates), or uninstalling the software. The product documentation, if any, may also specify how to turn off updates for your specific device or software. -c) Germany and Austria. -i. Warranty. The properly licensed software will perform substantially as described in any Microsoft materials that accompany the software. However, Microsoft gives no contractual guarantee in relation to the licensed software. -ii. Limitation of Liability. In case of intentional conduct, gross negligence, claims based on the Product Liability Act, as well as, in case of death or personal or physical injury, Microsoft is liable according to the statutory law. -Subject to the foregoing clause ii., Microsoft will only be liable for slight negligence if Microsoft is in breach of such material contractual obligations, the fulfillment of which facilitate the due performance of this agreement, the breach of which would endanger the purpose of this agreement and the compliance with which a party may constantly trust in (so-called "cardinal obligations"). In other cases of slight negligence, Microsoft will not be liable for slight negligence. -11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR CONDITIONS. TO THE EXTENT PERMITTED UNDER APPLICABLE LAWS, MICROSOFT EXCLUDES ALL IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -12. LIMITATION ON AND EXCLUSION OF DAMAGES. IF YOU HAVE ANY BASIS FOR RECOVERING DAMAGES DESPITE THE PRECEDING DISCLAIMER OF WARRANTY, YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT, OR INCIDENTAL DAMAGES. -This limitation applies to (a) anything related to the software, services, content (including code) on third party Internet sites, or third party applications; and (b) claims for breach of contract, warranty, guarantee, or condition; strict liability, negligence, or other tort; or any other claim; in each case to the extent permitted by applicable law. -It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your state, province, or country may not allow the exclusion or limitation of incidental, consequential, or other damages. diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Html/HtmlTag.cs b/source/dotnet/Library/AdaptiveCards.Rendering.Html/HtmlTag.cs deleted file mode 100644 index c3dd548cc1..0000000000 --- a/source/dotnet/Library/AdaptiveCards.Rendering.Html/HtmlTag.cs +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net; -using System.Text; - -namespace AdaptiveCards.Rendering.Html -{ - public class HtmlTag - { - private readonly bool _allowSelfClose; - - public HtmlTag(string element, bool allowSelfClose = true) - { - _allowSelfClose = allowSelfClose; - this.Element = element; - } - - public string Element { get; set; } - - - public List Classes { get; set; } = new List(); - - public Dictionary Styles { get; set; } = new Dictionary(); - - public List Children { get; set; } = new List(); - - public string Text { get; set; } - - public Dictionary Attributes { get; set; } = new Dictionary(); - - public HtmlTag AddClass(string className) - { - this.Classes.Add(className); - return this; - } - - public HtmlTag Append(HtmlTag child) - { - this.Children.Add(child); - return this; - } - - public HtmlTag Style(string name, string value) - { - if (value == null) - Styles.Remove(name); - else - Styles[name] = value; - return this; - } - - public HtmlTag SetInnerText(string text) - { - Text = text; - return this; - } - - public HtmlTag Attr(string name, string value) - { - if (value == null) - this.Attributes.Remove(name); - else - this.Attributes[name] = value; - return this; - } - - public HtmlTag Attr(string name, Uri value) - { - if (value == null) - this.Attributes.Remove(name); - else - this.Attributes[name] = value.ToString(); - return this; - } - - public override string ToString() - { - if (string.IsNullOrEmpty(this.Element)) - { - // When element doesn't exist, it indicates a text node. - return WebUtility.HtmlEncode(this.Text); - } - - StringBuilder sb = new StringBuilder(); - sb.Append($"<{this.Element}"); - if (this.Classes.Any()) - { - sb.Append($" class='{WebUtility.HtmlEncode(String.Join(" ", this.Classes))}'"); - } - - foreach (var attr in this.Attributes) - { - sb.Append($" {attr.Key}='{WebUtility.HtmlEncode(attr.Value)}'"); - } - - if (this.Styles.Any()) - { - sb.Append($" style='{String.Join(";", this.Styles.Select(kv => $"{WebUtility.HtmlEncode(kv.Key)}: {WebUtility.HtmlEncode(kv.Value)}"))};'"); - } - - if (this.Children.Any() || !String.IsNullOrEmpty(this.Text) || !_allowSelfClose) - { - sb.Append(">"); - - if (!String.IsNullOrEmpty(this.Text)) - sb.Append(WebUtility.HtmlEncode(this.Text)); - - foreach (var child in this.Children) - { - sb.Append(child.ToString()); - } - - sb.Append($""); - } - else - { - // No children, so just self-close the element. - sb.Append("/>"); - } - - return sb.ToString(); - } - } - - public class DivTag : HtmlTag - { - public DivTag() : base("div", false) - { - } - } - - public class LinkTag : HtmlTag - { - public LinkTag(string title, string url, params string[] classes) : base("a") - { - if (!String.IsNullOrEmpty(title)) - this.Attributes.Add("title", title); - if (!String.IsNullOrEmpty(url)) - this.Attributes.Add("url", url); - if (classes != null) - { - foreach (var className in classes) - this.AddClass(className); - } - } - } - - public class TableTag : HtmlTag - { - public TableTag() : base("table") - { - - } - - public TableRowTag AddBodyRow() - { - - var row = new TableRowTag(); - this.Children.Add(row); - return row; - } - - } - - public class TableRowTag : HtmlTag - { - public TableRowTag() : base("tr") - { - - } - - public TableCellTag AddCell() - { - var cell = new TableCellTag(); - this.Children.Add(cell); - return cell; - } - } - - public class TableCellTag : HtmlTag - { - public TableCellTag() : base("td") - { - - } - } -} diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Html/MarkdownToHtmlTagConverter.cs b/source/dotnet/Library/AdaptiveCards.Rendering.Html/MarkdownToHtmlTagConverter.cs deleted file mode 100644 index 1e92c2ed0b..0000000000 --- a/source/dotnet/Library/AdaptiveCards.Rendering.Html/MarkdownToHtmlTagConverter.cs +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -using System; -using System.Collections.Generic; -using System.Linq; -using System.Xml; -using System.Xml.Linq; -using Microsoft.MarkedNet; - -namespace AdaptiveCards.Rendering.Html -{ - public static class MarkdownToHtmlTagConverter - { - public static IEnumerable Convert(string markdown) - { - var marked = new Marked(); - marked.Options.Mangle = false; - marked.Options.Sanitize = true; - marked.Options.XHtml = true; - - var rawXhtml = marked.Parse(markdown); - var root = XElement.Parse($"{rawXhtml}"); - - return root.Elements().Select(RawXhtmlToHtmlTag); - } - - - private static HtmlTag RawXhtmlToHtmlTag(XElement element) - { - var htmlTag = new HtmlTag(element.Name.LocalName); - - foreach (var node in element.Nodes()) - { - switch (node.NodeType) - { - case XmlNodeType.Text: - { - var textTag = new HtmlTag(null); - textTag.Text = ((XText)node).Value; - htmlTag.Children.Add(textTag); - } - break; - - case XmlNodeType.Element: - htmlTag.Children.Add(RawXhtmlToHtmlTag((XElement)node)); - break; - } - } - - foreach (var attribute in element.Attributes()) - { - switch (attribute.Name.LocalName.ToLowerInvariant()) - { - case "style": - // Style needs to be parsed out into the Styles attribute of the HtmlTag. - // But we don't ever expect the markdown processor to return it, so we don't need to handle it for now. - throw new InvalidOperationException(); - - case "class": - var classNames = attribute.Value.Split(' ').Where(className => !string.IsNullOrWhiteSpace(className)); - foreach (var className in classNames) - { - htmlTag.AddClass(className.Trim()); - } - - break; - - default: - htmlTag.Attr(attribute.Name.LocalName, attribute.Value); - break; - } - } - - return htmlTag; - } - } -} diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Html/Properties/AssemblyInfo.cs b/source/dotnet/Library/AdaptiveCards.Rendering.Html/Properties/AssemblyInfo.cs deleted file mode 100644 index 0dcda78069..0000000000 --- a/source/dotnet/Library/AdaptiveCards.Rendering.Html/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -using System; -using System.Reflection; - -#if DELAY_SIGN -[assembly: AssemblyKeyFileAttribute(@"\\cp1pd1cdscvlt04\public\StrongNamePublicKeys\35MSSharedLib1024.snk")] -[assembly: AssemblyDelaySignAttribute(true)] -#endif diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Html/RenderedAdaptiveCard.cs b/source/dotnet/Library/AdaptiveCards.Rendering.Html/RenderedAdaptiveCard.cs deleted file mode 100644 index 034e136e2a..0000000000 --- a/source/dotnet/Library/AdaptiveCards.Rendering.Html/RenderedAdaptiveCard.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -using System.Collections.Generic; - -namespace AdaptiveCards.Rendering.Html -{ - /// - /// The rendered Adaptive Card result. - /// - public class RenderedAdaptiveCard : RenderedAdaptiveCardBase - { - public RenderedAdaptiveCard(HtmlTag htmlTag, AdaptiveCard originatingCard, IList warnings) - : base(originatingCard, warnings) - { - Html = htmlTag; - } - - /// - /// The rendered HTML for the card - /// - public HtmlTag Html { get; } - } -} diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Wpf.Xceed/Properties/AssemblyInfo.cs b/source/dotnet/Library/AdaptiveCards.Rendering.Wpf.Xceed/Properties/AssemblyInfo.cs index 15238c10f0..1b4bc46564 100644 --- a/source/dotnet/Library/AdaptiveCards.Rendering.Wpf.Xceed/Properties/AssemblyInfo.cs +++ b/source/dotnet/Library/AdaptiveCards.Rendering.Wpf.Xceed/Properties/AssemblyInfo.cs @@ -2,6 +2,6 @@ using System.Reflection; #if DELAY_SIGN -[assembly: AssemblyKeyFileAttribute(@"\\cp1pd1cdscvlt04\public\StrongNamePublicKeys\35MSSharedLib1024.snk")] +[assembly: AssemblyKeyFileAttribute(@"../../../../35MSSharedLib1024.snk")] [assembly: AssemblyDelaySignAttribute(true)] #endif diff --git a/source/dotnet/Library/AdaptiveCards.Rendering.Wpf/Properties/AssemblyInfo.cs b/source/dotnet/Library/AdaptiveCards.Rendering.Wpf/Properties/AssemblyInfo.cs index 3d35838ffd..a4dc756292 100644 --- a/source/dotnet/Library/AdaptiveCards.Rendering.Wpf/Properties/AssemblyInfo.cs +++ b/source/dotnet/Library/AdaptiveCards.Rendering.Wpf/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Windows; #if DELAY_SIGN -[assembly: AssemblyKeyFileAttribute(@"\\cp1pd1cdscvlt04\public\StrongNamePublicKeys\35MSSharedLib1024.snk")] +[assembly: AssemblyKeyFileAttribute(@"../../../../35MSSharedLib1024.snk")] [assembly: AssemblyDelaySignAttribute(true)] #endif [assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)] diff --git a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCards.Templating.csproj b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCards.Templating.csproj index a0da1d87b1..ba9da1970d 100644 --- a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCards.Templating.csproj +++ b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCards.Templating.csproj @@ -44,7 +44,7 @@ - + all diff --git a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.cs b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.cs index 62f25f3321..248c839e43 100644 --- a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.cs +++ b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.cs @@ -101,7 +101,7 @@ static AdaptiveCardsTemplateLexer() { } private static char[] _serializedATN = { '\x3', '\x608B', '\xA72A', '\x8133', '\xB9ED', '\x417C', '\x3BE7', '\x7786', - '\x5964', '\x2', '\x15', '\xC5', '\b', '\x1', '\b', '\x1', '\x4', '\x2', + '\x5964', '\x2', '\x15', '\xC6', '\b', '\x1', '\b', '\x1', '\x4', '\x2', '\t', '\x2', '\x4', '\x3', '\t', '\x3', '\x4', '\x4', '\t', '\x4', '\x4', '\x5', '\t', '\x5', '\x4', '\x6', '\t', '\x6', '\x4', '\a', '\t', '\a', '\x4', '\b', '\t', '\b', '\x4', '\t', '\t', '\t', '\x4', '\n', '\t', '\n', @@ -131,143 +131,144 @@ static AdaptiveCardsTemplateLexer() { '\x3', '\x13', '\x3', '\x13', '\x3', '\x13', '\x3', '\x13', '\x3', '\x13', '\x6', '\x13', '\x93', '\n', '\x13', '\r', '\x13', '\xE', '\x13', '\x94', '\x3', '\x13', '\x3', '\x13', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', - '\x3', '\x14', '\a', '\x14', '\x9D', '\n', '\x14', '\f', '\x14', '\xE', - '\x14', '\xA0', '\v', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x15', + '\x3', '\x14', '\x3', '\x14', '\a', '\x14', '\x9E', '\n', '\x14', '\f', + '\x14', '\xE', '\x14', '\xA1', '\v', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', - '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x16', - '\x3', '\x16', '\x6', '\x16', '\xB0', '\n', '\x16', '\r', '\x16', '\xE', - '\x16', '\xB1', '\x3', '\x16', '\x5', '\x16', '\xB5', '\n', '\x16', '\x3', - '\x17', '\x3', '\x17', '\x3', '\x17', '\x5', '\x17', '\xBA', '\n', '\x17', - '\x3', '\x18', '\x3', '\x18', '\x3', '\x18', '\x3', '\x18', '\x3', '\x18', - '\x3', '\x18', '\x3', '\x19', '\x3', '\x19', '\x3', '\x1A', '\x3', '\x1A', - '\x3', '\x9E', '\x2', '\x1B', '\x4', '\x3', '\x6', '\x4', '\b', '\x5', - '\n', '\x6', '\f', '\a', '\xE', '\b', '\x10', '\t', '\x12', '\n', '\x14', - '\v', '\x16', '\f', '\x18', '\r', '\x1A', '\x2', '\x1C', '\x2', '\x1E', - '\xE', ' ', '\xF', '\"', '\x10', '$', '\x11', '&', '\x12', '(', '\x13', - '*', '\x14', ',', '\x15', '.', '\x2', '\x30', '\x2', '\x32', '\x2', '\x34', - '\x2', '\x4', '\x2', '\x3', '\v', '\x3', '\x2', '\x32', ';', '\x3', '\x2', - '\x33', ';', '\x4', '\x2', 'G', 'G', 'g', 'g', '\x4', '\x2', '-', '-', - '/', '/', '\x5', '\x2', '\v', '\f', '\xF', '\xF', '\"', '\"', '\x3', '\x2', - '$', '$', '\n', '\x2', '$', '$', '\x31', '\x31', '^', '^', '\x64', '\x64', - 'h', 'h', 'p', 'p', 't', 't', 'v', 'v', '\x5', '\x2', '\x32', ';', '\x43', - 'H', '\x63', 'h', '\x6', '\x2', '\x2', '!', '$', '$', '&', '&', '^', '^', - '\x2', '\xCC', '\x2', '\x4', '\x3', '\x2', '\x2', '\x2', '\x2', '\x6', - '\x3', '\x2', '\x2', '\x2', '\x2', '\b', '\x3', '\x2', '\x2', '\x2', '\x2', - '\n', '\x3', '\x2', '\x2', '\x2', '\x2', '\f', '\x3', '\x2', '\x2', '\x2', - '\x2', '\xE', '\x3', '\x2', '\x2', '\x2', '\x2', '\x10', '\x3', '\x2', - '\x2', '\x2', '\x2', '\x12', '\x3', '\x2', '\x2', '\x2', '\x2', '\x14', - '\x3', '\x2', '\x2', '\x2', '\x2', '\x16', '\x3', '\x2', '\x2', '\x2', - '\x2', '\x18', '\x3', '\x2', '\x2', '\x2', '\x2', '\x1E', '\x3', '\x2', - '\x2', '\x2', '\x3', ' ', '\x3', '\x2', '\x2', '\x2', '\x3', '\"', '\x3', - '\x2', '\x2', '\x2', '\x3', '$', '\x3', '\x2', '\x2', '\x2', '\x3', '&', - '\x3', '\x2', '\x2', '\x2', '\x3', '(', '\x3', '\x2', '\x2', '\x2', '\x3', - '*', '\x3', '\x2', '\x2', '\x2', '\x3', ',', '\x3', '\x2', '\x2', '\x2', - '\x4', '\x36', '\x3', '\x2', '\x2', '\x2', '\x6', '\x38', '\x3', '\x2', - '\x2', '\x2', '\b', ':', '\x3', '\x2', '\x2', '\x2', '\n', '<', '\x3', - '\x2', '\x2', '\x2', '\f', '>', '\x3', '\x2', '\x2', '\x2', '\xE', '@', - '\x3', '\x2', '\x2', '\x2', '\x10', '\x42', '\x3', '\x2', '\x2', '\x2', - '\x12', 'G', '\x3', '\x2', '\x2', '\x2', '\x14', 'M', '\x3', '\x2', '\x2', - '\x2', '\x16', 'R', '\x3', '\x2', '\x2', '\x2', '\x18', 'W', '\x3', '\x2', - '\x2', '\x2', '\x1A', 'm', '\x3', '\x2', '\x2', '\x2', '\x1C', 'o', '\x3', - '\x2', '\x2', '\x2', '\x1E', 'v', '\x3', '\x2', '\x2', '\x2', ' ', '|', - '\x3', '\x2', '\x2', '\x2', '\"', '\x80', '\x3', '\x2', '\x2', '\x2', - '$', '\x86', '\x3', '\x2', '\x2', '\x2', '&', '\x92', '\x3', '\x2', '\x2', - '\x2', '(', '\x98', '\x3', '\x2', '\x2', '\x2', '*', '\xA3', '\x3', '\x2', - '\x2', '\x2', ',', '\xB4', '\x3', '\x2', '\x2', '\x2', '.', '\xB6', '\x3', - '\x2', '\x2', '\x2', '\x30', '\xBB', '\x3', '\x2', '\x2', '\x2', '\x32', - '\xC1', '\x3', '\x2', '\x2', '\x2', '\x34', '\xC3', '\x3', '\x2', '\x2', - '\x2', '\x36', '\x37', '\a', '.', '\x2', '\x2', '\x37', '\x5', '\x3', - '\x2', '\x2', '\x2', '\x38', '\x39', '\a', '<', '\x2', '\x2', '\x39', - '\a', '\x3', '\x2', '\x2', '\x2', ':', ';', '\a', '}', '\x2', '\x2', ';', - '\t', '\x3', '\x2', '\x2', '\x2', '<', '=', '\a', '\x7F', '\x2', '\x2', - '=', '\v', '\x3', '\x2', '\x2', '\x2', '>', '?', '\a', ']', '\x2', '\x2', - '?', '\r', '\x3', '\x2', '\x2', '\x2', '@', '\x41', '\a', '_', '\x2', - '\x2', '\x41', '\xF', '\x3', '\x2', '\x2', '\x2', '\x42', '\x43', '\a', - 'v', '\x2', '\x2', '\x43', '\x44', '\a', 't', '\x2', '\x2', '\x44', '\x45', - '\a', 'w', '\x2', '\x2', '\x45', '\x46', '\a', 'g', '\x2', '\x2', '\x46', - '\x11', '\x3', '\x2', '\x2', '\x2', 'G', 'H', '\a', 'h', '\x2', '\x2', - 'H', 'I', '\a', '\x63', '\x2', '\x2', 'I', 'J', '\a', 'n', '\x2', '\x2', - 'J', 'K', '\a', 'u', '\x2', '\x2', 'K', 'L', '\a', 'g', '\x2', '\x2', - 'L', '\x13', '\x3', '\x2', '\x2', '\x2', 'M', 'N', '\a', 'p', '\x2', '\x2', - 'N', 'O', '\a', 'w', '\x2', '\x2', 'O', 'P', '\a', 'n', '\x2', '\x2', - 'P', 'Q', '\a', 'n', '\x2', '\x2', 'Q', '\x15', '\x3', '\x2', '\x2', '\x2', - 'R', 'S', '\a', '$', '\x2', '\x2', 'S', 'T', '\x3', '\x2', '\x2', '\x2', - 'T', 'U', '\b', '\v', '\x2', '\x2', 'U', '\x17', '\x3', '\x2', '\x2', - '\x2', 'V', 'X', '\a', '/', '\x2', '\x2', 'W', 'V', '\x3', '\x2', '\x2', - '\x2', 'W', 'X', '\x3', '\x2', '\x2', '\x2', 'X', 'Y', '\x3', '\x2', '\x2', - '\x2', 'Y', '`', '\x5', '\x1A', '\r', '\x2', 'Z', '\\', '\a', '\x30', - '\x2', '\x2', '[', ']', '\t', '\x2', '\x2', '\x2', '\\', '[', '\x3', '\x2', - '\x2', '\x2', ']', '^', '\x3', '\x2', '\x2', '\x2', '^', '\\', '\x3', - '\x2', '\x2', '\x2', '^', '_', '\x3', '\x2', '\x2', '\x2', '_', '\x61', - '\x3', '\x2', '\x2', '\x2', '`', 'Z', '\x3', '\x2', '\x2', '\x2', '`', - '\x61', '\x3', '\x2', '\x2', '\x2', '\x61', '\x63', '\x3', '\x2', '\x2', - '\x2', '\x62', '\x64', '\x5', '\x1C', '\xE', '\x2', '\x63', '\x62', '\x3', - '\x2', '\x2', '\x2', '\x63', '\x64', '\x3', '\x2', '\x2', '\x2', '\x64', - '\x19', '\x3', '\x2', '\x2', '\x2', '\x65', 'n', '\a', '\x32', '\x2', - '\x2', '\x66', 'j', '\t', '\x3', '\x2', '\x2', 'g', 'i', '\t', '\x2', - '\x2', '\x2', 'h', 'g', '\x3', '\x2', '\x2', '\x2', 'i', 'l', '\x3', '\x2', - '\x2', '\x2', 'j', 'h', '\x3', '\x2', '\x2', '\x2', 'j', 'k', '\x3', '\x2', - '\x2', '\x2', 'k', 'n', '\x3', '\x2', '\x2', '\x2', 'l', 'j', '\x3', '\x2', - '\x2', '\x2', 'm', '\x65', '\x3', '\x2', '\x2', '\x2', 'm', '\x66', '\x3', - '\x2', '\x2', '\x2', 'n', '\x1B', '\x3', '\x2', '\x2', '\x2', 'o', 'q', - '\t', '\x4', '\x2', '\x2', 'p', 'r', '\t', '\x5', '\x2', '\x2', 'q', 'p', - '\x3', '\x2', '\x2', '\x2', 'q', 'r', '\x3', '\x2', '\x2', '\x2', 'r', - 's', '\x3', '\x2', '\x2', '\x2', 's', 't', '\x5', '\x1A', '\r', '\x2', - 't', '\x1D', '\x3', '\x2', '\x2', '\x2', 'u', 'w', '\t', '\x6', '\x2', - '\x2', 'v', 'u', '\x3', '\x2', '\x2', '\x2', 'w', 'x', '\x3', '\x2', '\x2', - '\x2', 'x', 'v', '\x3', '\x2', '\x2', '\x2', 'x', 'y', '\x3', '\x2', '\x2', - '\x2', 'y', 'z', '\x3', '\x2', '\x2', '\x2', 'z', '{', '\b', '\xF', '\x3', - '\x2', '{', '\x1F', '\x3', '\x2', '\x2', '\x2', '|', '}', '\a', '$', '\x2', - '\x2', '}', '~', '\x3', '\x2', '\x2', '\x2', '~', '\x7F', '\b', '\x10', - '\x4', '\x2', '\x7F', '!', '\x3', '\x2', '\x2', '\x2', '\x80', '\x81', - '\a', '&', '\x2', '\x2', '\x81', '\x82', '\a', '\x66', '\x2', '\x2', '\x82', - '\x83', '\a', '\x63', '\x2', '\x2', '\x83', '\x84', '\a', 'v', '\x2', - '\x2', '\x84', '\x85', '\a', '\x63', '\x2', '\x2', '\x85', '#', '\x3', - '\x2', '\x2', '\x2', '\x86', '\x87', '\a', '&', '\x2', '\x2', '\x87', - '\x88', '\a', 'y', '\x2', '\x2', '\x88', '\x89', '\a', 'j', '\x2', '\x2', - '\x89', '\x8A', '\a', 'g', '\x2', '\x2', '\x8A', '\x8B', '\a', 'p', '\x2', - '\x2', '\x8B', '%', '\x3', '\x2', '\x2', '\x2', '\x8C', '\x8D', '\a', - '\x30', '\x2', '\x2', '\x8D', '\x93', '\x5', ',', '\x16', '\x2', '\x8E', - '\x8F', '\a', ']', '\x2', '\x2', '\x8F', '\x90', '\x5', '\x1A', '\r', - '\x2', '\x90', '\x91', '\a', '_', '\x2', '\x2', '\x91', '\x93', '\x3', - '\x2', '\x2', '\x2', '\x92', '\x8C', '\x3', '\x2', '\x2', '\x2', '\x92', - '\x8E', '\x3', '\x2', '\x2', '\x2', '\x93', '\x94', '\x3', '\x2', '\x2', - '\x2', '\x94', '\x92', '\x3', '\x2', '\x2', '\x2', '\x94', '\x95', '\x3', - '\x2', '\x2', '\x2', '\x95', '\x96', '\x3', '\x2', '\x2', '\x2', '\x96', - '\x97', '\a', '\x7F', '\x2', '\x2', '\x97', '\'', '\x3', '\x2', '\x2', - '\x2', '\x98', '\x99', '\a', '&', '\x2', '\x2', '\x99', '\x9A', '\a', - '}', '\x2', '\x2', '\x9A', '\x9E', '\x3', '\x2', '\x2', '\x2', '\x9B', - '\x9D', '\n', '\a', '\x2', '\x2', '\x9C', '\x9B', '\x3', '\x2', '\x2', - '\x2', '\x9D', '\xA0', '\x3', '\x2', '\x2', '\x2', '\x9E', '\x9F', '\x3', - '\x2', '\x2', '\x2', '\x9E', '\x9C', '\x3', '\x2', '\x2', '\x2', '\x9F', - '\xA1', '\x3', '\x2', '\x2', '\x2', '\xA0', '\x9E', '\x3', '\x2', '\x2', - '\x2', '\xA1', '\xA2', '\a', '\x7F', '\x2', '\x2', '\xA2', ')', '\x3', - '\x2', '\x2', '\x2', '\xA3', '\xA4', '\a', '&', '\x2', '\x2', '\xA4', - '\xA5', '\a', '}', '\x2', '\x2', '\xA5', '\xA6', '\a', '&', '\x2', '\x2', - '\xA6', '\xA7', '\a', 't', '\x2', '\x2', '\xA7', '\xA8', '\a', 'q', '\x2', - '\x2', '\xA8', '\xA9', '\a', 'q', '\x2', '\x2', '\xA9', '\xAA', '\a', - 'v', '\x2', '\x2', '\xAA', '\xAB', '\x3', '\x2', '\x2', '\x2', '\xAB', - '\xAC', '\x5', '&', '\x13', '\x2', '\xAC', '+', '\x3', '\x2', '\x2', '\x2', - '\xAD', '\xB0', '\x5', '.', '\x17', '\x2', '\xAE', '\xB0', '\x5', '\x34', - '\x1A', '\x2', '\xAF', '\xAD', '\x3', '\x2', '\x2', '\x2', '\xAF', '\xAE', - '\x3', '\x2', '\x2', '\x2', '\xB0', '\xB1', '\x3', '\x2', '\x2', '\x2', - '\xB1', '\xAF', '\x3', '\x2', '\x2', '\x2', '\xB1', '\xB2', '\x3', '\x2', - '\x2', '\x2', '\xB2', '\xB5', '\x3', '\x2', '\x2', '\x2', '\xB3', '\xB5', - '\a', '&', '\x2', '\x2', '\xB4', '\xAF', '\x3', '\x2', '\x2', '\x2', '\xB4', - '\xB3', '\x3', '\x2', '\x2', '\x2', '\xB5', '-', '\x3', '\x2', '\x2', - '\x2', '\xB6', '\xB9', '\a', '^', '\x2', '\x2', '\xB7', '\xBA', '\t', - '\b', '\x2', '\x2', '\xB8', '\xBA', '\x5', '\x30', '\x18', '\x2', '\xB9', - '\xB7', '\x3', '\x2', '\x2', '\x2', '\xB9', '\xB8', '\x3', '\x2', '\x2', - '\x2', '\xBA', '/', '\x3', '\x2', '\x2', '\x2', '\xBB', '\xBC', '\a', - 'w', '\x2', '\x2', '\xBC', '\xBD', '\x5', '\x32', '\x19', '\x2', '\xBD', - '\xBE', '\x5', '\x32', '\x19', '\x2', '\xBE', '\xBF', '\x5', '\x32', '\x19', - '\x2', '\xBF', '\xC0', '\x5', '\x32', '\x19', '\x2', '\xC0', '\x31', '\x3', - '\x2', '\x2', '\x2', '\xC1', '\xC2', '\t', '\t', '\x2', '\x2', '\xC2', - '\x33', '\x3', '\x2', '\x2', '\x2', '\xC3', '\xC4', '\n', '\n', '\x2', - '\x2', '\xC4', '\x35', '\x3', '\x2', '\x2', '\x2', '\x13', '\x2', '\x3', - 'W', '^', '`', '\x63', 'j', 'm', 'q', 'x', '\x92', '\x94', '\x9E', '\xAF', - '\xB1', '\xB4', '\xB9', '\x5', '\a', '\x3', '\x2', '\b', '\x2', '\x2', - '\x6', '\x2', '\x2', + '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', '\x3', '\x15', + '\x3', '\x16', '\x3', '\x16', '\x6', '\x16', '\xB1', '\n', '\x16', '\r', + '\x16', '\xE', '\x16', '\xB2', '\x3', '\x16', '\x5', '\x16', '\xB6', '\n', + '\x16', '\x3', '\x17', '\x3', '\x17', '\x3', '\x17', '\x5', '\x17', '\xBB', + '\n', '\x17', '\x3', '\x18', '\x3', '\x18', '\x3', '\x18', '\x3', '\x18', + '\x3', '\x18', '\x3', '\x18', '\x3', '\x19', '\x3', '\x19', '\x3', '\x1A', + '\x3', '\x1A', '\x3', '\x9F', '\x2', '\x1B', '\x4', '\x3', '\x6', '\x4', + '\b', '\x5', '\n', '\x6', '\f', '\a', '\xE', '\b', '\x10', '\t', '\x12', + '\n', '\x14', '\v', '\x16', '\f', '\x18', '\r', '\x1A', '\x2', '\x1C', + '\x2', '\x1E', '\xE', ' ', '\xF', '\"', '\x10', '$', '\x11', '&', '\x12', + '(', '\x13', '*', '\x14', ',', '\x15', '.', '\x2', '\x30', '\x2', '\x32', + '\x2', '\x34', '\x2', '\x4', '\x2', '\x3', '\v', '\x3', '\x2', '\x32', + ';', '\x3', '\x2', '\x33', ';', '\x4', '\x2', 'G', 'G', 'g', 'g', '\x4', + '\x2', '-', '-', '/', '/', '\x5', '\x2', '\v', '\f', '\xF', '\xF', '\"', + '\"', '\x3', '\x2', '$', '$', '\n', '\x2', '$', '$', '\x31', '\x31', '^', + '^', '\x64', '\x64', 'h', 'h', 'p', 'p', 't', 't', 'v', 'v', '\x5', '\x2', + '\x32', ';', '\x43', 'H', '\x63', 'h', '\x6', '\x2', '\x2', '!', '$', + '$', '&', '&', '^', '^', '\x2', '\xCE', '\x2', '\x4', '\x3', '\x2', '\x2', + '\x2', '\x2', '\x6', '\x3', '\x2', '\x2', '\x2', '\x2', '\b', '\x3', '\x2', + '\x2', '\x2', '\x2', '\n', '\x3', '\x2', '\x2', '\x2', '\x2', '\f', '\x3', + '\x2', '\x2', '\x2', '\x2', '\xE', '\x3', '\x2', '\x2', '\x2', '\x2', + '\x10', '\x3', '\x2', '\x2', '\x2', '\x2', '\x12', '\x3', '\x2', '\x2', + '\x2', '\x2', '\x14', '\x3', '\x2', '\x2', '\x2', '\x2', '\x16', '\x3', + '\x2', '\x2', '\x2', '\x2', '\x18', '\x3', '\x2', '\x2', '\x2', '\x2', + '\x1E', '\x3', '\x2', '\x2', '\x2', '\x3', ' ', '\x3', '\x2', '\x2', '\x2', + '\x3', '\"', '\x3', '\x2', '\x2', '\x2', '\x3', '$', '\x3', '\x2', '\x2', + '\x2', '\x3', '&', '\x3', '\x2', '\x2', '\x2', '\x3', '(', '\x3', '\x2', + '\x2', '\x2', '\x3', '*', '\x3', '\x2', '\x2', '\x2', '\x3', ',', '\x3', + '\x2', '\x2', '\x2', '\x4', '\x36', '\x3', '\x2', '\x2', '\x2', '\x6', + '\x38', '\x3', '\x2', '\x2', '\x2', '\b', ':', '\x3', '\x2', '\x2', '\x2', + '\n', '<', '\x3', '\x2', '\x2', '\x2', '\f', '>', '\x3', '\x2', '\x2', + '\x2', '\xE', '@', '\x3', '\x2', '\x2', '\x2', '\x10', '\x42', '\x3', + '\x2', '\x2', '\x2', '\x12', 'G', '\x3', '\x2', '\x2', '\x2', '\x14', + 'M', '\x3', '\x2', '\x2', '\x2', '\x16', 'R', '\x3', '\x2', '\x2', '\x2', + '\x18', 'W', '\x3', '\x2', '\x2', '\x2', '\x1A', 'm', '\x3', '\x2', '\x2', + '\x2', '\x1C', 'o', '\x3', '\x2', '\x2', '\x2', '\x1E', 'v', '\x3', '\x2', + '\x2', '\x2', ' ', '|', '\x3', '\x2', '\x2', '\x2', '\"', '\x80', '\x3', + '\x2', '\x2', '\x2', '$', '\x86', '\x3', '\x2', '\x2', '\x2', '&', '\x92', + '\x3', '\x2', '\x2', '\x2', '(', '\x98', '\x3', '\x2', '\x2', '\x2', '*', + '\xA4', '\x3', '\x2', '\x2', '\x2', ',', '\xB5', '\x3', '\x2', '\x2', + '\x2', '.', '\xB7', '\x3', '\x2', '\x2', '\x2', '\x30', '\xBC', '\x3', + '\x2', '\x2', '\x2', '\x32', '\xC2', '\x3', '\x2', '\x2', '\x2', '\x34', + '\xC4', '\x3', '\x2', '\x2', '\x2', '\x36', '\x37', '\a', '.', '\x2', + '\x2', '\x37', '\x5', '\x3', '\x2', '\x2', '\x2', '\x38', '\x39', '\a', + '<', '\x2', '\x2', '\x39', '\a', '\x3', '\x2', '\x2', '\x2', ':', ';', + '\a', '}', '\x2', '\x2', ';', '\t', '\x3', '\x2', '\x2', '\x2', '<', '=', + '\a', '\x7F', '\x2', '\x2', '=', '\v', '\x3', '\x2', '\x2', '\x2', '>', + '?', '\a', ']', '\x2', '\x2', '?', '\r', '\x3', '\x2', '\x2', '\x2', '@', + '\x41', '\a', '_', '\x2', '\x2', '\x41', '\xF', '\x3', '\x2', '\x2', '\x2', + '\x42', '\x43', '\a', 'v', '\x2', '\x2', '\x43', '\x44', '\a', 't', '\x2', + '\x2', '\x44', '\x45', '\a', 'w', '\x2', '\x2', '\x45', '\x46', '\a', + 'g', '\x2', '\x2', '\x46', '\x11', '\x3', '\x2', '\x2', '\x2', 'G', 'H', + '\a', 'h', '\x2', '\x2', 'H', 'I', '\a', '\x63', '\x2', '\x2', 'I', 'J', + '\a', 'n', '\x2', '\x2', 'J', 'K', '\a', 'u', '\x2', '\x2', 'K', 'L', + '\a', 'g', '\x2', '\x2', 'L', '\x13', '\x3', '\x2', '\x2', '\x2', 'M', + 'N', '\a', 'p', '\x2', '\x2', 'N', 'O', '\a', 'w', '\x2', '\x2', 'O', + 'P', '\a', 'n', '\x2', '\x2', 'P', 'Q', '\a', 'n', '\x2', '\x2', 'Q', + '\x15', '\x3', '\x2', '\x2', '\x2', 'R', 'S', '\a', '$', '\x2', '\x2', + 'S', 'T', '\x3', '\x2', '\x2', '\x2', 'T', 'U', '\b', '\v', '\x2', '\x2', + 'U', '\x17', '\x3', '\x2', '\x2', '\x2', 'V', 'X', '\a', '/', '\x2', '\x2', + 'W', 'V', '\x3', '\x2', '\x2', '\x2', 'W', 'X', '\x3', '\x2', '\x2', '\x2', + 'X', 'Y', '\x3', '\x2', '\x2', '\x2', 'Y', '`', '\x5', '\x1A', '\r', '\x2', + 'Z', '\\', '\a', '\x30', '\x2', '\x2', '[', ']', '\t', '\x2', '\x2', '\x2', + '\\', '[', '\x3', '\x2', '\x2', '\x2', ']', '^', '\x3', '\x2', '\x2', + '\x2', '^', '\\', '\x3', '\x2', '\x2', '\x2', '^', '_', '\x3', '\x2', + '\x2', '\x2', '_', '\x61', '\x3', '\x2', '\x2', '\x2', '`', 'Z', '\x3', + '\x2', '\x2', '\x2', '`', '\x61', '\x3', '\x2', '\x2', '\x2', '\x61', + '\x63', '\x3', '\x2', '\x2', '\x2', '\x62', '\x64', '\x5', '\x1C', '\xE', + '\x2', '\x63', '\x62', '\x3', '\x2', '\x2', '\x2', '\x63', '\x64', '\x3', + '\x2', '\x2', '\x2', '\x64', '\x19', '\x3', '\x2', '\x2', '\x2', '\x65', + 'n', '\a', '\x32', '\x2', '\x2', '\x66', 'j', '\t', '\x3', '\x2', '\x2', + 'g', 'i', '\t', '\x2', '\x2', '\x2', 'h', 'g', '\x3', '\x2', '\x2', '\x2', + 'i', 'l', '\x3', '\x2', '\x2', '\x2', 'j', 'h', '\x3', '\x2', '\x2', '\x2', + 'j', 'k', '\x3', '\x2', '\x2', '\x2', 'k', 'n', '\x3', '\x2', '\x2', '\x2', + 'l', 'j', '\x3', '\x2', '\x2', '\x2', 'm', '\x65', '\x3', '\x2', '\x2', + '\x2', 'm', '\x66', '\x3', '\x2', '\x2', '\x2', 'n', '\x1B', '\x3', '\x2', + '\x2', '\x2', 'o', 'q', '\t', '\x4', '\x2', '\x2', 'p', 'r', '\t', '\x5', + '\x2', '\x2', 'q', 'p', '\x3', '\x2', '\x2', '\x2', 'q', 'r', '\x3', '\x2', + '\x2', '\x2', 'r', 's', '\x3', '\x2', '\x2', '\x2', 's', 't', '\x5', '\x1A', + '\r', '\x2', 't', '\x1D', '\x3', '\x2', '\x2', '\x2', 'u', 'w', '\t', + '\x6', '\x2', '\x2', 'v', 'u', '\x3', '\x2', '\x2', '\x2', 'w', 'x', '\x3', + '\x2', '\x2', '\x2', 'x', 'v', '\x3', '\x2', '\x2', '\x2', 'x', 'y', '\x3', + '\x2', '\x2', '\x2', 'y', 'z', '\x3', '\x2', '\x2', '\x2', 'z', '{', '\b', + '\xF', '\x3', '\x2', '{', '\x1F', '\x3', '\x2', '\x2', '\x2', '|', '}', + '\a', '$', '\x2', '\x2', '}', '~', '\x3', '\x2', '\x2', '\x2', '~', '\x7F', + '\b', '\x10', '\x4', '\x2', '\x7F', '!', '\x3', '\x2', '\x2', '\x2', '\x80', + '\x81', '\a', '&', '\x2', '\x2', '\x81', '\x82', '\a', '\x66', '\x2', + '\x2', '\x82', '\x83', '\a', '\x63', '\x2', '\x2', '\x83', '\x84', '\a', + 'v', '\x2', '\x2', '\x84', '\x85', '\a', '\x63', '\x2', '\x2', '\x85', + '#', '\x3', '\x2', '\x2', '\x2', '\x86', '\x87', '\a', '&', '\x2', '\x2', + '\x87', '\x88', '\a', 'y', '\x2', '\x2', '\x88', '\x89', '\a', 'j', '\x2', + '\x2', '\x89', '\x8A', '\a', 'g', '\x2', '\x2', '\x8A', '\x8B', '\a', + 'p', '\x2', '\x2', '\x8B', '%', '\x3', '\x2', '\x2', '\x2', '\x8C', '\x8D', + '\a', '\x30', '\x2', '\x2', '\x8D', '\x93', '\x5', ',', '\x16', '\x2', + '\x8E', '\x8F', '\a', ']', '\x2', '\x2', '\x8F', '\x90', '\x5', '\x1A', + '\r', '\x2', '\x90', '\x91', '\a', '_', '\x2', '\x2', '\x91', '\x93', + '\x3', '\x2', '\x2', '\x2', '\x92', '\x8C', '\x3', '\x2', '\x2', '\x2', + '\x92', '\x8E', '\x3', '\x2', '\x2', '\x2', '\x93', '\x94', '\x3', '\x2', + '\x2', '\x2', '\x94', '\x92', '\x3', '\x2', '\x2', '\x2', '\x94', '\x95', + '\x3', '\x2', '\x2', '\x2', '\x95', '\x96', '\x3', '\x2', '\x2', '\x2', + '\x96', '\x97', '\a', '\x7F', '\x2', '\x2', '\x97', '\'', '\x3', '\x2', + '\x2', '\x2', '\x98', '\x99', '\a', '&', '\x2', '\x2', '\x99', '\x9A', + '\a', '}', '\x2', '\x2', '\x9A', '\x9F', '\x3', '\x2', '\x2', '\x2', '\x9B', + '\x9E', '\n', '\a', '\x2', '\x2', '\x9C', '\x9E', '\x5', '.', '\x17', + '\x2', '\x9D', '\x9B', '\x3', '\x2', '\x2', '\x2', '\x9D', '\x9C', '\x3', + '\x2', '\x2', '\x2', '\x9E', '\xA1', '\x3', '\x2', '\x2', '\x2', '\x9F', + '\xA0', '\x3', '\x2', '\x2', '\x2', '\x9F', '\x9D', '\x3', '\x2', '\x2', + '\x2', '\xA0', '\xA2', '\x3', '\x2', '\x2', '\x2', '\xA1', '\x9F', '\x3', + '\x2', '\x2', '\x2', '\xA2', '\xA3', '\a', '\x7F', '\x2', '\x2', '\xA3', + ')', '\x3', '\x2', '\x2', '\x2', '\xA4', '\xA5', '\a', '&', '\x2', '\x2', + '\xA5', '\xA6', '\a', '}', '\x2', '\x2', '\xA6', '\xA7', '\a', '&', '\x2', + '\x2', '\xA7', '\xA8', '\a', 't', '\x2', '\x2', '\xA8', '\xA9', '\a', + 'q', '\x2', '\x2', '\xA9', '\xAA', '\a', 'q', '\x2', '\x2', '\xAA', '\xAB', + '\a', 'v', '\x2', '\x2', '\xAB', '\xAC', '\x3', '\x2', '\x2', '\x2', '\xAC', + '\xAD', '\x5', '&', '\x13', '\x2', '\xAD', '+', '\x3', '\x2', '\x2', '\x2', + '\xAE', '\xB1', '\x5', '.', '\x17', '\x2', '\xAF', '\xB1', '\x5', '\x34', + '\x1A', '\x2', '\xB0', '\xAE', '\x3', '\x2', '\x2', '\x2', '\xB0', '\xAF', + '\x3', '\x2', '\x2', '\x2', '\xB1', '\xB2', '\x3', '\x2', '\x2', '\x2', + '\xB2', '\xB0', '\x3', '\x2', '\x2', '\x2', '\xB2', '\xB3', '\x3', '\x2', + '\x2', '\x2', '\xB3', '\xB6', '\x3', '\x2', '\x2', '\x2', '\xB4', '\xB6', + '\a', '&', '\x2', '\x2', '\xB5', '\xB0', '\x3', '\x2', '\x2', '\x2', '\xB5', + '\xB4', '\x3', '\x2', '\x2', '\x2', '\xB6', '-', '\x3', '\x2', '\x2', + '\x2', '\xB7', '\xBA', '\a', '^', '\x2', '\x2', '\xB8', '\xBB', '\t', + '\b', '\x2', '\x2', '\xB9', '\xBB', '\x5', '\x30', '\x18', '\x2', '\xBA', + '\xB8', '\x3', '\x2', '\x2', '\x2', '\xBA', '\xB9', '\x3', '\x2', '\x2', + '\x2', '\xBB', '/', '\x3', '\x2', '\x2', '\x2', '\xBC', '\xBD', '\a', + 'w', '\x2', '\x2', '\xBD', '\xBE', '\x5', '\x32', '\x19', '\x2', '\xBE', + '\xBF', '\x5', '\x32', '\x19', '\x2', '\xBF', '\xC0', '\x5', '\x32', '\x19', + '\x2', '\xC0', '\xC1', '\x5', '\x32', '\x19', '\x2', '\xC1', '\x31', '\x3', + '\x2', '\x2', '\x2', '\xC2', '\xC3', '\t', '\t', '\x2', '\x2', '\xC3', + '\x33', '\x3', '\x2', '\x2', '\x2', '\xC4', '\xC5', '\n', '\n', '\x2', + '\x2', '\xC5', '\x35', '\x3', '\x2', '\x2', '\x2', '\x14', '\x2', '\x3', + 'W', '^', '`', '\x63', 'j', 'm', 'q', 'x', '\x92', '\x94', '\x9D', '\x9F', + '\xB0', '\xB2', '\xB5', '\xBA', '\x5', '\a', '\x3', '\x2', '\b', '\x2', + '\x2', '\x6', '\x2', '\x2', }; public static readonly ATN _ATN = diff --git a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.g4 b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.g4 index 196b240f83..9938eda350 100644 --- a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.g4 +++ b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.g4 @@ -62,7 +62,7 @@ JPATH ; TEMPLATELITERAL - : '${' ~ ["]*? '}' + : '${' (~ ["] | ESC )*? '}' ; TEMPLATEROOT diff --git a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.interp b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.interp index 8e022de4b3..c3644ceb8b 100644 --- a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.interp +++ b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateLexer.interp @@ -78,4 +78,4 @@ DEFAULT_MODE INSIDE atn: -[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 21, 197, 8, 1, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 5, 12, 88, 10, 12, 3, 12, 3, 12, 3, 12, 6, 12, 93, 10, 12, 13, 12, 14, 12, 94, 5, 12, 97, 10, 12, 3, 12, 5, 12, 100, 10, 12, 3, 13, 3, 13, 3, 13, 7, 13, 105, 10, 13, 12, 13, 14, 13, 108, 11, 13, 5, 13, 110, 10, 13, 3, 14, 3, 14, 5, 14, 114, 10, 14, 3, 14, 3, 14, 3, 15, 6, 15, 119, 10, 15, 13, 15, 14, 15, 120, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 6, 19, 147, 10, 19, 13, 19, 14, 19, 148, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 157, 10, 20, 12, 20, 14, 20, 160, 11, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 6, 22, 176, 10, 22, 13, 22, 14, 22, 177, 3, 22, 5, 22, 181, 10, 22, 3, 23, 3, 23, 3, 23, 5, 23, 186, 10, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 26, 3, 26, 3, 158, 2, 27, 4, 3, 6, 4, 8, 5, 10, 6, 12, 7, 14, 8, 16, 9, 18, 10, 20, 11, 22, 12, 24, 13, 26, 2, 28, 2, 30, 14, 32, 15, 34, 16, 36, 17, 38, 18, 40, 19, 42, 20, 44, 21, 46, 2, 48, 2, 50, 2, 52, 2, 4, 2, 3, 11, 3, 2, 50, 59, 3, 2, 51, 59, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 5, 2, 11, 12, 15, 15, 34, 34, 3, 2, 36, 36, 10, 2, 36, 36, 49, 49, 94, 94, 100, 100, 104, 104, 112, 112, 116, 116, 118, 118, 5, 2, 50, 59, 67, 72, 99, 104, 6, 2, 2, 33, 36, 36, 38, 38, 94, 94, 2, 204, 2, 4, 3, 2, 2, 2, 2, 6, 3, 2, 2, 2, 2, 8, 3, 2, 2, 2, 2, 10, 3, 2, 2, 2, 2, 12, 3, 2, 2, 2, 2, 14, 3, 2, 2, 2, 2, 16, 3, 2, 2, 2, 2, 18, 3, 2, 2, 2, 2, 20, 3, 2, 2, 2, 2, 22, 3, 2, 2, 2, 2, 24, 3, 2, 2, 2, 2, 30, 3, 2, 2, 2, 3, 32, 3, 2, 2, 2, 3, 34, 3, 2, 2, 2, 3, 36, 3, 2, 2, 2, 3, 38, 3, 2, 2, 2, 3, 40, 3, 2, 2, 2, 3, 42, 3, 2, 2, 2, 3, 44, 3, 2, 2, 2, 4, 54, 3, 2, 2, 2, 6, 56, 3, 2, 2, 2, 8, 58, 3, 2, 2, 2, 10, 60, 3, 2, 2, 2, 12, 62, 3, 2, 2, 2, 14, 64, 3, 2, 2, 2, 16, 66, 3, 2, 2, 2, 18, 71, 3, 2, 2, 2, 20, 77, 3, 2, 2, 2, 22, 82, 3, 2, 2, 2, 24, 87, 3, 2, 2, 2, 26, 109, 3, 2, 2, 2, 28, 111, 3, 2, 2, 2, 30, 118, 3, 2, 2, 2, 32, 124, 3, 2, 2, 2, 34, 128, 3, 2, 2, 2, 36, 134, 3, 2, 2, 2, 38, 146, 3, 2, 2, 2, 40, 152, 3, 2, 2, 2, 42, 163, 3, 2, 2, 2, 44, 180, 3, 2, 2, 2, 46, 182, 3, 2, 2, 2, 48, 187, 3, 2, 2, 2, 50, 193, 3, 2, 2, 2, 52, 195, 3, 2, 2, 2, 54, 55, 7, 46, 2, 2, 55, 5, 3, 2, 2, 2, 56, 57, 7, 60, 2, 2, 57, 7, 3, 2, 2, 2, 58, 59, 7, 125, 2, 2, 59, 9, 3, 2, 2, 2, 60, 61, 7, 127, 2, 2, 61, 11, 3, 2, 2, 2, 62, 63, 7, 93, 2, 2, 63, 13, 3, 2, 2, 2, 64, 65, 7, 95, 2, 2, 65, 15, 3, 2, 2, 2, 66, 67, 7, 118, 2, 2, 67, 68, 7, 116, 2, 2, 68, 69, 7, 119, 2, 2, 69, 70, 7, 103, 2, 2, 70, 17, 3, 2, 2, 2, 71, 72, 7, 104, 2, 2, 72, 73, 7, 99, 2, 2, 73, 74, 7, 110, 2, 2, 74, 75, 7, 117, 2, 2, 75, 76, 7, 103, 2, 2, 76, 19, 3, 2, 2, 2, 77, 78, 7, 112, 2, 2, 78, 79, 7, 119, 2, 2, 79, 80, 7, 110, 2, 2, 80, 81, 7, 110, 2, 2, 81, 21, 3, 2, 2, 2, 82, 83, 7, 36, 2, 2, 83, 84, 3, 2, 2, 2, 84, 85, 8, 11, 2, 2, 85, 23, 3, 2, 2, 2, 86, 88, 7, 47, 2, 2, 87, 86, 3, 2, 2, 2, 87, 88, 3, 2, 2, 2, 88, 89, 3, 2, 2, 2, 89, 96, 5, 26, 13, 2, 90, 92, 7, 48, 2, 2, 91, 93, 9, 2, 2, 2, 92, 91, 3, 2, 2, 2, 93, 94, 3, 2, 2, 2, 94, 92, 3, 2, 2, 2, 94, 95, 3, 2, 2, 2, 95, 97, 3, 2, 2, 2, 96, 90, 3, 2, 2, 2, 96, 97, 3, 2, 2, 2, 97, 99, 3, 2, 2, 2, 98, 100, 5, 28, 14, 2, 99, 98, 3, 2, 2, 2, 99, 100, 3, 2, 2, 2, 100, 25, 3, 2, 2, 2, 101, 110, 7, 50, 2, 2, 102, 106, 9, 3, 2, 2, 103, 105, 9, 2, 2, 2, 104, 103, 3, 2, 2, 2, 105, 108, 3, 2, 2, 2, 106, 104, 3, 2, 2, 2, 106, 107, 3, 2, 2, 2, 107, 110, 3, 2, 2, 2, 108, 106, 3, 2, 2, 2, 109, 101, 3, 2, 2, 2, 109, 102, 3, 2, 2, 2, 110, 27, 3, 2, 2, 2, 111, 113, 9, 4, 2, 2, 112, 114, 9, 5, 2, 2, 113, 112, 3, 2, 2, 2, 113, 114, 3, 2, 2, 2, 114, 115, 3, 2, 2, 2, 115, 116, 5, 26, 13, 2, 116, 29, 3, 2, 2, 2, 117, 119, 9, 6, 2, 2, 118, 117, 3, 2, 2, 2, 119, 120, 3, 2, 2, 2, 120, 118, 3, 2, 2, 2, 120, 121, 3, 2, 2, 2, 121, 122, 3, 2, 2, 2, 122, 123, 8, 15, 3, 2, 123, 31, 3, 2, 2, 2, 124, 125, 7, 36, 2, 2, 125, 126, 3, 2, 2, 2, 126, 127, 8, 16, 4, 2, 127, 33, 3, 2, 2, 2, 128, 129, 7, 38, 2, 2, 129, 130, 7, 102, 2, 2, 130, 131, 7, 99, 2, 2, 131, 132, 7, 118, 2, 2, 132, 133, 7, 99, 2, 2, 133, 35, 3, 2, 2, 2, 134, 135, 7, 38, 2, 2, 135, 136, 7, 121, 2, 2, 136, 137, 7, 106, 2, 2, 137, 138, 7, 103, 2, 2, 138, 139, 7, 112, 2, 2, 139, 37, 3, 2, 2, 2, 140, 141, 7, 48, 2, 2, 141, 147, 5, 44, 22, 2, 142, 143, 7, 93, 2, 2, 143, 144, 5, 26, 13, 2, 144, 145, 7, 95, 2, 2, 145, 147, 3, 2, 2, 2, 146, 140, 3, 2, 2, 2, 146, 142, 3, 2, 2, 2, 147, 148, 3, 2, 2, 2, 148, 146, 3, 2, 2, 2, 148, 149, 3, 2, 2, 2, 149, 150, 3, 2, 2, 2, 150, 151, 7, 127, 2, 2, 151, 39, 3, 2, 2, 2, 152, 153, 7, 38, 2, 2, 153, 154, 7, 125, 2, 2, 154, 158, 3, 2, 2, 2, 155, 157, 10, 7, 2, 2, 156, 155, 3, 2, 2, 2, 157, 160, 3, 2, 2, 2, 158, 159, 3, 2, 2, 2, 158, 156, 3, 2, 2, 2, 159, 161, 3, 2, 2, 2, 160, 158, 3, 2, 2, 2, 161, 162, 7, 127, 2, 2, 162, 41, 3, 2, 2, 2, 163, 164, 7, 38, 2, 2, 164, 165, 7, 125, 2, 2, 165, 166, 7, 38, 2, 2, 166, 167, 7, 116, 2, 2, 167, 168, 7, 113, 2, 2, 168, 169, 7, 113, 2, 2, 169, 170, 7, 118, 2, 2, 170, 171, 3, 2, 2, 2, 171, 172, 5, 38, 19, 2, 172, 43, 3, 2, 2, 2, 173, 176, 5, 46, 23, 2, 174, 176, 5, 52, 26, 2, 175, 173, 3, 2, 2, 2, 175, 174, 3, 2, 2, 2, 176, 177, 3, 2, 2, 2, 177, 175, 3, 2, 2, 2, 177, 178, 3, 2, 2, 2, 178, 181, 3, 2, 2, 2, 179, 181, 7, 38, 2, 2, 180, 175, 3, 2, 2, 2, 180, 179, 3, 2, 2, 2, 181, 45, 3, 2, 2, 2, 182, 185, 7, 94, 2, 2, 183, 186, 9, 8, 2, 2, 184, 186, 5, 48, 24, 2, 185, 183, 3, 2, 2, 2, 185, 184, 3, 2, 2, 2, 186, 47, 3, 2, 2, 2, 187, 188, 7, 119, 2, 2, 188, 189, 5, 50, 25, 2, 189, 190, 5, 50, 25, 2, 190, 191, 5, 50, 25, 2, 191, 192, 5, 50, 25, 2, 192, 49, 3, 2, 2, 2, 193, 194, 9, 9, 2, 2, 194, 51, 3, 2, 2, 2, 195, 196, 10, 10, 2, 2, 196, 53, 3, 2, 2, 2, 19, 2, 3, 87, 94, 96, 99, 106, 109, 113, 120, 146, 148, 158, 175, 177, 180, 185, 5, 7, 3, 2, 8, 2, 2, 6, 2, 2] \ No newline at end of file +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 21, 198, 8, 1, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 5, 12, 88, 10, 12, 3, 12, 3, 12, 3, 12, 6, 12, 93, 10, 12, 13, 12, 14, 12, 94, 5, 12, 97, 10, 12, 3, 12, 5, 12, 100, 10, 12, 3, 13, 3, 13, 3, 13, 7, 13, 105, 10, 13, 12, 13, 14, 13, 108, 11, 13, 5, 13, 110, 10, 13, 3, 14, 3, 14, 5, 14, 114, 10, 14, 3, 14, 3, 14, 3, 15, 6, 15, 119, 10, 15, 13, 15, 14, 15, 120, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 6, 19, 147, 10, 19, 13, 19, 14, 19, 148, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 158, 10, 20, 12, 20, 14, 20, 161, 11, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 6, 22, 177, 10, 22, 13, 22, 14, 22, 178, 3, 22, 5, 22, 182, 10, 22, 3, 23, 3, 23, 3, 23, 5, 23, 187, 10, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 26, 3, 26, 3, 159, 2, 27, 4, 3, 6, 4, 8, 5, 10, 6, 12, 7, 14, 8, 16, 9, 18, 10, 20, 11, 22, 12, 24, 13, 26, 2, 28, 2, 30, 14, 32, 15, 34, 16, 36, 17, 38, 18, 40, 19, 42, 20, 44, 21, 46, 2, 48, 2, 50, 2, 52, 2, 4, 2, 3, 11, 3, 2, 50, 59, 3, 2, 51, 59, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 5, 2, 11, 12, 15, 15, 34, 34, 3, 2, 36, 36, 10, 2, 36, 36, 49, 49, 94, 94, 100, 100, 104, 104, 112, 112, 116, 116, 118, 118, 5, 2, 50, 59, 67, 72, 99, 104, 6, 2, 2, 33, 36, 36, 38, 38, 94, 94, 2, 206, 2, 4, 3, 2, 2, 2, 2, 6, 3, 2, 2, 2, 2, 8, 3, 2, 2, 2, 2, 10, 3, 2, 2, 2, 2, 12, 3, 2, 2, 2, 2, 14, 3, 2, 2, 2, 2, 16, 3, 2, 2, 2, 2, 18, 3, 2, 2, 2, 2, 20, 3, 2, 2, 2, 2, 22, 3, 2, 2, 2, 2, 24, 3, 2, 2, 2, 2, 30, 3, 2, 2, 2, 3, 32, 3, 2, 2, 2, 3, 34, 3, 2, 2, 2, 3, 36, 3, 2, 2, 2, 3, 38, 3, 2, 2, 2, 3, 40, 3, 2, 2, 2, 3, 42, 3, 2, 2, 2, 3, 44, 3, 2, 2, 2, 4, 54, 3, 2, 2, 2, 6, 56, 3, 2, 2, 2, 8, 58, 3, 2, 2, 2, 10, 60, 3, 2, 2, 2, 12, 62, 3, 2, 2, 2, 14, 64, 3, 2, 2, 2, 16, 66, 3, 2, 2, 2, 18, 71, 3, 2, 2, 2, 20, 77, 3, 2, 2, 2, 22, 82, 3, 2, 2, 2, 24, 87, 3, 2, 2, 2, 26, 109, 3, 2, 2, 2, 28, 111, 3, 2, 2, 2, 30, 118, 3, 2, 2, 2, 32, 124, 3, 2, 2, 2, 34, 128, 3, 2, 2, 2, 36, 134, 3, 2, 2, 2, 38, 146, 3, 2, 2, 2, 40, 152, 3, 2, 2, 2, 42, 164, 3, 2, 2, 2, 44, 181, 3, 2, 2, 2, 46, 183, 3, 2, 2, 2, 48, 188, 3, 2, 2, 2, 50, 194, 3, 2, 2, 2, 52, 196, 3, 2, 2, 2, 54, 55, 7, 46, 2, 2, 55, 5, 3, 2, 2, 2, 56, 57, 7, 60, 2, 2, 57, 7, 3, 2, 2, 2, 58, 59, 7, 125, 2, 2, 59, 9, 3, 2, 2, 2, 60, 61, 7, 127, 2, 2, 61, 11, 3, 2, 2, 2, 62, 63, 7, 93, 2, 2, 63, 13, 3, 2, 2, 2, 64, 65, 7, 95, 2, 2, 65, 15, 3, 2, 2, 2, 66, 67, 7, 118, 2, 2, 67, 68, 7, 116, 2, 2, 68, 69, 7, 119, 2, 2, 69, 70, 7, 103, 2, 2, 70, 17, 3, 2, 2, 2, 71, 72, 7, 104, 2, 2, 72, 73, 7, 99, 2, 2, 73, 74, 7, 110, 2, 2, 74, 75, 7, 117, 2, 2, 75, 76, 7, 103, 2, 2, 76, 19, 3, 2, 2, 2, 77, 78, 7, 112, 2, 2, 78, 79, 7, 119, 2, 2, 79, 80, 7, 110, 2, 2, 80, 81, 7, 110, 2, 2, 81, 21, 3, 2, 2, 2, 82, 83, 7, 36, 2, 2, 83, 84, 3, 2, 2, 2, 84, 85, 8, 11, 2, 2, 85, 23, 3, 2, 2, 2, 86, 88, 7, 47, 2, 2, 87, 86, 3, 2, 2, 2, 87, 88, 3, 2, 2, 2, 88, 89, 3, 2, 2, 2, 89, 96, 5, 26, 13, 2, 90, 92, 7, 48, 2, 2, 91, 93, 9, 2, 2, 2, 92, 91, 3, 2, 2, 2, 93, 94, 3, 2, 2, 2, 94, 92, 3, 2, 2, 2, 94, 95, 3, 2, 2, 2, 95, 97, 3, 2, 2, 2, 96, 90, 3, 2, 2, 2, 96, 97, 3, 2, 2, 2, 97, 99, 3, 2, 2, 2, 98, 100, 5, 28, 14, 2, 99, 98, 3, 2, 2, 2, 99, 100, 3, 2, 2, 2, 100, 25, 3, 2, 2, 2, 101, 110, 7, 50, 2, 2, 102, 106, 9, 3, 2, 2, 103, 105, 9, 2, 2, 2, 104, 103, 3, 2, 2, 2, 105, 108, 3, 2, 2, 2, 106, 104, 3, 2, 2, 2, 106, 107, 3, 2, 2, 2, 107, 110, 3, 2, 2, 2, 108, 106, 3, 2, 2, 2, 109, 101, 3, 2, 2, 2, 109, 102, 3, 2, 2, 2, 110, 27, 3, 2, 2, 2, 111, 113, 9, 4, 2, 2, 112, 114, 9, 5, 2, 2, 113, 112, 3, 2, 2, 2, 113, 114, 3, 2, 2, 2, 114, 115, 3, 2, 2, 2, 115, 116, 5, 26, 13, 2, 116, 29, 3, 2, 2, 2, 117, 119, 9, 6, 2, 2, 118, 117, 3, 2, 2, 2, 119, 120, 3, 2, 2, 2, 120, 118, 3, 2, 2, 2, 120, 121, 3, 2, 2, 2, 121, 122, 3, 2, 2, 2, 122, 123, 8, 15, 3, 2, 123, 31, 3, 2, 2, 2, 124, 125, 7, 36, 2, 2, 125, 126, 3, 2, 2, 2, 126, 127, 8, 16, 4, 2, 127, 33, 3, 2, 2, 2, 128, 129, 7, 38, 2, 2, 129, 130, 7, 102, 2, 2, 130, 131, 7, 99, 2, 2, 131, 132, 7, 118, 2, 2, 132, 133, 7, 99, 2, 2, 133, 35, 3, 2, 2, 2, 134, 135, 7, 38, 2, 2, 135, 136, 7, 121, 2, 2, 136, 137, 7, 106, 2, 2, 137, 138, 7, 103, 2, 2, 138, 139, 7, 112, 2, 2, 139, 37, 3, 2, 2, 2, 140, 141, 7, 48, 2, 2, 141, 147, 5, 44, 22, 2, 142, 143, 7, 93, 2, 2, 143, 144, 5, 26, 13, 2, 144, 145, 7, 95, 2, 2, 145, 147, 3, 2, 2, 2, 146, 140, 3, 2, 2, 2, 146, 142, 3, 2, 2, 2, 147, 148, 3, 2, 2, 2, 148, 146, 3, 2, 2, 2, 148, 149, 3, 2, 2, 2, 149, 150, 3, 2, 2, 2, 150, 151, 7, 127, 2, 2, 151, 39, 3, 2, 2, 2, 152, 153, 7, 38, 2, 2, 153, 154, 7, 125, 2, 2, 154, 159, 3, 2, 2, 2, 155, 158, 10, 7, 2, 2, 156, 158, 5, 46, 23, 2, 157, 155, 3, 2, 2, 2, 157, 156, 3, 2, 2, 2, 158, 161, 3, 2, 2, 2, 159, 160, 3, 2, 2, 2, 159, 157, 3, 2, 2, 2, 160, 162, 3, 2, 2, 2, 161, 159, 3, 2, 2, 2, 162, 163, 7, 127, 2, 2, 163, 41, 3, 2, 2, 2, 164, 165, 7, 38, 2, 2, 165, 166, 7, 125, 2, 2, 166, 167, 7, 38, 2, 2, 167, 168, 7, 116, 2, 2, 168, 169, 7, 113, 2, 2, 169, 170, 7, 113, 2, 2, 170, 171, 7, 118, 2, 2, 171, 172, 3, 2, 2, 2, 172, 173, 5, 38, 19, 2, 173, 43, 3, 2, 2, 2, 174, 177, 5, 46, 23, 2, 175, 177, 5, 52, 26, 2, 176, 174, 3, 2, 2, 2, 176, 175, 3, 2, 2, 2, 177, 178, 3, 2, 2, 2, 178, 176, 3, 2, 2, 2, 178, 179, 3, 2, 2, 2, 179, 182, 3, 2, 2, 2, 180, 182, 7, 38, 2, 2, 181, 176, 3, 2, 2, 2, 181, 180, 3, 2, 2, 2, 182, 45, 3, 2, 2, 2, 183, 186, 7, 94, 2, 2, 184, 187, 9, 8, 2, 2, 185, 187, 5, 48, 24, 2, 186, 184, 3, 2, 2, 2, 186, 185, 3, 2, 2, 2, 187, 47, 3, 2, 2, 2, 188, 189, 7, 119, 2, 2, 189, 190, 5, 50, 25, 2, 190, 191, 5, 50, 25, 2, 191, 192, 5, 50, 25, 2, 192, 193, 5, 50, 25, 2, 193, 49, 3, 2, 2, 2, 194, 195, 9, 9, 2, 2, 195, 51, 3, 2, 2, 2, 196, 197, 10, 10, 2, 2, 197, 53, 3, 2, 2, 2, 20, 2, 3, 87, 94, 96, 99, 106, 109, 113, 120, 146, 148, 157, 159, 176, 178, 181, 186, 5, 7, 3, 2, 8, 2, 2, 6, 2, 2] \ No newline at end of file diff --git a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateVisitor.cs b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateVisitor.cs index decbedec11..a821a3ea7b 100644 --- a/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateVisitor.cs +++ b/source/dotnet/Library/AdaptiveCards.Templating/AdaptiveCardsTemplateVisitor.cs @@ -11,6 +11,7 @@ using System.Collections.Generic; using System.IO; using System.Text; +using System.Text.RegularExpressions; namespace AdaptiveCards.Templating { @@ -575,8 +576,7 @@ public AdaptiveCardsTemplateResult ExpandTemplatedString(ITerminalNode node, boo if (HasDataContext()) { DataContext currentDataContext = GetCurrentDataContext(); - string templateString = node.GetText(); - return new AdaptiveCardsTemplateResult(Expand(templateString, currentDataContext.AELMemory, isExpanded, options)); + return new AdaptiveCardsTemplateResult(Expand(Regex.Unescape(node.GetText()), currentDataContext.AELMemory, isExpanded, options)); } return new AdaptiveCardsTemplateResult(node.GetText()); @@ -708,7 +708,7 @@ public override AdaptiveCardsTemplateResult VisitArray([NotNull] AdaptiveCardsTe /// true if predicate is evaluated to true public static bool IsTrue(string predicate, JToken data) { - var (value, error) = new ValueExpression(predicate).TryGetValue(data); + var (value, error) = new ValueExpression(Regex.Unescape(predicate)).TryGetValue(data); if (error == null) { return bool.Parse(value as string); diff --git a/source/dotnet/Library/AdaptiveCards.Templating/Properties/AssemblyInfo.cs b/source/dotnet/Library/AdaptiveCards.Templating/Properties/AssemblyInfo.cs index 0dcda78069..3f2397bf16 100644 --- a/source/dotnet/Library/AdaptiveCards.Templating/Properties/AssemblyInfo.cs +++ b/source/dotnet/Library/AdaptiveCards.Templating/Properties/AssemblyInfo.cs @@ -4,6 +4,6 @@ using System.Reflection; #if DELAY_SIGN -[assembly: AssemblyKeyFileAttribute(@"\\cp1pd1cdscvlt04\public\StrongNamePublicKeys\35MSSharedLib1024.snk")] +[assembly: AssemblyKeyFileAttribute(@"../../../../35MSSharedLib1024.snk")] [assembly: AssemblyDelaySignAttribute(true)] #endif diff --git a/source/dotnet/Library/AdaptiveCards/Properties/AssemblyInfo.cs b/source/dotnet/Library/AdaptiveCards/Properties/AssemblyInfo.cs index 0dcda78069..3f2397bf16 100644 --- a/source/dotnet/Library/AdaptiveCards/Properties/AssemblyInfo.cs +++ b/source/dotnet/Library/AdaptiveCards/Properties/AssemblyInfo.cs @@ -4,6 +4,6 @@ using System.Reflection; #if DELAY_SIGN -[assembly: AssemblyKeyFileAttribute(@"\\cp1pd1cdscvlt04\public\StrongNamePublicKeys\35MSSharedLib1024.snk")] +[assembly: AssemblyKeyFileAttribute(@"../../../../35MSSharedLib1024.snk")] [assembly: AssemblyDelaySignAttribute(true)] #endif diff --git a/source/dotnet/RunAllTests.ps1 b/source/dotnet/RunAllTests.ps1 index 3f7533f92b..5323347d41 100644 --- a/source/dotnet/RunAllTests.ps1 +++ b/source/dotnet/RunAllTests.ps1 @@ -12,25 +12,9 @@ $v1scenariosPath = $samplesPath + "\v1.0\scenarios" Write-Host Running unit tests... dotnet test .\test\AdaptiveCards.Test -dotnet test .\test\AdaptiveCards.Rendering.Html.Test - -Write-Host Running HTML tests... -Set-Location .\Samples\AdaptiveCards.Sample.Html - -Write-Host SupportsInteractivity = false... -dotnet run $v1scenariosPath -- -r -o $testResultsPath\HTML\StandardNonInteractive.html - -Write-Host SupportsInteractivity = true... -dotnet run $v1scenariosPath -- -r -i -o $testResultsPath\HTML\Standard.html - -Write-Host Windows notification config... -dotnet run $v1scenariosPath -- -r -o $testResultsPath\HTML\WindowsNotification.html --host-config $samplesPath\hostconfig\windows-notification.json - -Write-Host Timeline config... -dotnet run $v1scenariosPath -- -r -o $testResultsPath\HTML\WindowsTimeline.html --host-config $samplesPath\hostconfig\windows-timeline.json Write-Host Running WPF tests... -Set-Location ..\AdaptiveCards.Sample.ImageRender +Set-Location .\Samples\AdaptiveCards.Sample.ImageRender Write-Host SupportsInteractivity = false... dotnet run $v1scenariosPath -- -r -o $testResultsPath\WPF\StandardNonInteractive @@ -44,4 +28,4 @@ dotnet run $v1scenariosPath -- -r -o $testResultsPath\WPF\WindowsNotification -- Write-Host Timeline config... dotnet run $v1scenariosPath -- -r -o $testResultsPath\WPF\WindowsTimeline --host-config $samplesPath\hostconfig\windows-timeline.json -Pop-Location \ No newline at end of file +Pop-Location diff --git a/source/dotnet/Samples/AdaptiveCards.Sample.Html/.gitignore b/source/dotnet/Samples/AdaptiveCards.Sample.Html/.gitignore deleted file mode 100644 index 0b84df0f02..0000000000 --- a/source/dotnet/Samples/AdaptiveCards.Sample.Html/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.html \ No newline at end of file diff --git a/source/dotnet/Samples/AdaptiveCards.Sample.Html/AdaptiveCards.Sample.Html.csproj b/source/dotnet/Samples/AdaptiveCards.Sample.Html/AdaptiveCards.Sample.Html.csproj deleted file mode 100644 index 5c04d8717e..0000000000 --- a/source/dotnet/Samples/AdaptiveCards.Sample.Html/AdaptiveCards.Sample.Html.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - Exe - netcoreapp2.0 - false - - - - - - - - - - diff --git a/source/dotnet/Samples/AdaptiveCards.Sample.Html/Program.cs b/source/dotnet/Samples/AdaptiveCards.Sample.Html/Program.cs deleted file mode 100644 index 6c85c93ddf..0000000000 --- a/source/dotnet/Samples/AdaptiveCards.Sample.Html/Program.cs +++ /dev/null @@ -1,376 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using AdaptiveCards.Rendering; -using AdaptiveCards.Rendering.Html; -using System.Diagnostics; -using System.Text; -using McMaster.Extensions.CommandLineUtils; - -namespace AdaptiveCards.Sample.Html -{ - class Program - { - static int Main(string[] args) - { - Console.OutputEncoding = Encoding.UTF8; - var app = new CommandLineApplication(); - - app.HelpOption("-h|--help"); - - var pathArg = app.Argument("path", "The path that contains JSON card payloads"); - var optionRecurse = app.Option("-r|--recursive", "Recurse the directory for all JSON files", CommandOptionType.NoValue); - var optionOutput = app.Option("-o|--out", "The file to output the HTML to", CommandOptionType.SingleValue); - var optionSupportsInteracitivty = app.Option("-i|--supports-interactivity", "Include actions and inputs in the output", CommandOptionType.NoValue); - var hostConfigOption = app.Option("--host-config", "Specify a host config file", CommandOptionType.SingleValue); - - app.OnExecute(() => - { - FileStream outputFile = null; - var writer = Console.Out; - - // Output to file instead of console - if (optionOutput.HasValue()) - { - outputFile = File.Open(optionOutput.Value(), FileMode.Create); - writer = new StreamWriter(outputFile); - } - - // Get payload search path - var payloadPath = pathArg.Value ?? "..\\..\\..\\..\\samples\\v1.0\\Scenarios"; - if (pathArg.Value == null) - { - Console.WriteLine($"No path argument specified, trying {payloadPath}..."); - } - - var files = new List(); - - if (File.Exists(payloadPath)) - { - files.Add(payloadPath); - } - else if (Directory.Exists(payloadPath)) - { - var recurse = optionRecurse.HasValue() - ? SearchOption.AllDirectories - : SearchOption.TopDirectoryOnly; - - files = Directory.GetFiles(payloadPath, "*.json", recurse).ToList(); - Console.WriteLine($"Found {files.Count} card payloads..."); - } - else - { - Console.WriteLine($"{payloadPath} does not contain any JSON files. Nothing to do."); - return; - } - - writer.WriteLine(@" - - - Adaptive Cards HTML Renderer Test Bed - - - -"); - - - AdaptiveHostConfig hostConfig = new AdaptiveHostConfig() - { - SupportsInteractivity = optionSupportsInteracitivty.HasValue() - }; - - if (hostConfigOption.HasValue()) - { - hostConfig = AdaptiveHostConfig.FromJson(File.ReadAllText(hostConfigOption.Value())); - } - - AdaptiveCardRenderer renderer = new AdaptiveCardRenderer(hostConfig); - - - writer.WriteLine($"

Renderer schema version: {renderer.SupportedSchemaVersion}

"); - writer.WriteLine($"

Interactivty Enabled: {hostConfig.SupportsInteractivity}

"); - writer.WriteLine($"

Generated at: {DateTime.Now:G}

"); - - foreach (var file in files) - { - try - { - writer.WriteLine("
"); - writer.WriteLine($"

{Path.GetFileName(file)}

"); - - AdaptiveCardParseResult parseResult = AdaptiveCard.FromJson(File.ReadAllText(file, Encoding.UTF8)); - - AdaptiveCard card = parseResult.Card; - - RenderedAdaptiveCard renderedCard = renderer.RenderCard(card); - - // Report any warnings - foreach (var warning in parseResult.Warnings.Union(renderedCard.Warnings)) - { - writer.WriteLine($"

WARNING: {warning.Message}

"); - } - - writer.WriteLine($"
{renderedCard.Html}
"); - } - catch (Exception err) - { - writer.WriteLine($"

ERROR: {err.Message}

"); - } - } - - bool allowInlinePlayback = hostConfig.Media.AllowInlinePlayback; - - // Convert to JavaScript boolean values (False -> false, True -> true) - string jsAllowInlinePlayback = allowInlinePlayback.ToString().ToLower(); - - writer.WriteLine(""); - writer.WriteLine($@" - "); - writer.WriteLine(""); - - if (outputFile != null) - { - writer.Flush(); - outputFile.Flush(); - outputFile.Dispose(); - - Console.WriteLine($"All cards were written to {outputFile.Name}"); - } - - - // if output, launch the file - if (Debugger.IsAttached) - { - Console.ReadLine(); - } - }); - - return app.Execute(args); - } - } -} diff --git a/source/dotnet/Samples/AdaptiveCards.Sample.Html/Properties/launchSettings.json b/source/dotnet/Samples/AdaptiveCards.Sample.Html/Properties/launchSettings.json deleted file mode 100644 index 7b563cbab7..0000000000 --- a/source/dotnet/Samples/AdaptiveCards.Sample.Html/Properties/launchSettings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "profiles": { - "AdaptiveCards.Sample.Html": { - "commandName": "Project", - "commandLineArgs": "-r -i -o PayloadOutput.html" - } - } -} diff --git a/source/dotnet/Samples/AdaptiveCards.Sample.Html/README.md b/source/dotnet/Samples/AdaptiveCards.Sample.Html/README.md deleted file mode 100644 index a848dfe1be..0000000000 --- a/source/dotnet/Samples/AdaptiveCards.Sample.Html/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# AdaptiveCards HTML Sample - -This provides a CLI to exercise the .NET HTML Renderer (`AdaptiveCards.Rendering.Html`) - -## Usage - -If you cloned this repo, run the following command to generate HTML from the Scenario samples. The tool scans a directory for .json files that contain Adaptive Card payloads. - -```console -Usage: dotnet run [payload-path] [options] -``` - -```console -$ dotnet run -``` - -Or output to a file - -```console -$ dotnet run -o ./scenarios.html -$ start ./scenarios.html -``` - - -### Arguments - -Name | Description ----|--- -path | The path that contains JSON card payloads - -### Options - -Short | Long | Description ----|---|--- --h |--help | Show help information --r |--recursive | Recurse the directory for all JSON files --o |--out | The file to output the HTML to --i | --supports-interactivity | Include actions and inputs in the output -n/a | --host-config | Specify a host config file - -## Example to use Windows Notification host config - -```console -dotnet run ../../../../samples -r -i -o ./samples.html --host-config ../../../../samples/hostconfig/windows-notification.json -``` \ No newline at end of file diff --git a/source/dotnet/Samples/WPFVisualizer.PackageProject/AdaptiveCards.Sample.WPFVisualizer.PackageProject.wapproj b/source/dotnet/Samples/WPFVisualizer.PackageProject/AdaptiveCards.Sample.WPFVisualizer.PackageProject.wapproj index 0f87f489a5..154577b40a 100644 --- a/source/dotnet/Samples/WPFVisualizer.PackageProject/AdaptiveCards.Sample.WPFVisualizer.PackageProject.wapproj +++ b/source/dotnet/Samples/WPFVisualizer.PackageProject/AdaptiveCards.Sample.WPFVisualizer.PackageProject.wapproj @@ -3,6 +3,9 @@ 15.0 + + win-x86;win-x64 + Debug @@ -40,7 +43,7 @@ en-US AdaptiveCards.Sample.WPFVisualizer.PackageProject_TemporaryKey.pfx ..\WPFVisualizer\AdaptiveCards.Sample.WPFVisualizer.csproj - F61CBB0B347328B816F4D5220FA64C7D6B90CC41 + CCA567FDFE488F409F807D8E7AA4EF3F215ECB4A True diff --git a/source/dotnet/Samples/WPFVisualizer.PackageProject/AdaptiveCards.Sample.WPFVisualizer.PackageProject_TemporaryKey.pfx b/source/dotnet/Samples/WPFVisualizer.PackageProject/AdaptiveCards.Sample.WPFVisualizer.PackageProject_TemporaryKey.pfx index e04779b512..7cd7184c59 100644 Binary files a/source/dotnet/Samples/WPFVisualizer.PackageProject/AdaptiveCards.Sample.WPFVisualizer.PackageProject_TemporaryKey.pfx and b/source/dotnet/Samples/WPFVisualizer.PackageProject/AdaptiveCards.Sample.WPFVisualizer.PackageProject_TemporaryKey.pfx differ diff --git a/source/dotnet/Samples/WPFVisualizer/AdaptiveCards.Sample.WPFVisualizer.csproj b/source/dotnet/Samples/WPFVisualizer/AdaptiveCards.Sample.WPFVisualizer.csproj index ad67e4c05b..cfa2434283 100644 --- a/source/dotnet/Samples/WPFVisualizer/AdaptiveCards.Sample.WPFVisualizer.csproj +++ b/source/dotnet/Samples/WPFVisualizer/AdaptiveCards.Sample.WPFVisualizer.csproj @@ -10,6 +10,7 @@ WpfVisualizer WpfVisualizer v4.6.1 + win 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/AdaptiveCards.Sample.BotClient.Droid.csproj b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/AdaptiveCards.Sample.BotClient.Droid.csproj deleted file mode 100644 index 2ba326e3ed..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/AdaptiveCards.Sample.BotClient.Droid.csproj +++ /dev/null @@ -1,178 +0,0 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {17B8EF80-B2D0-4B0D-B73E-BC462492333E} - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library - Properties - AdaptiveCards.XamarinForms.BotClient.Droid - AdaptiveCards.XamarinForms.BotClient.Droid - 512 - true - Resources\Resource.Designer.cs - Off - Properties\AndroidManifest.xml - true - v7.1 - armeabi,armeabi-v7a,x86 - - - - - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - True - None - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - False - SdkOnly - - - - ..\..\..\packages\XFControls.1.0.0.6\lib\MonoAndroid\AsNum.XFControls.dll - - - ..\..\..\packages\XFControls.1.0.0.6\lib\MonoAndroid\AsNum.XFControls.Droid.dll - - - ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\FormsViewGroup.dll - True - - - ..\..\..\packages\HtmlAgilityPack.NetCore.1.5.0.1\lib\netstandard2.0\HtmlAgilityPack.NetCore.dll - - - ..\..\..\packages\Microsoft.Bot.Connector.DirectLine.3.0.0\lib\netstandard2.0\Microsoft.Bot.Connector.DirectLine.dll - - - - ..\..\..\packages\Microsoft.MarkedNet.1.0.11\lib\netstandard2.0\Microsoft.MarkedNet.dll - - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.3.6\lib\netstandard1.5\Microsoft.Rest.ClientRuntime.dll - - - - - ..\..\..\packages\Newtonsoft.Json.9.0.1\lib\portable-net45+wp80+win8+wpa81\Newtonsoft.Json.dll - - - - - - - - - - ..\..\..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.Animated.Vector.Drawable.dll - True - - - ..\..\..\packages\Xamarin.Android.Support.Design.23.3.0\lib\MonoAndroid43\Xamarin.Android.Support.Design.dll - - - ..\..\..\packages\Xamarin.Android.Support.v4.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll - True - - - ..\..\..\packages\Xamarin.Android.Support.v7.AppCompat.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll - True - - - ..\..\..\packages\Xamarin.Android.Support.v7.CardView.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.CardView.dll - True - - - ..\..\..\packages\Xamarin.Android.Support.v7.MediaRouter.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.MediaRouter.dll - True - - - ..\..\..\packages\Xamarin.Android.Support.v7.RecyclerView.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.RecyclerView.dll - True - - - ..\..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.Vector.Drawable.dll - True - - - ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\Xamarin.Forms.Core.dll - True - - - ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\Xamarin.Forms.Platform.dll - True - - - ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll - True - - - ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll - True - - - - - - - - - - - - - - - - - - - - - - - - - - Designer - - - - - {ac638ff4-8e90-44e1-9f6d-9089f6d14dd4} - AdaptiveCards.Sample.BotClient - - - - - - - - \ No newline at end of file diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/AdaptiveCards.Sample.BotClient.Droid.csproj.bak b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/AdaptiveCards.Sample.BotClient.Droid.csproj.bak deleted file mode 100644 index 6f85c705e7..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/AdaptiveCards.Sample.BotClient.Droid.csproj.bak +++ /dev/null @@ -1,178 +0,0 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {17B8EF80-B2D0-4B0D-B73E-BC462492333E} - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library - Properties - AdaptiveCards.XamarinForms.BotClient.Droid - AdaptiveCards.XamarinForms.BotClient.Droid - 512 - true - Resources\Resource.Designer.cs - Off - Properties\AndroidManifest.xml - true - v6.0 - armeabi,armeabi-v7a,x86 - - - - - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - True - None - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - False - SdkOnly - - - - ..\..\..\packages\XFControls.1.0.0.6\lib\MonoAndroid\AsNum.XFControls.dll - - - ..\..\..\packages\XFControls.1.0.0.6\lib\MonoAndroid\AsNum.XFControls.Droid.dll - - - ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\FormsViewGroup.dll - True - - - ..\..\..\packages\HtmlAgilityPack.NetCore.1.5.0.1\lib\netstandard1.3\HtmlAgilityPack.NetCore.dll - - - ..\..\..\packages\Microsoft.Bot.Connector.DirectLine.3.0.0\lib\netstandard1.3\Microsoft.Bot.Connector.DirectLine.dll - - - - ..\..\..\packages\Microsoft.MarkedNet.1.0.11\lib\netstandard1.3\Microsoft.MarkedNet.dll - - - ..\..\..\packages\Microsoft.Rest.ClientRuntime.2.3.6\lib\netstandard1.5\Microsoft.Rest.ClientRuntime.dll - - - - - ..\..\..\packages\Newtonsoft.Json.9.0.1\lib\portable-net45+wp80+win8+wpa81\Newtonsoft.Json.dll - - - - - - - - - - ..\..\..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.Animated.Vector.Drawable.dll - True - - - ..\..\..\packages\Xamarin.Android.Support.Design.23.3.0\lib\MonoAndroid43\Xamarin.Android.Support.Design.dll - - - ..\..\..\packages\Xamarin.Android.Support.v4.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll - True - - - ..\..\..\packages\Xamarin.Android.Support.v7.AppCompat.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll - True - - - ..\..\..\packages\Xamarin.Android.Support.v7.CardView.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.CardView.dll - True - - - ..\..\..\packages\Xamarin.Android.Support.v7.MediaRouter.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.MediaRouter.dll - True - - - ..\..\..\packages\Xamarin.Android.Support.v7.RecyclerView.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.v7.RecyclerView.dll - True - - - ..\..\..\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\lib\MonoAndroid403\Xamarin.Android.Support.Vector.Drawable.dll - True - - - ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\Xamarin.Forms.Core.dll - True - - - ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\Xamarin.Forms.Platform.dll - True - - - ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll - True - - - ..\..\..\packages\Xamarin.Forms.2.3.4.221-pre6\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll - True - - - - - - - - - - - - - - - - - - - - - - - - - - Designer - - - - - {ac638ff4-8e90-44e1-9f6d-9089f6d14dd4} - AdaptiveCards.Sample.BotClient - - - - - - - - \ No newline at end of file diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Assets/AboutAssets.txt b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Assets/AboutAssets.txt deleted file mode 100644 index 5ddf08729b..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Assets/AboutAssets.txt +++ /dev/null @@ -1,19 +0,0 @@ -Any raw assets you want to be deployed with your application can be placed in -this directory (and child directories) and given a Build Action of "AndroidAsset". - -These files will be deployed with you package and will be accessible using Android's -AssetManager, like this: - -public class ReadAsset : Activity -{ - protected override void OnCreate (Bundle bundle) - { - base.OnCreate (bundle); - - InputStream input = Assets.Open ("my_asset.txt"); - } -} - -Additionally, some Android functions will automatically load asset files: - -Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/MainActivity.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/MainActivity.cs deleted file mode 100644 index b468cee547..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/MainActivity.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -using System; - -using Android.App; -using Android.Content.PM; -using Android.Runtime; -using Android.Views; -using Android.Widget; -using Android.OS; - -namespace AdaptiveCards.XamarinForms.BotClient.Droid -{ - [Activity(Label = "AdaptiveCards.XamarinForms.BotClient", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] - public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity - { - protected override void OnCreate(Bundle bundle) - { - TabLayoutResource = Resource.Layout.Tabbar; - ToolbarResource = Resource.Layout.Toolbar; - - base.OnCreate(bundle); - - global::Xamarin.Forms.Forms.Init(this, bundle); - LoadApplication(new App()); - } - } -} diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Properties/AndroidManifest.xml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Properties/AndroidManifest.xml deleted file mode 100644 index 693f816e01..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Properties/AndroidManifest.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Properties/AssemblyInfo.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Properties/AssemblyInfo.cs deleted file mode 100644 index a93b15cbca..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using Android.App; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("AdaptiveCards.XamarinForms.BotClient.Droid")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("AdaptiveCards.XamarinForms.BotClient.Droid")] -[assembly: AssemblyCopyright("Copyright © 2014")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] -[assembly: ComVisible(false)] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] - -// Add some common permissions, these can be removed if not needed -[assembly: UsesPermission(Android.Manifest.Permission.Internet)] -[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)] diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/AboutResources.txt b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/AboutResources.txt deleted file mode 100644 index cb30f20b1c..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/AboutResources.txt +++ /dev/null @@ -1,50 +0,0 @@ -Images, layout descriptions, binary blobs and string dictionaries can be included -in your application as resource files. Various Android APIs are designed to -operate on the resource IDs instead of dealing with images, strings or binary blobs -directly. - -For example, a sample Android app that contains a user interface layout (main.xml), -an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) -would keep its resources in the "Resources" directory of the application: - -Resources/ - drawable-hdpi/ - icon.png - - drawable-ldpi/ - icon.png - - drawable-mdpi/ - icon.png - - layout/ - main.xml - - values/ - strings.xml - -In order to get the build system to recognize Android resources, set the build action to -"AndroidResource". The native Android APIs do not operate directly with filenames, but -instead operate on resource IDs. When you compile an Android application that uses resources, -the build system will package the resources for distribution and generate a class called -"Resource" that contains the tokens for each one of the resources included. For example, -for the above Resources layout, this is what the Resource class would expose: - -public class Resource { - public class drawable { - public const int icon = 0x123; - } - - public class layout { - public const int main = 0x456; - } - - public class strings { - public const int first_string = 0xabc; - public const int second_string = 0xbcd; - } -} - -You would then use R.drawable.icon to reference the drawable/icon.png file, or Resource.layout.main -to reference the layout/main.xml file, or Resource.strings.first_string to reference the first -string in the dictionary file values/strings.xml. diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/Resource.Designer.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/Resource.Designer.cs deleted file mode 100644 index 2daf3cb4ac..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/Resource.Designer.cs +++ /dev/null @@ -1,5936 +0,0 @@ -#pragma warning disable 1591 -//------------------------------------------------------------------------------ -// -// 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. -// -//------------------------------------------------------------------------------ - -[assembly: global::Android.Runtime.ResourceDesignerAttribute("AdaptiveCards.XamarinForms.BotClient.Droid.Resource", IsApplication=true)] - -namespace AdaptiveCards.XamarinForms.BotClient.Droid -{ - - - [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")] - public partial class Resource - { - - static Resource() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - public static void UpdateIdValues() - { - global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarSize = global::AdaptiveCards.XamarinForms.BotClient.Droid.Resource.Attribute.actionBarSize; - } - - public partial class Animation - { - - // aapt resource value: 0x7f040000 - public const int abc_fade_in = 2130968576; - - // aapt resource value: 0x7f040001 - public const int abc_fade_out = 2130968577; - - // aapt resource value: 0x7f040002 - public const int abc_grow_fade_in_from_bottom = 2130968578; - - // aapt resource value: 0x7f040003 - public const int abc_popup_enter = 2130968579; - - // aapt resource value: 0x7f040004 - public const int abc_popup_exit = 2130968580; - - // aapt resource value: 0x7f040005 - public const int abc_shrink_fade_out_from_bottom = 2130968581; - - // aapt resource value: 0x7f040006 - public const int abc_slide_in_bottom = 2130968582; - - // aapt resource value: 0x7f040007 - public const int abc_slide_in_top = 2130968583; - - // aapt resource value: 0x7f040008 - public const int abc_slide_out_bottom = 2130968584; - - // aapt resource value: 0x7f040009 - public const int abc_slide_out_top = 2130968585; - - // aapt resource value: 0x7f04000a - public const int design_bottom_sheet_slide_in = 2130968586; - - // aapt resource value: 0x7f04000b - public const int design_bottom_sheet_slide_out = 2130968587; - - // aapt resource value: 0x7f04000c - public const int design_fab_in = 2130968588; - - // aapt resource value: 0x7f04000d - public const int design_fab_out = 2130968589; - - // aapt resource value: 0x7f04000e - public const int design_snackbar_in = 2130968590; - - // aapt resource value: 0x7f04000f - public const int design_snackbar_out = 2130968591; - - static Animation() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Animation() - { - } - } - - public partial class Attribute - { - - // aapt resource value: 0x7f010004 - public const int MediaRouteControllerWindowBackground = 2130771972; - - // aapt resource value: 0x7f010061 - public const int actionBarDivider = 2130772065; - - // aapt resource value: 0x7f010062 - public const int actionBarItemBackground = 2130772066; - - // aapt resource value: 0x7f01005b - public const int actionBarPopupTheme = 2130772059; - - // aapt resource value: 0x7f010060 - public const int actionBarSize = 2130772064; - - // aapt resource value: 0x7f01005d - public const int actionBarSplitStyle = 2130772061; - - // aapt resource value: 0x7f01005c - public const int actionBarStyle = 2130772060; - - // aapt resource value: 0x7f010057 - public const int actionBarTabBarStyle = 2130772055; - - // aapt resource value: 0x7f010056 - public const int actionBarTabStyle = 2130772054; - - // aapt resource value: 0x7f010058 - public const int actionBarTabTextStyle = 2130772056; - - // aapt resource value: 0x7f01005e - public const int actionBarTheme = 2130772062; - - // aapt resource value: 0x7f01005f - public const int actionBarWidgetTheme = 2130772063; - - // aapt resource value: 0x7f01007b - public const int actionButtonStyle = 2130772091; - - // aapt resource value: 0x7f010077 - public const int actionDropDownStyle = 2130772087; - - // aapt resource value: 0x7f0100c9 - public const int actionLayout = 2130772169; - - // aapt resource value: 0x7f010063 - public const int actionMenuTextAppearance = 2130772067; - - // aapt resource value: 0x7f010064 - public const int actionMenuTextColor = 2130772068; - - // aapt resource value: 0x7f010067 - public const int actionModeBackground = 2130772071; - - // aapt resource value: 0x7f010066 - public const int actionModeCloseButtonStyle = 2130772070; - - // aapt resource value: 0x7f010069 - public const int actionModeCloseDrawable = 2130772073; - - // aapt resource value: 0x7f01006b - public const int actionModeCopyDrawable = 2130772075; - - // aapt resource value: 0x7f01006a - public const int actionModeCutDrawable = 2130772074; - - // aapt resource value: 0x7f01006f - public const int actionModeFindDrawable = 2130772079; - - // aapt resource value: 0x7f01006c - public const int actionModePasteDrawable = 2130772076; - - // aapt resource value: 0x7f010071 - public const int actionModePopupWindowStyle = 2130772081; - - // aapt resource value: 0x7f01006d - public const int actionModeSelectAllDrawable = 2130772077; - - // aapt resource value: 0x7f01006e - public const int actionModeShareDrawable = 2130772078; - - // aapt resource value: 0x7f010068 - public const int actionModeSplitBackground = 2130772072; - - // aapt resource value: 0x7f010065 - public const int actionModeStyle = 2130772069; - - // aapt resource value: 0x7f010070 - public const int actionModeWebSearchDrawable = 2130772080; - - // aapt resource value: 0x7f010059 - public const int actionOverflowButtonStyle = 2130772057; - - // aapt resource value: 0x7f01005a - public const int actionOverflowMenuStyle = 2130772058; - - // aapt resource value: 0x7f0100cb - public const int actionProviderClass = 2130772171; - - // aapt resource value: 0x7f0100ca - public const int actionViewClass = 2130772170; - - // aapt resource value: 0x7f010083 - public const int activityChooserViewStyle = 2130772099; - - // aapt resource value: 0x7f0100a6 - public const int alertDialogButtonGroupStyle = 2130772134; - - // aapt resource value: 0x7f0100a7 - public const int alertDialogCenterButtons = 2130772135; - - // aapt resource value: 0x7f0100a5 - public const int alertDialogStyle = 2130772133; - - // aapt resource value: 0x7f0100a8 - public const int alertDialogTheme = 2130772136; - - // aapt resource value: 0x7f0100ba - public const int allowStacking = 2130772154; - - // aapt resource value: 0x7f0100c1 - public const int arrowHeadLength = 2130772161; - - // aapt resource value: 0x7f0100c2 - public const int arrowShaftLength = 2130772162; - - // aapt resource value: 0x7f0100ad - public const int autoCompleteTextViewStyle = 2130772141; - - // aapt resource value: 0x7f010032 - public const int background = 2130772018; - - // aapt resource value: 0x7f010034 - public const int backgroundSplit = 2130772020; - - // aapt resource value: 0x7f010033 - public const int backgroundStacked = 2130772019; - - // aapt resource value: 0x7f0100f5 - public const int backgroundTint = 2130772213; - - // aapt resource value: 0x7f0100f6 - public const int backgroundTintMode = 2130772214; - - // aapt resource value: 0x7f0100c3 - public const int barLength = 2130772163; - - // aapt resource value: 0x7f0100fb - public const int behavior_hideable = 2130772219; - - // aapt resource value: 0x7f010121 - public const int behavior_overlapTop = 2130772257; - - // aapt resource value: 0x7f0100fa - public const int behavior_peekHeight = 2130772218; - - // aapt resource value: 0x7f010117 - public const int borderWidth = 2130772247; - - // aapt resource value: 0x7f010080 - public const int borderlessButtonStyle = 2130772096; - - // aapt resource value: 0x7f010111 - public const int bottomSheetDialogTheme = 2130772241; - - // aapt resource value: 0x7f010112 - public const int bottomSheetStyle = 2130772242; - - // aapt resource value: 0x7f01007d - public const int buttonBarButtonStyle = 2130772093; - - // aapt resource value: 0x7f0100ab - public const int buttonBarNegativeButtonStyle = 2130772139; - - // aapt resource value: 0x7f0100ac - public const int buttonBarNeutralButtonStyle = 2130772140; - - // aapt resource value: 0x7f0100aa - public const int buttonBarPositiveButtonStyle = 2130772138; - - // aapt resource value: 0x7f01007c - public const int buttonBarStyle = 2130772092; - - // aapt resource value: 0x7f010045 - public const int buttonPanelSideLayout = 2130772037; - - // aapt resource value: 0x7f0100ae - public const int buttonStyle = 2130772142; - - // aapt resource value: 0x7f0100af - public const int buttonStyleSmall = 2130772143; - - // aapt resource value: 0x7f0100bb - public const int buttonTint = 2130772155; - - // aapt resource value: 0x7f0100bc - public const int buttonTintMode = 2130772156; - - // aapt resource value: 0x7f01001b - public const int cardBackgroundColor = 2130771995; - - // aapt resource value: 0x7f01001c - public const int cardCornerRadius = 2130771996; - - // aapt resource value: 0x7f01001d - public const int cardElevation = 2130771997; - - // aapt resource value: 0x7f01001e - public const int cardMaxElevation = 2130771998; - - // aapt resource value: 0x7f010020 - public const int cardPreventCornerOverlap = 2130772000; - - // aapt resource value: 0x7f01001f - public const int cardUseCompatPadding = 2130771999; - - // aapt resource value: 0x7f0100b0 - public const int checkboxStyle = 2130772144; - - // aapt resource value: 0x7f0100b1 - public const int checkedTextViewStyle = 2130772145; - - // aapt resource value: 0x7f0100d3 - public const int closeIcon = 2130772179; - - // aapt resource value: 0x7f010042 - public const int closeItemLayout = 2130772034; - - // aapt resource value: 0x7f0100ec - public const int collapseContentDescription = 2130772204; - - // aapt resource value: 0x7f0100eb - public const int collapseIcon = 2130772203; - - // aapt resource value: 0x7f010108 - public const int collapsedTitleGravity = 2130772232; - - // aapt resource value: 0x7f010104 - public const int collapsedTitleTextAppearance = 2130772228; - - // aapt resource value: 0x7f0100bd - public const int color = 2130772157; - - // aapt resource value: 0x7f01009e - public const int colorAccent = 2130772126; - - // aapt resource value: 0x7f0100a2 - public const int colorButtonNormal = 2130772130; - - // aapt resource value: 0x7f0100a0 - public const int colorControlActivated = 2130772128; - - // aapt resource value: 0x7f0100a1 - public const int colorControlHighlight = 2130772129; - - // aapt resource value: 0x7f01009f - public const int colorControlNormal = 2130772127; - - // aapt resource value: 0x7f01009c - public const int colorPrimary = 2130772124; - - // aapt resource value: 0x7f01009d - public const int colorPrimaryDark = 2130772125; - - // aapt resource value: 0x7f0100a3 - public const int colorSwitchThumbNormal = 2130772131; - - // aapt resource value: 0x7f0100d8 - public const int commitIcon = 2130772184; - - // aapt resource value: 0x7f01003d - public const int contentInsetEnd = 2130772029; - - // aapt resource value: 0x7f01003e - public const int contentInsetLeft = 2130772030; - - // aapt resource value: 0x7f01003f - public const int contentInsetRight = 2130772031; - - // aapt resource value: 0x7f01003c - public const int contentInsetStart = 2130772028; - - // aapt resource value: 0x7f010021 - public const int contentPadding = 2130772001; - - // aapt resource value: 0x7f010025 - public const int contentPaddingBottom = 2130772005; - - // aapt resource value: 0x7f010022 - public const int contentPaddingLeft = 2130772002; - - // aapt resource value: 0x7f010023 - public const int contentPaddingRight = 2130772003; - - // aapt resource value: 0x7f010024 - public const int contentPaddingTop = 2130772004; - - // aapt resource value: 0x7f010105 - public const int contentScrim = 2130772229; - - // aapt resource value: 0x7f0100a4 - public const int controlBackground = 2130772132; - - // aapt resource value: 0x7f010137 - public const int counterEnabled = 2130772279; - - // aapt resource value: 0x7f010138 - public const int counterMaxLength = 2130772280; - - // aapt resource value: 0x7f01013a - public const int counterOverflowTextAppearance = 2130772282; - - // aapt resource value: 0x7f010139 - public const int counterTextAppearance = 2130772281; - - // aapt resource value: 0x7f010035 - public const int customNavigationLayout = 2130772021; - - // aapt resource value: 0x7f0100d2 - public const int defaultQueryHint = 2130772178; - - // aapt resource value: 0x7f010075 - public const int dialogPreferredPadding = 2130772085; - - // aapt resource value: 0x7f010074 - public const int dialogTheme = 2130772084; - - // aapt resource value: 0x7f01002b - public const int displayOptions = 2130772011; - - // aapt resource value: 0x7f010031 - public const int divider = 2130772017; - - // aapt resource value: 0x7f010082 - public const int dividerHorizontal = 2130772098; - - // aapt resource value: 0x7f0100c7 - public const int dividerPadding = 2130772167; - - // aapt resource value: 0x7f010081 - public const int dividerVertical = 2130772097; - - // aapt resource value: 0x7f0100bf - public const int drawableSize = 2130772159; - - // aapt resource value: 0x7f010026 - public const int drawerArrowStyle = 2130772006; - - // aapt resource value: 0x7f010094 - public const int dropDownListViewStyle = 2130772116; - - // aapt resource value: 0x7f010078 - public const int dropdownListPreferredItemHeight = 2130772088; - - // aapt resource value: 0x7f010089 - public const int editTextBackground = 2130772105; - - // aapt resource value: 0x7f010088 - public const int editTextColor = 2130772104; - - // aapt resource value: 0x7f0100b2 - public const int editTextStyle = 2130772146; - - // aapt resource value: 0x7f010040 - public const int elevation = 2130772032; - - // aapt resource value: 0x7f010135 - public const int errorEnabled = 2130772277; - - // aapt resource value: 0x7f010136 - public const int errorTextAppearance = 2130772278; - - // aapt resource value: 0x7f010044 - public const int expandActivityOverflowButtonDrawable = 2130772036; - - // aapt resource value: 0x7f0100f7 - public const int expanded = 2130772215; - - // aapt resource value: 0x7f010109 - public const int expandedTitleGravity = 2130772233; - - // aapt resource value: 0x7f0100fe - public const int expandedTitleMargin = 2130772222; - - // aapt resource value: 0x7f010102 - public const int expandedTitleMarginBottom = 2130772226; - - // aapt resource value: 0x7f010101 - public const int expandedTitleMarginEnd = 2130772225; - - // aapt resource value: 0x7f0100ff - public const int expandedTitleMarginStart = 2130772223; - - // aapt resource value: 0x7f010100 - public const int expandedTitleMarginTop = 2130772224; - - // aapt resource value: 0x7f010103 - public const int expandedTitleTextAppearance = 2130772227; - - // aapt resource value: 0x7f01001a - public const int externalRouteEnabledDrawable = 2130771994; - - // aapt resource value: 0x7f010115 - public const int fabSize = 2130772245; - - // aapt resource value: 0x7f010119 - public const int foregroundInsidePadding = 2130772249; - - // aapt resource value: 0x7f0100c0 - public const int gapBetweenBars = 2130772160; - - // aapt resource value: 0x7f0100d4 - public const int goIcon = 2130772180; - - // aapt resource value: 0x7f01011f - public const int headerLayout = 2130772255; - - // aapt resource value: 0x7f010027 - public const int height = 2130772007; - - // aapt resource value: 0x7f01003b - public const int hideOnContentScroll = 2130772027; - - // aapt resource value: 0x7f01013b - public const int hintAnimationEnabled = 2130772283; - - // aapt resource value: 0x7f010134 - public const int hintEnabled = 2130772276; - - // aapt resource value: 0x7f010133 - public const int hintTextAppearance = 2130772275; - - // aapt resource value: 0x7f01007a - public const int homeAsUpIndicator = 2130772090; - - // aapt resource value: 0x7f010036 - public const int homeLayout = 2130772022; - - // aapt resource value: 0x7f01002f - public const int icon = 2130772015; - - // aapt resource value: 0x7f0100d0 - public const int iconifiedByDefault = 2130772176; - - // aapt resource value: 0x7f01008a - public const int imageButtonStyle = 2130772106; - - // aapt resource value: 0x7f010038 - public const int indeterminateProgressStyle = 2130772024; - - // aapt resource value: 0x7f010043 - public const int initialActivityCount = 2130772035; - - // aapt resource value: 0x7f010120 - public const int insetForeground = 2130772256; - - // aapt resource value: 0x7f010028 - public const int isLightTheme = 2130772008; - - // aapt resource value: 0x7f01011d - public const int itemBackground = 2130772253; - - // aapt resource value: 0x7f01011b - public const int itemIconTint = 2130772251; - - // aapt resource value: 0x7f01003a - public const int itemPadding = 2130772026; - - // aapt resource value: 0x7f01011e - public const int itemTextAppearance = 2130772254; - - // aapt resource value: 0x7f01011c - public const int itemTextColor = 2130772252; - - // aapt resource value: 0x7f01010b - public const int keylines = 2130772235; - - // aapt resource value: 0x7f0100cf - public const int layout = 2130772175; - - // aapt resource value: 0x7f010000 - public const int layoutManager = 2130771968; - - // aapt resource value: 0x7f01010e - public const int layout_anchor = 2130772238; - - // aapt resource value: 0x7f010110 - public const int layout_anchorGravity = 2130772240; - - // aapt resource value: 0x7f01010d - public const int layout_behavior = 2130772237; - - // aapt resource value: 0x7f0100fc - public const int layout_collapseMode = 2130772220; - - // aapt resource value: 0x7f0100fd - public const int layout_collapseParallaxMultiplier = 2130772221; - - // aapt resource value: 0x7f01010f - public const int layout_keyline = 2130772239; - - // aapt resource value: 0x7f0100f8 - public const int layout_scrollFlags = 2130772216; - - // aapt resource value: 0x7f0100f9 - public const int layout_scrollInterpolator = 2130772217; - - // aapt resource value: 0x7f01009b - public const int listChoiceBackgroundIndicator = 2130772123; - - // aapt resource value: 0x7f010076 - public const int listDividerAlertDialog = 2130772086; - - // aapt resource value: 0x7f010049 - public const int listItemLayout = 2130772041; - - // aapt resource value: 0x7f010046 - public const int listLayout = 2130772038; - - // aapt resource value: 0x7f010095 - public const int listPopupWindowStyle = 2130772117; - - // aapt resource value: 0x7f01008f - public const int listPreferredItemHeight = 2130772111; - - // aapt resource value: 0x7f010091 - public const int listPreferredItemHeightLarge = 2130772113; - - // aapt resource value: 0x7f010090 - public const int listPreferredItemHeightSmall = 2130772112; - - // aapt resource value: 0x7f010092 - public const int listPreferredItemPaddingLeft = 2130772114; - - // aapt resource value: 0x7f010093 - public const int listPreferredItemPaddingRight = 2130772115; - - // aapt resource value: 0x7f010030 - public const int logo = 2130772016; - - // aapt resource value: 0x7f0100ef - public const int logoDescription = 2130772207; - - // aapt resource value: 0x7f010122 - public const int maxActionInlineWidth = 2130772258; - - // aapt resource value: 0x7f0100ea - public const int maxButtonHeight = 2130772202; - - // aapt resource value: 0x7f0100c5 - public const int measureWithLargestChild = 2130772165; - - // aapt resource value: 0x7f010005 - public const int mediaRouteAudioTrackDrawable = 2130771973; - - // aapt resource value: 0x7f010006 - public const int mediaRouteBluetoothIconDrawable = 2130771974; - - // aapt resource value: 0x7f010007 - public const int mediaRouteButtonStyle = 2130771975; - - // aapt resource value: 0x7f010008 - public const int mediaRouteCastDrawable = 2130771976; - - // aapt resource value: 0x7f010009 - public const int mediaRouteChooserPrimaryTextStyle = 2130771977; - - // aapt resource value: 0x7f01000a - public const int mediaRouteChooserSecondaryTextStyle = 2130771978; - - // aapt resource value: 0x7f01000b - public const int mediaRouteCloseDrawable = 2130771979; - - // aapt resource value: 0x7f01000c - public const int mediaRouteCollapseGroupDrawable = 2130771980; - - // aapt resource value: 0x7f01000d - public const int mediaRouteConnectingDrawable = 2130771981; - - // aapt resource value: 0x7f01000e - public const int mediaRouteControllerPrimaryTextStyle = 2130771982; - - // aapt resource value: 0x7f01000f - public const int mediaRouteControllerSecondaryTextStyle = 2130771983; - - // aapt resource value: 0x7f010010 - public const int mediaRouteControllerTitleTextStyle = 2130771984; - - // aapt resource value: 0x7f010011 - public const int mediaRouteDefaultIconDrawable = 2130771985; - - // aapt resource value: 0x7f010012 - public const int mediaRouteExpandGroupDrawable = 2130771986; - - // aapt resource value: 0x7f010013 - public const int mediaRouteOffDrawable = 2130771987; - - // aapt resource value: 0x7f010014 - public const int mediaRouteOnDrawable = 2130771988; - - // aapt resource value: 0x7f010015 - public const int mediaRoutePauseDrawable = 2130771989; - - // aapt resource value: 0x7f010016 - public const int mediaRoutePlayDrawable = 2130771990; - - // aapt resource value: 0x7f010017 - public const int mediaRouteSpeakerGroupIconDrawable = 2130771991; - - // aapt resource value: 0x7f010018 - public const int mediaRouteSpeakerIconDrawable = 2130771992; - - // aapt resource value: 0x7f010019 - public const int mediaRouteTvIconDrawable = 2130771993; - - // aapt resource value: 0x7f01011a - public const int menu = 2130772250; - - // aapt resource value: 0x7f010047 - public const int multiChoiceItemLayout = 2130772039; - - // aapt resource value: 0x7f0100ee - public const int navigationContentDescription = 2130772206; - - // aapt resource value: 0x7f0100ed - public const int navigationIcon = 2130772205; - - // aapt resource value: 0x7f01002a - public const int navigationMode = 2130772010; - - // aapt resource value: 0x7f0100cd - public const int overlapAnchor = 2130772173; - - // aapt resource value: 0x7f0100f3 - public const int paddingEnd = 2130772211; - - // aapt resource value: 0x7f0100f2 - public const int paddingStart = 2130772210; - - // aapt resource value: 0x7f010098 - public const int panelBackground = 2130772120; - - // aapt resource value: 0x7f01009a - public const int panelMenuListTheme = 2130772122; - - // aapt resource value: 0x7f010099 - public const int panelMenuListWidth = 2130772121; - - // aapt resource value: 0x7f010086 - public const int popupMenuStyle = 2130772102; - - // aapt resource value: 0x7f010041 - public const int popupTheme = 2130772033; - - // aapt resource value: 0x7f010087 - public const int popupWindowStyle = 2130772103; - - // aapt resource value: 0x7f0100cc - public const int preserveIconSpacing = 2130772172; - - // aapt resource value: 0x7f010116 - public const int pressedTranslationZ = 2130772246; - - // aapt resource value: 0x7f010039 - public const int progressBarPadding = 2130772025; - - // aapt resource value: 0x7f010037 - public const int progressBarStyle = 2130772023; - - // aapt resource value: 0x7f0100da - public const int queryBackground = 2130772186; - - // aapt resource value: 0x7f0100d1 - public const int queryHint = 2130772177; - - // aapt resource value: 0x7f0100b3 - public const int radioButtonStyle = 2130772147; - - // aapt resource value: 0x7f0100b4 - public const int ratingBarStyle = 2130772148; - - // aapt resource value: 0x7f0100b5 - public const int ratingBarStyleIndicator = 2130772149; - - // aapt resource value: 0x7f0100b6 - public const int ratingBarStyleSmall = 2130772150; - - // aapt resource value: 0x7f010002 - public const int reverseLayout = 2130771970; - - // aapt resource value: 0x7f010114 - public const int rippleColor = 2130772244; - - // aapt resource value: 0x7f0100d6 - public const int searchHintIcon = 2130772182; - - // aapt resource value: 0x7f0100d5 - public const int searchIcon = 2130772181; - - // aapt resource value: 0x7f01008e - public const int searchViewStyle = 2130772110; - - // aapt resource value: 0x7f0100b7 - public const int seekBarStyle = 2130772151; - - // aapt resource value: 0x7f01007e - public const int selectableItemBackground = 2130772094; - - // aapt resource value: 0x7f01007f - public const int selectableItemBackgroundBorderless = 2130772095; - - // aapt resource value: 0x7f0100c8 - public const int showAsAction = 2130772168; - - // aapt resource value: 0x7f0100c6 - public const int showDividers = 2130772166; - - // aapt resource value: 0x7f0100e2 - public const int showText = 2130772194; - - // aapt resource value: 0x7f010048 - public const int singleChoiceItemLayout = 2130772040; - - // aapt resource value: 0x7f010001 - public const int spanCount = 2130771969; - - // aapt resource value: 0x7f0100be - public const int spinBars = 2130772158; - - // aapt resource value: 0x7f010079 - public const int spinnerDropDownItemStyle = 2130772089; - - // aapt resource value: 0x7f0100b8 - public const int spinnerStyle = 2130772152; - - // aapt resource value: 0x7f0100e1 - public const int splitTrack = 2130772193; - - // aapt resource value: 0x7f01004a - public const int srcCompat = 2130772042; - - // aapt resource value: 0x7f010003 - public const int stackFromEnd = 2130771971; - - // aapt resource value: 0x7f0100ce - public const int state_above_anchor = 2130772174; - - // aapt resource value: 0x7f01010c - public const int statusBarBackground = 2130772236; - - // aapt resource value: 0x7f010106 - public const int statusBarScrim = 2130772230; - - // aapt resource value: 0x7f0100db - public const int submitBackground = 2130772187; - - // aapt resource value: 0x7f01002c - public const int subtitle = 2130772012; - - // aapt resource value: 0x7f0100e4 - public const int subtitleTextAppearance = 2130772196; - - // aapt resource value: 0x7f0100f1 - public const int subtitleTextColor = 2130772209; - - // aapt resource value: 0x7f01002e - public const int subtitleTextStyle = 2130772014; - - // aapt resource value: 0x7f0100d9 - public const int suggestionRowLayout = 2130772185; - - // aapt resource value: 0x7f0100df - public const int switchMinWidth = 2130772191; - - // aapt resource value: 0x7f0100e0 - public const int switchPadding = 2130772192; - - // aapt resource value: 0x7f0100b9 - public const int switchStyle = 2130772153; - - // aapt resource value: 0x7f0100de - public const int switchTextAppearance = 2130772190; - - // aapt resource value: 0x7f010126 - public const int tabBackground = 2130772262; - - // aapt resource value: 0x7f010125 - public const int tabContentStart = 2130772261; - - // aapt resource value: 0x7f010128 - public const int tabGravity = 2130772264; - - // aapt resource value: 0x7f010123 - public const int tabIndicatorColor = 2130772259; - - // aapt resource value: 0x7f010124 - public const int tabIndicatorHeight = 2130772260; - - // aapt resource value: 0x7f01012a - public const int tabMaxWidth = 2130772266; - - // aapt resource value: 0x7f010129 - public const int tabMinWidth = 2130772265; - - // aapt resource value: 0x7f010127 - public const int tabMode = 2130772263; - - // aapt resource value: 0x7f010132 - public const int tabPadding = 2130772274; - - // aapt resource value: 0x7f010131 - public const int tabPaddingBottom = 2130772273; - - // aapt resource value: 0x7f010130 - public const int tabPaddingEnd = 2130772272; - - // aapt resource value: 0x7f01012e - public const int tabPaddingStart = 2130772270; - - // aapt resource value: 0x7f01012f - public const int tabPaddingTop = 2130772271; - - // aapt resource value: 0x7f01012d - public const int tabSelectedTextColor = 2130772269; - - // aapt resource value: 0x7f01012b - public const int tabTextAppearance = 2130772267; - - // aapt resource value: 0x7f01012c - public const int tabTextColor = 2130772268; - - // aapt resource value: 0x7f01004b - public const int textAllCaps = 2130772043; - - // aapt resource value: 0x7f010072 - public const int textAppearanceLargePopupMenu = 2130772082; - - // aapt resource value: 0x7f010096 - public const int textAppearanceListItem = 2130772118; - - // aapt resource value: 0x7f010097 - public const int textAppearanceListItemSmall = 2130772119; - - // aapt resource value: 0x7f01008c - public const int textAppearanceSearchResultSubtitle = 2130772108; - - // aapt resource value: 0x7f01008b - public const int textAppearanceSearchResultTitle = 2130772107; - - // aapt resource value: 0x7f010073 - public const int textAppearanceSmallPopupMenu = 2130772083; - - // aapt resource value: 0x7f0100a9 - public const int textColorAlertDialogListItem = 2130772137; - - // aapt resource value: 0x7f010113 - public const int textColorError = 2130772243; - - // aapt resource value: 0x7f01008d - public const int textColorSearchUrl = 2130772109; - - // aapt resource value: 0x7f0100f4 - public const int theme = 2130772212; - - // aapt resource value: 0x7f0100c4 - public const int thickness = 2130772164; - - // aapt resource value: 0x7f0100dd - public const int thumbTextPadding = 2130772189; - - // aapt resource value: 0x7f010029 - public const int title = 2130772009; - - // aapt resource value: 0x7f01010a - public const int titleEnabled = 2130772234; - - // aapt resource value: 0x7f0100e9 - public const int titleMarginBottom = 2130772201; - - // aapt resource value: 0x7f0100e7 - public const int titleMarginEnd = 2130772199; - - // aapt resource value: 0x7f0100e6 - public const int titleMarginStart = 2130772198; - - // aapt resource value: 0x7f0100e8 - public const int titleMarginTop = 2130772200; - - // aapt resource value: 0x7f0100e5 - public const int titleMargins = 2130772197; - - // aapt resource value: 0x7f0100e3 - public const int titleTextAppearance = 2130772195; - - // aapt resource value: 0x7f0100f0 - public const int titleTextColor = 2130772208; - - // aapt resource value: 0x7f01002d - public const int titleTextStyle = 2130772013; - - // aapt resource value: 0x7f010107 - public const int toolbarId = 2130772231; - - // aapt resource value: 0x7f010085 - public const int toolbarNavigationButtonStyle = 2130772101; - - // aapt resource value: 0x7f010084 - public const int toolbarStyle = 2130772100; - - // aapt resource value: 0x7f0100dc - public const int track = 2130772188; - - // aapt resource value: 0x7f010118 - public const int useCompatPadding = 2130772248; - - // aapt resource value: 0x7f0100d7 - public const int voiceIcon = 2130772183; - - // aapt resource value: 0x7f01004c - public const int windowActionBar = 2130772044; - - // aapt resource value: 0x7f01004e - public const int windowActionBarOverlay = 2130772046; - - // aapt resource value: 0x7f01004f - public const int windowActionModeOverlay = 2130772047; - - // aapt resource value: 0x7f010053 - public const int windowFixedHeightMajor = 2130772051; - - // aapt resource value: 0x7f010051 - public const int windowFixedHeightMinor = 2130772049; - - // aapt resource value: 0x7f010050 - public const int windowFixedWidthMajor = 2130772048; - - // aapt resource value: 0x7f010052 - public const int windowFixedWidthMinor = 2130772050; - - // aapt resource value: 0x7f010054 - public const int windowMinWidthMajor = 2130772052; - - // aapt resource value: 0x7f010055 - public const int windowMinWidthMinor = 2130772053; - - // aapt resource value: 0x7f01004d - public const int windowNoTitle = 2130772045; - - static Attribute() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Attribute() - { - } - } - - public partial class Boolean - { - - // aapt resource value: 0x7f0c0003 - public const int abc_action_bar_embed_tabs = 2131492867; - - // aapt resource value: 0x7f0c0001 - public const int abc_action_bar_embed_tabs_pre_jb = 2131492865; - - // aapt resource value: 0x7f0c0004 - public const int abc_action_bar_expanded_action_views_exclusive = 2131492868; - - // aapt resource value: 0x7f0c0000 - public const int abc_allow_stacked_button_bar = 2131492864; - - // aapt resource value: 0x7f0c0005 - public const int abc_config_actionMenuItemAllCaps = 2131492869; - - // aapt resource value: 0x7f0c0002 - public const int abc_config_allowActionMenuItemTextWithIcon = 2131492866; - - // aapt resource value: 0x7f0c0006 - public const int abc_config_closeDialogWhenTouchOutside = 2131492870; - - // aapt resource value: 0x7f0c0007 - public const int abc_config_showMenuShortcutsWhenKeyboardPresent = 2131492871; - - static Boolean() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Boolean() - { - } - } - - public partial class Color - { - - // aapt resource value: 0x7f0b0048 - public const int abc_background_cache_hint_selector_material_dark = 2131427400; - - // aapt resource value: 0x7f0b0049 - public const int abc_background_cache_hint_selector_material_light = 2131427401; - - // aapt resource value: 0x7f0b004a - public const int abc_color_highlight_material = 2131427402; - - // aapt resource value: 0x7f0b0004 - public const int abc_input_method_navigation_guard = 2131427332; - - // aapt resource value: 0x7f0b004b - public const int abc_primary_text_disable_only_material_dark = 2131427403; - - // aapt resource value: 0x7f0b004c - public const int abc_primary_text_disable_only_material_light = 2131427404; - - // aapt resource value: 0x7f0b004d - public const int abc_primary_text_material_dark = 2131427405; - - // aapt resource value: 0x7f0b004e - public const int abc_primary_text_material_light = 2131427406; - - // aapt resource value: 0x7f0b004f - public const int abc_search_url_text = 2131427407; - - // aapt resource value: 0x7f0b0005 - public const int abc_search_url_text_normal = 2131427333; - - // aapt resource value: 0x7f0b0006 - public const int abc_search_url_text_pressed = 2131427334; - - // aapt resource value: 0x7f0b0007 - public const int abc_search_url_text_selected = 2131427335; - - // aapt resource value: 0x7f0b0050 - public const int abc_secondary_text_material_dark = 2131427408; - - // aapt resource value: 0x7f0b0051 - public const int abc_secondary_text_material_light = 2131427409; - - // aapt resource value: 0x7f0b0008 - public const int accent_material_dark = 2131427336; - - // aapt resource value: 0x7f0b0009 - public const int accent_material_light = 2131427337; - - // aapt resource value: 0x7f0b000a - public const int background_floating_material_dark = 2131427338; - - // aapt resource value: 0x7f0b000b - public const int background_floating_material_light = 2131427339; - - // aapt resource value: 0x7f0b000c - public const int background_material_dark = 2131427340; - - // aapt resource value: 0x7f0b000d - public const int background_material_light = 2131427341; - - // aapt resource value: 0x7f0b000e - public const int bright_foreground_disabled_material_dark = 2131427342; - - // aapt resource value: 0x7f0b000f - public const int bright_foreground_disabled_material_light = 2131427343; - - // aapt resource value: 0x7f0b0010 - public const int bright_foreground_inverse_material_dark = 2131427344; - - // aapt resource value: 0x7f0b0011 - public const int bright_foreground_inverse_material_light = 2131427345; - - // aapt resource value: 0x7f0b0012 - public const int bright_foreground_material_dark = 2131427346; - - // aapt resource value: 0x7f0b0013 - public const int bright_foreground_material_light = 2131427347; - - // aapt resource value: 0x7f0b0014 - public const int button_material_dark = 2131427348; - - // aapt resource value: 0x7f0b0015 - public const int button_material_light = 2131427349; - - // aapt resource value: 0x7f0b0000 - public const int cardview_dark_background = 2131427328; - - // aapt resource value: 0x7f0b0001 - public const int cardview_light_background = 2131427329; - - // aapt resource value: 0x7f0b0002 - public const int cardview_shadow_end_color = 2131427330; - - // aapt resource value: 0x7f0b0003 - public const int cardview_shadow_start_color = 2131427331; - - // aapt resource value: 0x7f0b003e - public const int design_fab_shadow_end_color = 2131427390; - - // aapt resource value: 0x7f0b003f - public const int design_fab_shadow_mid_color = 2131427391; - - // aapt resource value: 0x7f0b0040 - public const int design_fab_shadow_start_color = 2131427392; - - // aapt resource value: 0x7f0b0041 - public const int design_fab_stroke_end_inner_color = 2131427393; - - // aapt resource value: 0x7f0b0042 - public const int design_fab_stroke_end_outer_color = 2131427394; - - // aapt resource value: 0x7f0b0043 - public const int design_fab_stroke_top_inner_color = 2131427395; - - // aapt resource value: 0x7f0b0044 - public const int design_fab_stroke_top_outer_color = 2131427396; - - // aapt resource value: 0x7f0b0045 - public const int design_snackbar_background_color = 2131427397; - - // aapt resource value: 0x7f0b0046 - public const int design_textinput_error_color_dark = 2131427398; - - // aapt resource value: 0x7f0b0047 - public const int design_textinput_error_color_light = 2131427399; - - // aapt resource value: 0x7f0b0016 - public const int dim_foreground_disabled_material_dark = 2131427350; - - // aapt resource value: 0x7f0b0017 - public const int dim_foreground_disabled_material_light = 2131427351; - - // aapt resource value: 0x7f0b0018 - public const int dim_foreground_material_dark = 2131427352; - - // aapt resource value: 0x7f0b0019 - public const int dim_foreground_material_light = 2131427353; - - // aapt resource value: 0x7f0b001a - public const int foreground_material_dark = 2131427354; - - // aapt resource value: 0x7f0b001b - public const int foreground_material_light = 2131427355; - - // aapt resource value: 0x7f0b001c - public const int highlighted_text_material_dark = 2131427356; - - // aapt resource value: 0x7f0b001d - public const int highlighted_text_material_light = 2131427357; - - // aapt resource value: 0x7f0b001e - public const int hint_foreground_material_dark = 2131427358; - - // aapt resource value: 0x7f0b001f - public const int hint_foreground_material_light = 2131427359; - - // aapt resource value: 0x7f0b0020 - public const int material_blue_grey_800 = 2131427360; - - // aapt resource value: 0x7f0b0021 - public const int material_blue_grey_900 = 2131427361; - - // aapt resource value: 0x7f0b0022 - public const int material_blue_grey_950 = 2131427362; - - // aapt resource value: 0x7f0b0023 - public const int material_deep_teal_200 = 2131427363; - - // aapt resource value: 0x7f0b0024 - public const int material_deep_teal_500 = 2131427364; - - // aapt resource value: 0x7f0b0025 - public const int material_grey_100 = 2131427365; - - // aapt resource value: 0x7f0b0026 - public const int material_grey_300 = 2131427366; - - // aapt resource value: 0x7f0b0027 - public const int material_grey_50 = 2131427367; - - // aapt resource value: 0x7f0b0028 - public const int material_grey_600 = 2131427368; - - // aapt resource value: 0x7f0b0029 - public const int material_grey_800 = 2131427369; - - // aapt resource value: 0x7f0b002a - public const int material_grey_850 = 2131427370; - - // aapt resource value: 0x7f0b002b - public const int material_grey_900 = 2131427371; - - // aapt resource value: 0x7f0b002c - public const int primary_dark_material_dark = 2131427372; - - // aapt resource value: 0x7f0b002d - public const int primary_dark_material_light = 2131427373; - - // aapt resource value: 0x7f0b002e - public const int primary_material_dark = 2131427374; - - // aapt resource value: 0x7f0b002f - public const int primary_material_light = 2131427375; - - // aapt resource value: 0x7f0b0030 - public const int primary_text_default_material_dark = 2131427376; - - // aapt resource value: 0x7f0b0031 - public const int primary_text_default_material_light = 2131427377; - - // aapt resource value: 0x7f0b0032 - public const int primary_text_disabled_material_dark = 2131427378; - - // aapt resource value: 0x7f0b0033 - public const int primary_text_disabled_material_light = 2131427379; - - // aapt resource value: 0x7f0b0034 - public const int ripple_material_dark = 2131427380; - - // aapt resource value: 0x7f0b0035 - public const int ripple_material_light = 2131427381; - - // aapt resource value: 0x7f0b0036 - public const int secondary_text_default_material_dark = 2131427382; - - // aapt resource value: 0x7f0b0037 - public const int secondary_text_default_material_light = 2131427383; - - // aapt resource value: 0x7f0b0038 - public const int secondary_text_disabled_material_dark = 2131427384; - - // aapt resource value: 0x7f0b0039 - public const int secondary_text_disabled_material_light = 2131427385; - - // aapt resource value: 0x7f0b003a - public const int switch_thumb_disabled_material_dark = 2131427386; - - // aapt resource value: 0x7f0b003b - public const int switch_thumb_disabled_material_light = 2131427387; - - // aapt resource value: 0x7f0b0052 - public const int switch_thumb_material_dark = 2131427410; - - // aapt resource value: 0x7f0b0053 - public const int switch_thumb_material_light = 2131427411; - - // aapt resource value: 0x7f0b003c - public const int switch_thumb_normal_material_dark = 2131427388; - - // aapt resource value: 0x7f0b003d - public const int switch_thumb_normal_material_light = 2131427389; - - static Color() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Color() - { - } - } - - public partial class Dimension - { - - // aapt resource value: 0x7f060019 - public const int abc_action_bar_content_inset_material = 2131099673; - - // aapt resource value: 0x7f06000d - public const int abc_action_bar_default_height_material = 2131099661; - - // aapt resource value: 0x7f06001a - public const int abc_action_bar_default_padding_end_material = 2131099674; - - // aapt resource value: 0x7f06001b - public const int abc_action_bar_default_padding_start_material = 2131099675; - - // aapt resource value: 0x7f06001d - public const int abc_action_bar_icon_vertical_padding_material = 2131099677; - - // aapt resource value: 0x7f06001e - public const int abc_action_bar_overflow_padding_end_material = 2131099678; - - // aapt resource value: 0x7f06001f - public const int abc_action_bar_overflow_padding_start_material = 2131099679; - - // aapt resource value: 0x7f06000e - public const int abc_action_bar_progress_bar_size = 2131099662; - - // aapt resource value: 0x7f060020 - public const int abc_action_bar_stacked_max_height = 2131099680; - - // aapt resource value: 0x7f060021 - public const int abc_action_bar_stacked_tab_max_width = 2131099681; - - // aapt resource value: 0x7f060022 - public const int abc_action_bar_subtitle_bottom_margin_material = 2131099682; - - // aapt resource value: 0x7f060023 - public const int abc_action_bar_subtitle_top_margin_material = 2131099683; - - // aapt resource value: 0x7f060024 - public const int abc_action_button_min_height_material = 2131099684; - - // aapt resource value: 0x7f060025 - public const int abc_action_button_min_width_material = 2131099685; - - // aapt resource value: 0x7f060026 - public const int abc_action_button_min_width_overflow_material = 2131099686; - - // aapt resource value: 0x7f06000c - public const int abc_alert_dialog_button_bar_height = 2131099660; - - // aapt resource value: 0x7f060027 - public const int abc_button_inset_horizontal_material = 2131099687; - - // aapt resource value: 0x7f060028 - public const int abc_button_inset_vertical_material = 2131099688; - - // aapt resource value: 0x7f060029 - public const int abc_button_padding_horizontal_material = 2131099689; - - // aapt resource value: 0x7f06002a - public const int abc_button_padding_vertical_material = 2131099690; - - // aapt resource value: 0x7f060011 - public const int abc_config_prefDialogWidth = 2131099665; - - // aapt resource value: 0x7f06002b - public const int abc_control_corner_material = 2131099691; - - // aapt resource value: 0x7f06002c - public const int abc_control_inset_material = 2131099692; - - // aapt resource value: 0x7f06002d - public const int abc_control_padding_material = 2131099693; - - // aapt resource value: 0x7f060012 - public const int abc_dialog_fixed_height_major = 2131099666; - - // aapt resource value: 0x7f060013 - public const int abc_dialog_fixed_height_minor = 2131099667; - - // aapt resource value: 0x7f060014 - public const int abc_dialog_fixed_width_major = 2131099668; - - // aapt resource value: 0x7f060015 - public const int abc_dialog_fixed_width_minor = 2131099669; - - // aapt resource value: 0x7f06002e - public const int abc_dialog_list_padding_vertical_material = 2131099694; - - // aapt resource value: 0x7f060016 - public const int abc_dialog_min_width_major = 2131099670; - - // aapt resource value: 0x7f060017 - public const int abc_dialog_min_width_minor = 2131099671; - - // aapt resource value: 0x7f06002f - public const int abc_dialog_padding_material = 2131099695; - - // aapt resource value: 0x7f060030 - public const int abc_dialog_padding_top_material = 2131099696; - - // aapt resource value: 0x7f060031 - public const int abc_disabled_alpha_material_dark = 2131099697; - - // aapt resource value: 0x7f060032 - public const int abc_disabled_alpha_material_light = 2131099698; - - // aapt resource value: 0x7f060033 - public const int abc_dropdownitem_icon_width = 2131099699; - - // aapt resource value: 0x7f060034 - public const int abc_dropdownitem_text_padding_left = 2131099700; - - // aapt resource value: 0x7f060035 - public const int abc_dropdownitem_text_padding_right = 2131099701; - - // aapt resource value: 0x7f060036 - public const int abc_edit_text_inset_bottom_material = 2131099702; - - // aapt resource value: 0x7f060037 - public const int abc_edit_text_inset_horizontal_material = 2131099703; - - // aapt resource value: 0x7f060038 - public const int abc_edit_text_inset_top_material = 2131099704; - - // aapt resource value: 0x7f060039 - public const int abc_floating_window_z = 2131099705; - - // aapt resource value: 0x7f06003a - public const int abc_list_item_padding_horizontal_material = 2131099706; - - // aapt resource value: 0x7f06003b - public const int abc_panel_menu_list_width = 2131099707; - - // aapt resource value: 0x7f06003c - public const int abc_search_view_preferred_width = 2131099708; - - // aapt resource value: 0x7f060018 - public const int abc_search_view_text_min_width = 2131099672; - - // aapt resource value: 0x7f06003d - public const int abc_seekbar_track_background_height_material = 2131099709; - - // aapt resource value: 0x7f06003e - public const int abc_seekbar_track_progress_height_material = 2131099710; - - // aapt resource value: 0x7f06003f - public const int abc_select_dialog_padding_start_material = 2131099711; - - // aapt resource value: 0x7f06001c - public const int abc_switch_padding = 2131099676; - - // aapt resource value: 0x7f060040 - public const int abc_text_size_body_1_material = 2131099712; - - // aapt resource value: 0x7f060041 - public const int abc_text_size_body_2_material = 2131099713; - - // aapt resource value: 0x7f060042 - public const int abc_text_size_button_material = 2131099714; - - // aapt resource value: 0x7f060043 - public const int abc_text_size_caption_material = 2131099715; - - // aapt resource value: 0x7f060044 - public const int abc_text_size_display_1_material = 2131099716; - - // aapt resource value: 0x7f060045 - public const int abc_text_size_display_2_material = 2131099717; - - // aapt resource value: 0x7f060046 - public const int abc_text_size_display_3_material = 2131099718; - - // aapt resource value: 0x7f060047 - public const int abc_text_size_display_4_material = 2131099719; - - // aapt resource value: 0x7f060048 - public const int abc_text_size_headline_material = 2131099720; - - // aapt resource value: 0x7f060049 - public const int abc_text_size_large_material = 2131099721; - - // aapt resource value: 0x7f06004a - public const int abc_text_size_medium_material = 2131099722; - - // aapt resource value: 0x7f06004b - public const int abc_text_size_menu_material = 2131099723; - - // aapt resource value: 0x7f06004c - public const int abc_text_size_small_material = 2131099724; - - // aapt resource value: 0x7f06004d - public const int abc_text_size_subhead_material = 2131099725; - - // aapt resource value: 0x7f06000f - public const int abc_text_size_subtitle_material_toolbar = 2131099663; - - // aapt resource value: 0x7f06004e - public const int abc_text_size_title_material = 2131099726; - - // aapt resource value: 0x7f060010 - public const int abc_text_size_title_material_toolbar = 2131099664; - - // aapt resource value: 0x7f060009 - public const int cardview_compat_inset_shadow = 2131099657; - - // aapt resource value: 0x7f06000a - public const int cardview_default_elevation = 2131099658; - - // aapt resource value: 0x7f06000b - public const int cardview_default_radius = 2131099659; - - // aapt resource value: 0x7f06005f - public const int design_appbar_elevation = 2131099743; - - // aapt resource value: 0x7f060060 - public const int design_bottom_sheet_modal_elevation = 2131099744; - - // aapt resource value: 0x7f060061 - public const int design_bottom_sheet_modal_peek_height = 2131099745; - - // aapt resource value: 0x7f060062 - public const int design_fab_border_width = 2131099746; - - // aapt resource value: 0x7f060063 - public const int design_fab_elevation = 2131099747; - - // aapt resource value: 0x7f060064 - public const int design_fab_image_size = 2131099748; - - // aapt resource value: 0x7f060065 - public const int design_fab_size_mini = 2131099749; - - // aapt resource value: 0x7f060066 - public const int design_fab_size_normal = 2131099750; - - // aapt resource value: 0x7f060067 - public const int design_fab_translation_z_pressed = 2131099751; - - // aapt resource value: 0x7f060068 - public const int design_navigation_elevation = 2131099752; - - // aapt resource value: 0x7f060069 - public const int design_navigation_icon_padding = 2131099753; - - // aapt resource value: 0x7f06006a - public const int design_navigation_icon_size = 2131099754; - - // aapt resource value: 0x7f060057 - public const int design_navigation_max_width = 2131099735; - - // aapt resource value: 0x7f06006b - public const int design_navigation_padding_bottom = 2131099755; - - // aapt resource value: 0x7f06006c - public const int design_navigation_separator_vertical_padding = 2131099756; - - // aapt resource value: 0x7f060058 - public const int design_snackbar_action_inline_max_width = 2131099736; - - // aapt resource value: 0x7f060059 - public const int design_snackbar_background_corner_radius = 2131099737; - - // aapt resource value: 0x7f06006d - public const int design_snackbar_elevation = 2131099757; - - // aapt resource value: 0x7f06005a - public const int design_snackbar_extra_spacing_horizontal = 2131099738; - - // aapt resource value: 0x7f06005b - public const int design_snackbar_max_width = 2131099739; - - // aapt resource value: 0x7f06005c - public const int design_snackbar_min_width = 2131099740; - - // aapt resource value: 0x7f06006e - public const int design_snackbar_padding_horizontal = 2131099758; - - // aapt resource value: 0x7f06006f - public const int design_snackbar_padding_vertical = 2131099759; - - // aapt resource value: 0x7f06005d - public const int design_snackbar_padding_vertical_2lines = 2131099741; - - // aapt resource value: 0x7f060070 - public const int design_snackbar_text_size = 2131099760; - - // aapt resource value: 0x7f060071 - public const int design_tab_max_width = 2131099761; - - // aapt resource value: 0x7f06005e - public const int design_tab_scrollable_min_width = 2131099742; - - // aapt resource value: 0x7f060072 - public const int design_tab_text_size = 2131099762; - - // aapt resource value: 0x7f060073 - public const int design_tab_text_size_2line = 2131099763; - - // aapt resource value: 0x7f06004f - public const int disabled_alpha_material_dark = 2131099727; - - // aapt resource value: 0x7f060050 - public const int disabled_alpha_material_light = 2131099728; - - // aapt resource value: 0x7f060051 - public const int highlight_alpha_material_colored = 2131099729; - - // aapt resource value: 0x7f060052 - public const int highlight_alpha_material_dark = 2131099730; - - // aapt resource value: 0x7f060053 - public const int highlight_alpha_material_light = 2131099731; - - // aapt resource value: 0x7f060000 - public const int item_touch_helper_max_drag_scroll_per_frame = 2131099648; - - // aapt resource value: 0x7f060001 - public const int item_touch_helper_swipe_escape_max_velocity = 2131099649; - - // aapt resource value: 0x7f060002 - public const int item_touch_helper_swipe_escape_velocity = 2131099650; - - // aapt resource value: 0x7f060003 - public const int mr_controller_volume_group_list_item_height = 2131099651; - - // aapt resource value: 0x7f060004 - public const int mr_controller_volume_group_list_item_icon_size = 2131099652; - - // aapt resource value: 0x7f060005 - public const int mr_controller_volume_group_list_max_height = 2131099653; - - // aapt resource value: 0x7f060008 - public const int mr_controller_volume_group_list_padding_top = 2131099656; - - // aapt resource value: 0x7f060006 - public const int mr_dialog_fixed_width_major = 2131099654; - - // aapt resource value: 0x7f060007 - public const int mr_dialog_fixed_width_minor = 2131099655; - - // aapt resource value: 0x7f060054 - public const int notification_large_icon_height = 2131099732; - - // aapt resource value: 0x7f060055 - public const int notification_large_icon_width = 2131099733; - - // aapt resource value: 0x7f060056 - public const int notification_subtext_size = 2131099734; - - static Dimension() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Dimension() - { - } - } - - public partial class Drawable - { - - // aapt resource value: 0x7f020000 - public const int abc_ab_share_pack_mtrl_alpha = 2130837504; - - // aapt resource value: 0x7f020001 - public const int abc_action_bar_item_background_material = 2130837505; - - // aapt resource value: 0x7f020002 - public const int abc_btn_borderless_material = 2130837506; - - // aapt resource value: 0x7f020003 - public const int abc_btn_check_material = 2130837507; - - // aapt resource value: 0x7f020004 - public const int abc_btn_check_to_on_mtrl_000 = 2130837508; - - // aapt resource value: 0x7f020005 - public const int abc_btn_check_to_on_mtrl_015 = 2130837509; - - // aapt resource value: 0x7f020006 - public const int abc_btn_colored_material = 2130837510; - - // aapt resource value: 0x7f020007 - public const int abc_btn_default_mtrl_shape = 2130837511; - - // aapt resource value: 0x7f020008 - public const int abc_btn_radio_material = 2130837512; - - // aapt resource value: 0x7f020009 - public const int abc_btn_radio_to_on_mtrl_000 = 2130837513; - - // aapt resource value: 0x7f02000a - public const int abc_btn_radio_to_on_mtrl_015 = 2130837514; - - // aapt resource value: 0x7f02000b - public const int abc_btn_rating_star_off_mtrl_alpha = 2130837515; - - // aapt resource value: 0x7f02000c - public const int abc_btn_rating_star_on_mtrl_alpha = 2130837516; - - // aapt resource value: 0x7f02000d - public const int abc_btn_switch_to_on_mtrl_00001 = 2130837517; - - // aapt resource value: 0x7f02000e - public const int abc_btn_switch_to_on_mtrl_00012 = 2130837518; - - // aapt resource value: 0x7f02000f - public const int abc_cab_background_internal_bg = 2130837519; - - // aapt resource value: 0x7f020010 - public const int abc_cab_background_top_material = 2130837520; - - // aapt resource value: 0x7f020011 - public const int abc_cab_background_top_mtrl_alpha = 2130837521; - - // aapt resource value: 0x7f020012 - public const int abc_control_background_material = 2130837522; - - // aapt resource value: 0x7f020013 - public const int abc_dialog_material_background_dark = 2130837523; - - // aapt resource value: 0x7f020014 - public const int abc_dialog_material_background_light = 2130837524; - - // aapt resource value: 0x7f020015 - public const int abc_edit_text_material = 2130837525; - - // aapt resource value: 0x7f020016 - public const int abc_ic_ab_back_mtrl_am_alpha = 2130837526; - - // aapt resource value: 0x7f020017 - public const int abc_ic_clear_mtrl_alpha = 2130837527; - - // aapt resource value: 0x7f020018 - public const int abc_ic_commit_search_api_mtrl_alpha = 2130837528; - - // aapt resource value: 0x7f020019 - public const int abc_ic_go_search_api_mtrl_alpha = 2130837529; - - // aapt resource value: 0x7f02001a - public const int abc_ic_menu_copy_mtrl_am_alpha = 2130837530; - - // aapt resource value: 0x7f02001b - public const int abc_ic_menu_cut_mtrl_alpha = 2130837531; - - // aapt resource value: 0x7f02001c - public const int abc_ic_menu_moreoverflow_mtrl_alpha = 2130837532; - - // aapt resource value: 0x7f02001d - public const int abc_ic_menu_paste_mtrl_am_alpha = 2130837533; - - // aapt resource value: 0x7f02001e - public const int abc_ic_menu_selectall_mtrl_alpha = 2130837534; - - // aapt resource value: 0x7f02001f - public const int abc_ic_menu_share_mtrl_alpha = 2130837535; - - // aapt resource value: 0x7f020020 - public const int abc_ic_search_api_mtrl_alpha = 2130837536; - - // aapt resource value: 0x7f020021 - public const int abc_ic_star_black_16dp = 2130837537; - - // aapt resource value: 0x7f020022 - public const int abc_ic_star_black_36dp = 2130837538; - - // aapt resource value: 0x7f020023 - public const int abc_ic_star_half_black_16dp = 2130837539; - - // aapt resource value: 0x7f020024 - public const int abc_ic_star_half_black_36dp = 2130837540; - - // aapt resource value: 0x7f020025 - public const int abc_ic_voice_search_api_mtrl_alpha = 2130837541; - - // aapt resource value: 0x7f020026 - public const int abc_item_background_holo_dark = 2130837542; - - // aapt resource value: 0x7f020027 - public const int abc_item_background_holo_light = 2130837543; - - // aapt resource value: 0x7f020028 - public const int abc_list_divider_mtrl_alpha = 2130837544; - - // aapt resource value: 0x7f020029 - public const int abc_list_focused_holo = 2130837545; - - // aapt resource value: 0x7f02002a - public const int abc_list_longpressed_holo = 2130837546; - - // aapt resource value: 0x7f02002b - public const int abc_list_pressed_holo_dark = 2130837547; - - // aapt resource value: 0x7f02002c - public const int abc_list_pressed_holo_light = 2130837548; - - // aapt resource value: 0x7f02002d - public const int abc_list_selector_background_transition_holo_dark = 2130837549; - - // aapt resource value: 0x7f02002e - public const int abc_list_selector_background_transition_holo_light = 2130837550; - - // aapt resource value: 0x7f02002f - public const int abc_list_selector_disabled_holo_dark = 2130837551; - - // aapt resource value: 0x7f020030 - public const int abc_list_selector_disabled_holo_light = 2130837552; - - // aapt resource value: 0x7f020031 - public const int abc_list_selector_holo_dark = 2130837553; - - // aapt resource value: 0x7f020032 - public const int abc_list_selector_holo_light = 2130837554; - - // aapt resource value: 0x7f020033 - public const int abc_menu_hardkey_panel_mtrl_mult = 2130837555; - - // aapt resource value: 0x7f020034 - public const int abc_popup_background_mtrl_mult = 2130837556; - - // aapt resource value: 0x7f020035 - public const int abc_ratingbar_full_material = 2130837557; - - // aapt resource value: 0x7f020036 - public const int abc_ratingbar_indicator_material = 2130837558; - - // aapt resource value: 0x7f020037 - public const int abc_ratingbar_small_material = 2130837559; - - // aapt resource value: 0x7f020038 - public const int abc_scrubber_control_off_mtrl_alpha = 2130837560; - - // aapt resource value: 0x7f020039 - public const int abc_scrubber_control_to_pressed_mtrl_000 = 2130837561; - - // aapt resource value: 0x7f02003a - public const int abc_scrubber_control_to_pressed_mtrl_005 = 2130837562; - - // aapt resource value: 0x7f02003b - public const int abc_scrubber_primary_mtrl_alpha = 2130837563; - - // aapt resource value: 0x7f02003c - public const int abc_scrubber_track_mtrl_alpha = 2130837564; - - // aapt resource value: 0x7f02003d - public const int abc_seekbar_thumb_material = 2130837565; - - // aapt resource value: 0x7f02003e - public const int abc_seekbar_track_material = 2130837566; - - // aapt resource value: 0x7f02003f - public const int abc_spinner_mtrl_am_alpha = 2130837567; - - // aapt resource value: 0x7f020040 - public const int abc_spinner_textfield_background_material = 2130837568; - - // aapt resource value: 0x7f020041 - public const int abc_switch_thumb_material = 2130837569; - - // aapt resource value: 0x7f020042 - public const int abc_switch_track_mtrl_alpha = 2130837570; - - // aapt resource value: 0x7f020043 - public const int abc_tab_indicator_material = 2130837571; - - // aapt resource value: 0x7f020044 - public const int abc_tab_indicator_mtrl_alpha = 2130837572; - - // aapt resource value: 0x7f020045 - public const int abc_text_cursor_material = 2130837573; - - // aapt resource value: 0x7f020046 - public const int abc_textfield_activated_mtrl_alpha = 2130837574; - - // aapt resource value: 0x7f020047 - public const int abc_textfield_default_mtrl_alpha = 2130837575; - - // aapt resource value: 0x7f020048 - public const int abc_textfield_search_activated_mtrl_alpha = 2130837576; - - // aapt resource value: 0x7f020049 - public const int abc_textfield_search_default_mtrl_alpha = 2130837577; - - // aapt resource value: 0x7f02004a - public const int abc_textfield_search_material = 2130837578; - - // aapt resource value: 0x7f02004b - public const int design_fab_background = 2130837579; - - // aapt resource value: 0x7f02004c - public const int design_snackbar_background = 2130837580; - - // aapt resource value: 0x7f02004d - public const int ic_audiotrack = 2130837581; - - // aapt resource value: 0x7f02004e - public const int ic_audiotrack_light = 2130837582; - - // aapt resource value: 0x7f02004f - public const int ic_bluetooth_grey = 2130837583; - - // aapt resource value: 0x7f020050 - public const int ic_bluetooth_white = 2130837584; - - // aapt resource value: 0x7f020051 - public const int ic_cast_dark = 2130837585; - - // aapt resource value: 0x7f020052 - public const int ic_cast_disabled_light = 2130837586; - - // aapt resource value: 0x7f020053 - public const int ic_cast_grey = 2130837587; - - // aapt resource value: 0x7f020054 - public const int ic_cast_light = 2130837588; - - // aapt resource value: 0x7f020055 - public const int ic_cast_off_light = 2130837589; - - // aapt resource value: 0x7f020056 - public const int ic_cast_on_0_light = 2130837590; - - // aapt resource value: 0x7f020057 - public const int ic_cast_on_1_light = 2130837591; - - // aapt resource value: 0x7f020058 - public const int ic_cast_on_2_light = 2130837592; - - // aapt resource value: 0x7f020059 - public const int ic_cast_on_light = 2130837593; - - // aapt resource value: 0x7f02005a - public const int ic_cast_white = 2130837594; - - // aapt resource value: 0x7f02005b - public const int ic_close_dark = 2130837595; - - // aapt resource value: 0x7f02005c - public const int ic_close_light = 2130837596; - - // aapt resource value: 0x7f02005d - public const int ic_collapse = 2130837597; - - // aapt resource value: 0x7f02005e - public const int ic_collapse_00000 = 2130837598; - - // aapt resource value: 0x7f02005f - public const int ic_collapse_00001 = 2130837599; - - // aapt resource value: 0x7f020060 - public const int ic_collapse_00002 = 2130837600; - - // aapt resource value: 0x7f020061 - public const int ic_collapse_00003 = 2130837601; - - // aapt resource value: 0x7f020062 - public const int ic_collapse_00004 = 2130837602; - - // aapt resource value: 0x7f020063 - public const int ic_collapse_00005 = 2130837603; - - // aapt resource value: 0x7f020064 - public const int ic_collapse_00006 = 2130837604; - - // aapt resource value: 0x7f020065 - public const int ic_collapse_00007 = 2130837605; - - // aapt resource value: 0x7f020066 - public const int ic_collapse_00008 = 2130837606; - - // aapt resource value: 0x7f020067 - public const int ic_collapse_00009 = 2130837607; - - // aapt resource value: 0x7f020068 - public const int ic_collapse_00010 = 2130837608; - - // aapt resource value: 0x7f020069 - public const int ic_collapse_00011 = 2130837609; - - // aapt resource value: 0x7f02006a - public const int ic_collapse_00012 = 2130837610; - - // aapt resource value: 0x7f02006b - public const int ic_collapse_00013 = 2130837611; - - // aapt resource value: 0x7f02006c - public const int ic_collapse_00014 = 2130837612; - - // aapt resource value: 0x7f02006d - public const int ic_collapse_00015 = 2130837613; - - // aapt resource value: 0x7f02006e - public const int ic_expand = 2130837614; - - // aapt resource value: 0x7f02006f - public const int ic_expand_00000 = 2130837615; - - // aapt resource value: 0x7f020070 - public const int ic_expand_00001 = 2130837616; - - // aapt resource value: 0x7f020071 - public const int ic_expand_00002 = 2130837617; - - // aapt resource value: 0x7f020072 - public const int ic_expand_00003 = 2130837618; - - // aapt resource value: 0x7f020073 - public const int ic_expand_00004 = 2130837619; - - // aapt resource value: 0x7f020074 - public const int ic_expand_00005 = 2130837620; - - // aapt resource value: 0x7f020075 - public const int ic_expand_00006 = 2130837621; - - // aapt resource value: 0x7f020076 - public const int ic_expand_00007 = 2130837622; - - // aapt resource value: 0x7f020077 - public const int ic_expand_00008 = 2130837623; - - // aapt resource value: 0x7f020078 - public const int ic_expand_00009 = 2130837624; - - // aapt resource value: 0x7f020079 - public const int ic_expand_00010 = 2130837625; - - // aapt resource value: 0x7f02007a - public const int ic_expand_00011 = 2130837626; - - // aapt resource value: 0x7f02007b - public const int ic_expand_00012 = 2130837627; - - // aapt resource value: 0x7f02007c - public const int ic_expand_00013 = 2130837628; - - // aapt resource value: 0x7f02007d - public const int ic_expand_00014 = 2130837629; - - // aapt resource value: 0x7f02007e - public const int ic_expand_00015 = 2130837630; - - // aapt resource value: 0x7f02007f - public const int ic_media_pause = 2130837631; - - // aapt resource value: 0x7f020080 - public const int ic_media_play = 2130837632; - - // aapt resource value: 0x7f020081 - public const int ic_media_route_disabled_mono_dark = 2130837633; - - // aapt resource value: 0x7f020082 - public const int ic_media_route_off_mono_dark = 2130837634; - - // aapt resource value: 0x7f020083 - public const int ic_media_route_on_0_mono_dark = 2130837635; - - // aapt resource value: 0x7f020084 - public const int ic_media_route_on_1_mono_dark = 2130837636; - - // aapt resource value: 0x7f020085 - public const int ic_media_route_on_2_mono_dark = 2130837637; - - // aapt resource value: 0x7f020086 - public const int ic_media_route_on_mono_dark = 2130837638; - - // aapt resource value: 0x7f020087 - public const int ic_pause_dark = 2130837639; - - // aapt resource value: 0x7f020088 - public const int ic_pause_light = 2130837640; - - // aapt resource value: 0x7f020089 - public const int ic_play_dark = 2130837641; - - // aapt resource value: 0x7f02008a - public const int ic_play_light = 2130837642; - - // aapt resource value: 0x7f02008b - public const int ic_speaker_dark = 2130837643; - - // aapt resource value: 0x7f02008c - public const int ic_speaker_group_dark = 2130837644; - - // aapt resource value: 0x7f02008d - public const int ic_speaker_group_light = 2130837645; - - // aapt resource value: 0x7f02008e - public const int ic_speaker_light = 2130837646; - - // aapt resource value: 0x7f02008f - public const int ic_tv_dark = 2130837647; - - // aapt resource value: 0x7f020090 - public const int ic_tv_light = 2130837648; - - // aapt resource value: 0x7f020091 - public const int icon = 2130837649; - - // aapt resource value: 0x7f020092 - public const int mr_dialog_material_background_dark = 2130837650; - - // aapt resource value: 0x7f020093 - public const int mr_dialog_material_background_light = 2130837651; - - // aapt resource value: 0x7f020094 - public const int mr_ic_audiotrack_light = 2130837652; - - // aapt resource value: 0x7f020095 - public const int mr_ic_cast_dark = 2130837653; - - // aapt resource value: 0x7f020096 - public const int mr_ic_cast_light = 2130837654; - - // aapt resource value: 0x7f020097 - public const int mr_ic_close_dark = 2130837655; - - // aapt resource value: 0x7f020098 - public const int mr_ic_close_light = 2130837656; - - // aapt resource value: 0x7f020099 - public const int mr_ic_media_route_connecting_mono_dark = 2130837657; - - // aapt resource value: 0x7f02009a - public const int mr_ic_media_route_connecting_mono_light = 2130837658; - - // aapt resource value: 0x7f02009b - public const int mr_ic_media_route_mono_dark = 2130837659; - - // aapt resource value: 0x7f02009c - public const int mr_ic_media_route_mono_light = 2130837660; - - // aapt resource value: 0x7f02009d - public const int mr_ic_pause_dark = 2130837661; - - // aapt resource value: 0x7f02009e - public const int mr_ic_pause_light = 2130837662; - - // aapt resource value: 0x7f02009f - public const int mr_ic_play_dark = 2130837663; - - // aapt resource value: 0x7f0200a0 - public const int mr_ic_play_light = 2130837664; - - // aapt resource value: 0x7f0200a1 - public const int notification_template_icon_bg = 2130837665; - - static Drawable() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Drawable() - { - } - } - - public partial class Id - { - - // aapt resource value: 0x7f07008b - public const int action0 = 2131165323; - - // aapt resource value: 0x7f07005a - public const int action_bar = 2131165274; - - // aapt resource value: 0x7f070001 - public const int action_bar_activity_content = 2131165185; - - // aapt resource value: 0x7f070059 - public const int action_bar_container = 2131165273; - - // aapt resource value: 0x7f070055 - public const int action_bar_root = 2131165269; - - // aapt resource value: 0x7f070002 - public const int action_bar_spinner = 2131165186; - - // aapt resource value: 0x7f07003b - public const int action_bar_subtitle = 2131165243; - - // aapt resource value: 0x7f07003a - public const int action_bar_title = 2131165242; - - // aapt resource value: 0x7f07005b - public const int action_context_bar = 2131165275; - - // aapt resource value: 0x7f07008f - public const int action_divider = 2131165327; - - // aapt resource value: 0x7f070003 - public const int action_menu_divider = 2131165187; - - // aapt resource value: 0x7f070004 - public const int action_menu_presenter = 2131165188; - - // aapt resource value: 0x7f070057 - public const int action_mode_bar = 2131165271; - - // aapt resource value: 0x7f070056 - public const int action_mode_bar_stub = 2131165270; - - // aapt resource value: 0x7f07003c - public const int action_mode_close_button = 2131165244; - - // aapt resource value: 0x7f07003d - public const int activity_chooser_view_content = 2131165245; - - // aapt resource value: 0x7f070049 - public const int alertTitle = 2131165257; - - // aapt resource value: 0x7f07001e - public const int always = 2131165214; - - // aapt resource value: 0x7f07001b - public const int beginning = 2131165211; - - // aapt resource value: 0x7f07002a - public const int bottom = 2131165226; - - // aapt resource value: 0x7f070044 - public const int buttonPanel = 2131165252; - - // aapt resource value: 0x7f07008c - public const int cancel_action = 2131165324; - - // aapt resource value: 0x7f07002b - public const int center = 2131165227; - - // aapt resource value: 0x7f07002c - public const int center_horizontal = 2131165228; - - // aapt resource value: 0x7f07002d - public const int center_vertical = 2131165229; - - // aapt resource value: 0x7f070052 - public const int checkbox = 2131165266; - - // aapt resource value: 0x7f070092 - public const int chronometer = 2131165330; - - // aapt resource value: 0x7f070033 - public const int clip_horizontal = 2131165235; - - // aapt resource value: 0x7f070034 - public const int clip_vertical = 2131165236; - - // aapt resource value: 0x7f07001f - public const int collapseActionView = 2131165215; - - // aapt resource value: 0x7f07004a - public const int contentPanel = 2131165258; - - // aapt resource value: 0x7f070050 - public const int custom = 2131165264; - - // aapt resource value: 0x7f07004f - public const int customPanel = 2131165263; - - // aapt resource value: 0x7f070058 - public const int decor_content_parent = 2131165272; - - // aapt resource value: 0x7f070040 - public const int default_activity_button = 2131165248; - - // aapt resource value: 0x7f07006a - public const int design_bottom_sheet = 2131165290; - - // aapt resource value: 0x7f070071 - public const int design_menu_item_action_area = 2131165297; - - // aapt resource value: 0x7f070070 - public const int design_menu_item_action_area_stub = 2131165296; - - // aapt resource value: 0x7f07006f - public const int design_menu_item_text = 2131165295; - - // aapt resource value: 0x7f07006e - public const int design_navigation_view = 2131165294; - - // aapt resource value: 0x7f07000e - public const int disableHome = 2131165198; - - // aapt resource value: 0x7f07005c - public const int edit_query = 2131165276; - - // aapt resource value: 0x7f07001c - public const int end = 2131165212; - - // aapt resource value: 0x7f070097 - public const int end_padder = 2131165335; - - // aapt resource value: 0x7f070023 - public const int enterAlways = 2131165219; - - // aapt resource value: 0x7f070024 - public const int enterAlwaysCollapsed = 2131165220; - - // aapt resource value: 0x7f070025 - public const int exitUntilCollapsed = 2131165221; - - // aapt resource value: 0x7f07003e - public const int expand_activities_button = 2131165246; - - // aapt resource value: 0x7f070051 - public const int expanded_menu = 2131165265; - - // aapt resource value: 0x7f070035 - public const int fill = 2131165237; - - // aapt resource value: 0x7f070036 - public const int fill_horizontal = 2131165238; - - // aapt resource value: 0x7f07002e - public const int fill_vertical = 2131165230; - - // aapt resource value: 0x7f070038 - public const int @fixed = 2131165240; - - // aapt resource value: 0x7f070005 - public const int home = 2131165189; - - // aapt resource value: 0x7f07000f - public const int homeAsUp = 2131165199; - - // aapt resource value: 0x7f070042 - public const int icon = 2131165250; - - // aapt resource value: 0x7f070020 - public const int ifRoom = 2131165216; - - // aapt resource value: 0x7f07003f - public const int image = 2131165247; - - // aapt resource value: 0x7f070096 - public const int info = 2131165334; - - // aapt resource value: 0x7f070000 - public const int item_touch_helper_previous_elevation = 2131165184; - - // aapt resource value: 0x7f07002f - public const int left = 2131165231; - - // aapt resource value: 0x7f070090 - public const int line1 = 2131165328; - - // aapt resource value: 0x7f070094 - public const int line3 = 2131165332; - - // aapt resource value: 0x7f07000b - public const int listMode = 2131165195; - - // aapt resource value: 0x7f070041 - public const int list_item = 2131165249; - - // aapt resource value: 0x7f07008e - public const int media_actions = 2131165326; - - // aapt resource value: 0x7f07001d - public const int middle = 2131165213; - - // aapt resource value: 0x7f070037 - public const int mini = 2131165239; - - // aapt resource value: 0x7f07007d - public const int mr_art = 2131165309; - - // aapt resource value: 0x7f070072 - public const int mr_chooser_list = 2131165298; - - // aapt resource value: 0x7f070075 - public const int mr_chooser_route_desc = 2131165301; - - // aapt resource value: 0x7f070073 - public const int mr_chooser_route_icon = 2131165299; - - // aapt resource value: 0x7f070074 - public const int mr_chooser_route_name = 2131165300; - - // aapt resource value: 0x7f07007a - public const int mr_close = 2131165306; - - // aapt resource value: 0x7f070080 - public const int mr_control_divider = 2131165312; - - // aapt resource value: 0x7f070086 - public const int mr_control_play_pause = 2131165318; - - // aapt resource value: 0x7f070089 - public const int mr_control_subtitle = 2131165321; - - // aapt resource value: 0x7f070088 - public const int mr_control_title = 2131165320; - - // aapt resource value: 0x7f070087 - public const int mr_control_title_container = 2131165319; - - // aapt resource value: 0x7f07007b - public const int mr_custom_control = 2131165307; - - // aapt resource value: 0x7f07007c - public const int mr_default_control = 2131165308; - - // aapt resource value: 0x7f070077 - public const int mr_dialog_area = 2131165303; - - // aapt resource value: 0x7f070076 - public const int mr_expandable_area = 2131165302; - - // aapt resource value: 0x7f07008a - public const int mr_group_expand_collapse = 2131165322; - - // aapt resource value: 0x7f07007e - public const int mr_media_main_control = 2131165310; - - // aapt resource value: 0x7f070079 - public const int mr_name = 2131165305; - - // aapt resource value: 0x7f07007f - public const int mr_playback_control = 2131165311; - - // aapt resource value: 0x7f070078 - public const int mr_title_bar = 2131165304; - - // aapt resource value: 0x7f070081 - public const int mr_volume_control = 2131165313; - - // aapt resource value: 0x7f070082 - public const int mr_volume_group_list = 2131165314; - - // aapt resource value: 0x7f070084 - public const int mr_volume_item_icon = 2131165316; - - // aapt resource value: 0x7f070085 - public const int mr_volume_slider = 2131165317; - - // aapt resource value: 0x7f070016 - public const int multiply = 2131165206; - - // aapt resource value: 0x7f07006d - public const int navigation_header_container = 2131165293; - - // aapt resource value: 0x7f070021 - public const int never = 2131165217; - - // aapt resource value: 0x7f070010 - public const int none = 2131165200; - - // aapt resource value: 0x7f07000c - public const int normal = 2131165196; - - // aapt resource value: 0x7f070028 - public const int parallax = 2131165224; - - // aapt resource value: 0x7f070046 - public const int parentPanel = 2131165254; - - // aapt resource value: 0x7f070029 - public const int pin = 2131165225; - - // aapt resource value: 0x7f070006 - public const int progress_circular = 2131165190; - - // aapt resource value: 0x7f070007 - public const int progress_horizontal = 2131165191; - - // aapt resource value: 0x7f070054 - public const int radio = 2131165268; - - // aapt resource value: 0x7f070030 - public const int right = 2131165232; - - // aapt resource value: 0x7f070017 - public const int screen = 2131165207; - - // aapt resource value: 0x7f070026 - public const int scroll = 2131165222; - - // aapt resource value: 0x7f07004e - public const int scrollIndicatorDown = 2131165262; - - // aapt resource value: 0x7f07004b - public const int scrollIndicatorUp = 2131165259; - - // aapt resource value: 0x7f07004c - public const int scrollView = 2131165260; - - // aapt resource value: 0x7f070039 - public const int scrollable = 2131165241; - - // aapt resource value: 0x7f07005e - public const int search_badge = 2131165278; - - // aapt resource value: 0x7f07005d - public const int search_bar = 2131165277; - - // aapt resource value: 0x7f07005f - public const int search_button = 2131165279; - - // aapt resource value: 0x7f070064 - public const int search_close_btn = 2131165284; - - // aapt resource value: 0x7f070060 - public const int search_edit_frame = 2131165280; - - // aapt resource value: 0x7f070066 - public const int search_go_btn = 2131165286; - - // aapt resource value: 0x7f070061 - public const int search_mag_icon = 2131165281; - - // aapt resource value: 0x7f070062 - public const int search_plate = 2131165282; - - // aapt resource value: 0x7f070063 - public const int search_src_text = 2131165283; - - // aapt resource value: 0x7f070067 - public const int search_voice_btn = 2131165287; - - // aapt resource value: 0x7f070068 - public const int select_dialog_listview = 2131165288; - - // aapt resource value: 0x7f070053 - public const int shortcut = 2131165267; - - // aapt resource value: 0x7f070011 - public const int showCustom = 2131165201; - - // aapt resource value: 0x7f070012 - public const int showHome = 2131165202; - - // aapt resource value: 0x7f070013 - public const int showTitle = 2131165203; - - // aapt resource value: 0x7f070098 - public const int sliding_tabs = 2131165336; - - // aapt resource value: 0x7f07006c - public const int snackbar_action = 2131165292; - - // aapt resource value: 0x7f07006b - public const int snackbar_text = 2131165291; - - // aapt resource value: 0x7f070027 - public const int snap = 2131165223; - - // aapt resource value: 0x7f070045 - public const int spacer = 2131165253; - - // aapt resource value: 0x7f070008 - public const int split_action_bar = 2131165192; - - // aapt resource value: 0x7f070018 - public const int src_atop = 2131165208; - - // aapt resource value: 0x7f070019 - public const int src_in = 2131165209; - - // aapt resource value: 0x7f07001a - public const int src_over = 2131165210; - - // aapt resource value: 0x7f070031 - public const int start = 2131165233; - - // aapt resource value: 0x7f07008d - public const int status_bar_latest_event_content = 2131165325; - - // aapt resource value: 0x7f070065 - public const int submit_area = 2131165285; - - // aapt resource value: 0x7f07000d - public const int tabMode = 2131165197; - - // aapt resource value: 0x7f070095 - public const int text = 2131165333; - - // aapt resource value: 0x7f070093 - public const int text2 = 2131165331; - - // aapt resource value: 0x7f07004d - public const int textSpacerNoButtons = 2131165261; - - // aapt resource value: 0x7f070091 - public const int time = 2131165329; - - // aapt resource value: 0x7f070043 - public const int title = 2131165251; - - // aapt resource value: 0x7f070048 - public const int title_template = 2131165256; - - // aapt resource value: 0x7f070099 - public const int toolbar = 2131165337; - - // aapt resource value: 0x7f070032 - public const int top = 2131165234; - - // aapt resource value: 0x7f070047 - public const int topPanel = 2131165255; - - // aapt resource value: 0x7f070069 - public const int touch_outside = 2131165289; - - // aapt resource value: 0x7f070009 - public const int up = 2131165193; - - // aapt resource value: 0x7f070014 - public const int useLogo = 2131165204; - - // aapt resource value: 0x7f07000a - public const int view_offset_helper = 2131165194; - - // aapt resource value: 0x7f070083 - public const int volume_item_container = 2131165315; - - // aapt resource value: 0x7f070022 - public const int withText = 2131165218; - - // aapt resource value: 0x7f070015 - public const int wrap_content = 2131165205; - - static Id() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Id() - { - } - } - - public partial class Integer - { - - // aapt resource value: 0x7f090004 - public const int abc_config_activityDefaultDur = 2131296260; - - // aapt resource value: 0x7f090005 - public const int abc_config_activityShortDur = 2131296261; - - // aapt resource value: 0x7f090003 - public const int abc_max_action_buttons = 2131296259; - - // aapt resource value: 0x7f090009 - public const int bottom_sheet_slide_duration = 2131296265; - - // aapt resource value: 0x7f090006 - public const int cancel_button_image_alpha = 2131296262; - - // aapt resource value: 0x7f090008 - public const int design_snackbar_text_max_lines = 2131296264; - - // aapt resource value: 0x7f090000 - public const int mr_controller_volume_group_list_animation_duration_ms = 2131296256; - - // aapt resource value: 0x7f090001 - public const int mr_controller_volume_group_list_fade_in_duration_ms = 2131296257; - - // aapt resource value: 0x7f090002 - public const int mr_controller_volume_group_list_fade_out_duration_ms = 2131296258; - - // aapt resource value: 0x7f090007 - public const int status_bar_notification_info_maxnum = 2131296263; - - static Integer() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Integer() - { - } - } - - public partial class Interpolator - { - - // aapt resource value: 0x7f050000 - public const int mr_fast_out_slow_in = 2131034112; - - // aapt resource value: 0x7f050001 - public const int mr_linear_out_slow_in = 2131034113; - - static Interpolator() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Interpolator() - { - } - } - - public partial class Layout - { - - // aapt resource value: 0x7f030000 - public const int abc_action_bar_title_item = 2130903040; - - // aapt resource value: 0x7f030001 - public const int abc_action_bar_up_container = 2130903041; - - // aapt resource value: 0x7f030002 - public const int abc_action_bar_view_list_nav_layout = 2130903042; - - // aapt resource value: 0x7f030003 - public const int abc_action_menu_item_layout = 2130903043; - - // aapt resource value: 0x7f030004 - public const int abc_action_menu_layout = 2130903044; - - // aapt resource value: 0x7f030005 - public const int abc_action_mode_bar = 2130903045; - - // aapt resource value: 0x7f030006 - public const int abc_action_mode_close_item_material = 2130903046; - - // aapt resource value: 0x7f030007 - public const int abc_activity_chooser_view = 2130903047; - - // aapt resource value: 0x7f030008 - public const int abc_activity_chooser_view_list_item = 2130903048; - - // aapt resource value: 0x7f030009 - public const int abc_alert_dialog_button_bar_material = 2130903049; - - // aapt resource value: 0x7f03000a - public const int abc_alert_dialog_material = 2130903050; - - // aapt resource value: 0x7f03000b - public const int abc_dialog_title_material = 2130903051; - - // aapt resource value: 0x7f03000c - public const int abc_expanded_menu_layout = 2130903052; - - // aapt resource value: 0x7f03000d - public const int abc_list_menu_item_checkbox = 2130903053; - - // aapt resource value: 0x7f03000e - public const int abc_list_menu_item_icon = 2130903054; - - // aapt resource value: 0x7f03000f - public const int abc_list_menu_item_layout = 2130903055; - - // aapt resource value: 0x7f030010 - public const int abc_list_menu_item_radio = 2130903056; - - // aapt resource value: 0x7f030011 - public const int abc_popup_menu_item_layout = 2130903057; - - // aapt resource value: 0x7f030012 - public const int abc_screen_content_include = 2130903058; - - // aapt resource value: 0x7f030013 - public const int abc_screen_simple = 2130903059; - - // aapt resource value: 0x7f030014 - public const int abc_screen_simple_overlay_action_mode = 2130903060; - - // aapt resource value: 0x7f030015 - public const int abc_screen_toolbar = 2130903061; - - // aapt resource value: 0x7f030016 - public const int abc_search_dropdown_item_icons_2line = 2130903062; - - // aapt resource value: 0x7f030017 - public const int abc_search_view = 2130903063; - - // aapt resource value: 0x7f030018 - public const int abc_select_dialog_material = 2130903064; - - // aapt resource value: 0x7f030019 - public const int design_bottom_sheet_dialog = 2130903065; - - // aapt resource value: 0x7f03001a - public const int design_layout_snackbar = 2130903066; - - // aapt resource value: 0x7f03001b - public const int design_layout_snackbar_include = 2130903067; - - // aapt resource value: 0x7f03001c - public const int design_layout_tab_icon = 2130903068; - - // aapt resource value: 0x7f03001d - public const int design_layout_tab_text = 2130903069; - - // aapt resource value: 0x7f03001e - public const int design_menu_item_action_area = 2130903070; - - // aapt resource value: 0x7f03001f - public const int design_navigation_item = 2130903071; - - // aapt resource value: 0x7f030020 - public const int design_navigation_item_header = 2130903072; - - // aapt resource value: 0x7f030021 - public const int design_navigation_item_separator = 2130903073; - - // aapt resource value: 0x7f030022 - public const int design_navigation_item_subheader = 2130903074; - - // aapt resource value: 0x7f030023 - public const int design_navigation_menu = 2130903075; - - // aapt resource value: 0x7f030024 - public const int design_navigation_menu_item = 2130903076; - - // aapt resource value: 0x7f030025 - public const int mr_chooser_dialog = 2130903077; - - // aapt resource value: 0x7f030026 - public const int mr_chooser_list_item = 2130903078; - - // aapt resource value: 0x7f030027 - public const int mr_controller_material_dialog_b = 2130903079; - - // aapt resource value: 0x7f030028 - public const int mr_controller_volume_item = 2130903080; - - // aapt resource value: 0x7f030029 - public const int mr_playback_control = 2130903081; - - // aapt resource value: 0x7f03002a - public const int mr_volume_control = 2130903082; - - // aapt resource value: 0x7f03002b - public const int notification_media_action = 2130903083; - - // aapt resource value: 0x7f03002c - public const int notification_media_cancel_action = 2130903084; - - // aapt resource value: 0x7f03002d - public const int notification_template_big_media = 2130903085; - - // aapt resource value: 0x7f03002e - public const int notification_template_big_media_narrow = 2130903086; - - // aapt resource value: 0x7f03002f - public const int notification_template_lines = 2130903087; - - // aapt resource value: 0x7f030030 - public const int notification_template_media = 2130903088; - - // aapt resource value: 0x7f030031 - public const int notification_template_part_chronometer = 2130903089; - - // aapt resource value: 0x7f030032 - public const int notification_template_part_time = 2130903090; - - // aapt resource value: 0x7f030033 - public const int select_dialog_item_material = 2130903091; - - // aapt resource value: 0x7f030034 - public const int select_dialog_multichoice_material = 2130903092; - - // aapt resource value: 0x7f030035 - public const int select_dialog_singlechoice_material = 2130903093; - - // aapt resource value: 0x7f030036 - public const int support_simple_spinner_dropdown_item = 2130903094; - - // aapt resource value: 0x7f030037 - public const int Tabbar = 2130903095; - - // aapt resource value: 0x7f030038 - public const int Toolbar = 2130903096; - - static Layout() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Layout() - { - } - } - - public partial class String - { - - // aapt resource value: 0x7f08000f - public const int abc_action_bar_home_description = 2131230735; - - // aapt resource value: 0x7f080010 - public const int abc_action_bar_home_description_format = 2131230736; - - // aapt resource value: 0x7f080011 - public const int abc_action_bar_home_subtitle_description_format = 2131230737; - - // aapt resource value: 0x7f080012 - public const int abc_action_bar_up_description = 2131230738; - - // aapt resource value: 0x7f080013 - public const int abc_action_menu_overflow_description = 2131230739; - - // aapt resource value: 0x7f080014 - public const int abc_action_mode_done = 2131230740; - - // aapt resource value: 0x7f080015 - public const int abc_activity_chooser_view_see_all = 2131230741; - - // aapt resource value: 0x7f080016 - public const int abc_activitychooserview_choose_application = 2131230742; - - // aapt resource value: 0x7f080017 - public const int abc_capital_off = 2131230743; - - // aapt resource value: 0x7f080018 - public const int abc_capital_on = 2131230744; - - // aapt resource value: 0x7f080019 - public const int abc_search_hint = 2131230745; - - // aapt resource value: 0x7f08001a - public const int abc_searchview_description_clear = 2131230746; - - // aapt resource value: 0x7f08001b - public const int abc_searchview_description_query = 2131230747; - - // aapt resource value: 0x7f08001c - public const int abc_searchview_description_search = 2131230748; - - // aapt resource value: 0x7f08001d - public const int abc_searchview_description_submit = 2131230749; - - // aapt resource value: 0x7f08001e - public const int abc_searchview_description_voice = 2131230750; - - // aapt resource value: 0x7f08001f - public const int abc_shareactionprovider_share_with = 2131230751; - - // aapt resource value: 0x7f080020 - public const int abc_shareactionprovider_share_with_application = 2131230752; - - // aapt resource value: 0x7f080021 - public const int abc_toolbar_collapse_description = 2131230753; - - // aapt resource value: 0x7f080023 - public const int appbar_scrolling_view_behavior = 2131230755; - - // aapt resource value: 0x7f080024 - public const int bottom_sheet_behavior = 2131230756; - - // aapt resource value: 0x7f080025 - public const int character_counter_pattern = 2131230757; - - // aapt resource value: 0x7f080000 - public const int mr_button_content_description = 2131230720; - - // aapt resource value: 0x7f080001 - public const int mr_chooser_searching = 2131230721; - - // aapt resource value: 0x7f080002 - public const int mr_chooser_title = 2131230722; - - // aapt resource value: 0x7f080003 - public const int mr_controller_casting_screen = 2131230723; - - // aapt resource value: 0x7f080004 - public const int mr_controller_close_description = 2131230724; - - // aapt resource value: 0x7f080005 - public const int mr_controller_collapse_group = 2131230725; - - // aapt resource value: 0x7f080006 - public const int mr_controller_disconnect = 2131230726; - - // aapt resource value: 0x7f080007 - public const int mr_controller_expand_group = 2131230727; - - // aapt resource value: 0x7f080008 - public const int mr_controller_no_info_available = 2131230728; - - // aapt resource value: 0x7f080009 - public const int mr_controller_no_media_selected = 2131230729; - - // aapt resource value: 0x7f08000a - public const int mr_controller_pause = 2131230730; - - // aapt resource value: 0x7f08000b - public const int mr_controller_play = 2131230731; - - // aapt resource value: 0x7f08000c - public const int mr_controller_stop = 2131230732; - - // aapt resource value: 0x7f08000d - public const int mr_system_route_name = 2131230733; - - // aapt resource value: 0x7f08000e - public const int mr_user_route_category_name = 2131230734; - - // aapt resource value: 0x7f080022 - public const int status_bar_notification_info_overflow = 2131230754; - - static String() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private String() - { - } - } - - public partial class Style - { - - // aapt resource value: 0x7f0a00a1 - public const int AlertDialog_AppCompat = 2131361953; - - // aapt resource value: 0x7f0a00a2 - public const int AlertDialog_AppCompat_Light = 2131361954; - - // aapt resource value: 0x7f0a00a3 - public const int Animation_AppCompat_Dialog = 2131361955; - - // aapt resource value: 0x7f0a00a4 - public const int Animation_AppCompat_DropDownUp = 2131361956; - - // aapt resource value: 0x7f0a015a - public const int Animation_Design_BottomSheetDialog = 2131362138; - - // aapt resource value: 0x7f0a0174 - public const int AppCompatDialogStyle = 2131362164; - - // aapt resource value: 0x7f0a00a5 - public const int Base_AlertDialog_AppCompat = 2131361957; - - // aapt resource value: 0x7f0a00a6 - public const int Base_AlertDialog_AppCompat_Light = 2131361958; - - // aapt resource value: 0x7f0a00a7 - public const int Base_Animation_AppCompat_Dialog = 2131361959; - - // aapt resource value: 0x7f0a00a8 - public const int Base_Animation_AppCompat_DropDownUp = 2131361960; - - // aapt resource value: 0x7f0a0018 - public const int Base_CardView = 2131361816; - - // aapt resource value: 0x7f0a00a9 - public const int Base_DialogWindowTitle_AppCompat = 2131361961; - - // aapt resource value: 0x7f0a00aa - public const int Base_DialogWindowTitleBackground_AppCompat = 2131361962; - - // aapt resource value: 0x7f0a0051 - public const int Base_TextAppearance_AppCompat = 2131361873; - - // aapt resource value: 0x7f0a0052 - public const int Base_TextAppearance_AppCompat_Body1 = 2131361874; - - // aapt resource value: 0x7f0a0053 - public const int Base_TextAppearance_AppCompat_Body2 = 2131361875; - - // aapt resource value: 0x7f0a003b - public const int Base_TextAppearance_AppCompat_Button = 2131361851; - - // aapt resource value: 0x7f0a0054 - public const int Base_TextAppearance_AppCompat_Caption = 2131361876; - - // aapt resource value: 0x7f0a0055 - public const int Base_TextAppearance_AppCompat_Display1 = 2131361877; - - // aapt resource value: 0x7f0a0056 - public const int Base_TextAppearance_AppCompat_Display2 = 2131361878; - - // aapt resource value: 0x7f0a0057 - public const int Base_TextAppearance_AppCompat_Display3 = 2131361879; - - // aapt resource value: 0x7f0a0058 - public const int Base_TextAppearance_AppCompat_Display4 = 2131361880; - - // aapt resource value: 0x7f0a0059 - public const int Base_TextAppearance_AppCompat_Headline = 2131361881; - - // aapt resource value: 0x7f0a0026 - public const int Base_TextAppearance_AppCompat_Inverse = 2131361830; - - // aapt resource value: 0x7f0a005a - public const int Base_TextAppearance_AppCompat_Large = 2131361882; - - // aapt resource value: 0x7f0a0027 - public const int Base_TextAppearance_AppCompat_Large_Inverse = 2131361831; - - // aapt resource value: 0x7f0a005b - public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131361883; - - // aapt resource value: 0x7f0a005c - public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131361884; - - // aapt resource value: 0x7f0a005d - public const int Base_TextAppearance_AppCompat_Medium = 2131361885; - - // aapt resource value: 0x7f0a0028 - public const int Base_TextAppearance_AppCompat_Medium_Inverse = 2131361832; - - // aapt resource value: 0x7f0a005e - public const int Base_TextAppearance_AppCompat_Menu = 2131361886; - - // aapt resource value: 0x7f0a00ab - public const int Base_TextAppearance_AppCompat_SearchResult = 2131361963; - - // aapt resource value: 0x7f0a005f - public const int Base_TextAppearance_AppCompat_SearchResult_Subtitle = 2131361887; - - // aapt resource value: 0x7f0a0060 - public const int Base_TextAppearance_AppCompat_SearchResult_Title = 2131361888; - - // aapt resource value: 0x7f0a0061 - public const int Base_TextAppearance_AppCompat_Small = 2131361889; - - // aapt resource value: 0x7f0a0029 - public const int Base_TextAppearance_AppCompat_Small_Inverse = 2131361833; - - // aapt resource value: 0x7f0a0062 - public const int Base_TextAppearance_AppCompat_Subhead = 2131361890; - - // aapt resource value: 0x7f0a002a - public const int Base_TextAppearance_AppCompat_Subhead_Inverse = 2131361834; - - // aapt resource value: 0x7f0a0063 - public const int Base_TextAppearance_AppCompat_Title = 2131361891; - - // aapt resource value: 0x7f0a002b - public const int Base_TextAppearance_AppCompat_Title_Inverse = 2131361835; - - // aapt resource value: 0x7f0a009a - public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131361946; - - // aapt resource value: 0x7f0a0064 - public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131361892; - - // aapt resource value: 0x7f0a0065 - public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131361893; - - // aapt resource value: 0x7f0a0066 - public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title = 2131361894; - - // aapt resource value: 0x7f0a0067 - public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131361895; - - // aapt resource value: 0x7f0a0068 - public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131361896; - - // aapt resource value: 0x7f0a0069 - public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Title = 2131361897; - - // aapt resource value: 0x7f0a006a - public const int Base_TextAppearance_AppCompat_Widget_Button = 2131361898; - - // aapt resource value: 0x7f0a009b - public const int Base_TextAppearance_AppCompat_Widget_Button_Inverse = 2131361947; - - // aapt resource value: 0x7f0a00ac - public const int Base_TextAppearance_AppCompat_Widget_DropDownItem = 2131361964; - - // aapt resource value: 0x7f0a006b - public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131361899; - - // aapt resource value: 0x7f0a006c - public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131361900; - - // aapt resource value: 0x7f0a006d - public const int Base_TextAppearance_AppCompat_Widget_Switch = 2131361901; - - // aapt resource value: 0x7f0a006e - public const int Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131361902; - - // aapt resource value: 0x7f0a00ad - public const int Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131361965; - - // aapt resource value: 0x7f0a006f - public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131361903; - - // aapt resource value: 0x7f0a0070 - public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Title = 2131361904; - - // aapt resource value: 0x7f0a0071 - public const int Base_Theme_AppCompat = 2131361905; - - // aapt resource value: 0x7f0a00ae - public const int Base_Theme_AppCompat_CompactMenu = 2131361966; - - // aapt resource value: 0x7f0a002c - public const int Base_Theme_AppCompat_Dialog = 2131361836; - - // aapt resource value: 0x7f0a00af - public const int Base_Theme_AppCompat_Dialog_Alert = 2131361967; - - // aapt resource value: 0x7f0a00b0 - public const int Base_Theme_AppCompat_Dialog_FixedSize = 2131361968; - - // aapt resource value: 0x7f0a00b1 - public const int Base_Theme_AppCompat_Dialog_MinWidth = 2131361969; - - // aapt resource value: 0x7f0a001c - public const int Base_Theme_AppCompat_DialogWhenLarge = 2131361820; - - // aapt resource value: 0x7f0a0072 - public const int Base_Theme_AppCompat_Light = 2131361906; - - // aapt resource value: 0x7f0a00b2 - public const int Base_Theme_AppCompat_Light_DarkActionBar = 2131361970; - - // aapt resource value: 0x7f0a002d - public const int Base_Theme_AppCompat_Light_Dialog = 2131361837; - - // aapt resource value: 0x7f0a00b3 - public const int Base_Theme_AppCompat_Light_Dialog_Alert = 2131361971; - - // aapt resource value: 0x7f0a00b4 - public const int Base_Theme_AppCompat_Light_Dialog_FixedSize = 2131361972; - - // aapt resource value: 0x7f0a00b5 - public const int Base_Theme_AppCompat_Light_Dialog_MinWidth = 2131361973; - - // aapt resource value: 0x7f0a001d - public const int Base_Theme_AppCompat_Light_DialogWhenLarge = 2131361821; - - // aapt resource value: 0x7f0a00b6 - public const int Base_ThemeOverlay_AppCompat = 2131361974; - - // aapt resource value: 0x7f0a00b7 - public const int Base_ThemeOverlay_AppCompat_ActionBar = 2131361975; - - // aapt resource value: 0x7f0a00b8 - public const int Base_ThemeOverlay_AppCompat_Dark = 2131361976; - - // aapt resource value: 0x7f0a00b9 - public const int Base_ThemeOverlay_AppCompat_Dark_ActionBar = 2131361977; - - // aapt resource value: 0x7f0a00ba - public const int Base_ThemeOverlay_AppCompat_Light = 2131361978; - - // aapt resource value: 0x7f0a002e - public const int Base_V11_Theme_AppCompat_Dialog = 2131361838; - - // aapt resource value: 0x7f0a002f - public const int Base_V11_Theme_AppCompat_Light_Dialog = 2131361839; - - // aapt resource value: 0x7f0a0037 - public const int Base_V12_Widget_AppCompat_AutoCompleteTextView = 2131361847; - - // aapt resource value: 0x7f0a0038 - public const int Base_V12_Widget_AppCompat_EditText = 2131361848; - - // aapt resource value: 0x7f0a0073 - public const int Base_V21_Theme_AppCompat = 2131361907; - - // aapt resource value: 0x7f0a0074 - public const int Base_V21_Theme_AppCompat_Dialog = 2131361908; - - // aapt resource value: 0x7f0a0075 - public const int Base_V21_Theme_AppCompat_Light = 2131361909; - - // aapt resource value: 0x7f0a0076 - public const int Base_V21_Theme_AppCompat_Light_Dialog = 2131361910; - - // aapt resource value: 0x7f0a0098 - public const int Base_V22_Theme_AppCompat = 2131361944; - - // aapt resource value: 0x7f0a0099 - public const int Base_V22_Theme_AppCompat_Light = 2131361945; - - // aapt resource value: 0x7f0a009c - public const int Base_V23_Theme_AppCompat = 2131361948; - - // aapt resource value: 0x7f0a009d - public const int Base_V23_Theme_AppCompat_Light = 2131361949; - - // aapt resource value: 0x7f0a00bb - public const int Base_V7_Theme_AppCompat = 2131361979; - - // aapt resource value: 0x7f0a00bc - public const int Base_V7_Theme_AppCompat_Dialog = 2131361980; - - // aapt resource value: 0x7f0a00bd - public const int Base_V7_Theme_AppCompat_Light = 2131361981; - - // aapt resource value: 0x7f0a00be - public const int Base_V7_Theme_AppCompat_Light_Dialog = 2131361982; - - // aapt resource value: 0x7f0a00bf - public const int Base_V7_Widget_AppCompat_AutoCompleteTextView = 2131361983; - - // aapt resource value: 0x7f0a00c0 - public const int Base_V7_Widget_AppCompat_EditText = 2131361984; - - // aapt resource value: 0x7f0a00c1 - public const int Base_Widget_AppCompat_ActionBar = 2131361985; - - // aapt resource value: 0x7f0a00c2 - public const int Base_Widget_AppCompat_ActionBar_Solid = 2131361986; - - // aapt resource value: 0x7f0a00c3 - public const int Base_Widget_AppCompat_ActionBar_TabBar = 2131361987; - - // aapt resource value: 0x7f0a0077 - public const int Base_Widget_AppCompat_ActionBar_TabText = 2131361911; - - // aapt resource value: 0x7f0a0078 - public const int Base_Widget_AppCompat_ActionBar_TabView = 2131361912; - - // aapt resource value: 0x7f0a0079 - public const int Base_Widget_AppCompat_ActionButton = 2131361913; - - // aapt resource value: 0x7f0a007a - public const int Base_Widget_AppCompat_ActionButton_CloseMode = 2131361914; - - // aapt resource value: 0x7f0a007b - public const int Base_Widget_AppCompat_ActionButton_Overflow = 2131361915; - - // aapt resource value: 0x7f0a00c4 - public const int Base_Widget_AppCompat_ActionMode = 2131361988; - - // aapt resource value: 0x7f0a00c5 - public const int Base_Widget_AppCompat_ActivityChooserView = 2131361989; - - // aapt resource value: 0x7f0a0039 - public const int Base_Widget_AppCompat_AutoCompleteTextView = 2131361849; - - // aapt resource value: 0x7f0a007c - public const int Base_Widget_AppCompat_Button = 2131361916; - - // aapt resource value: 0x7f0a007d - public const int Base_Widget_AppCompat_Button_Borderless = 2131361917; - - // aapt resource value: 0x7f0a007e - public const int Base_Widget_AppCompat_Button_Borderless_Colored = 2131361918; - - // aapt resource value: 0x7f0a00c6 - public const int Base_Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131361990; - - // aapt resource value: 0x7f0a009e - public const int Base_Widget_AppCompat_Button_Colored = 2131361950; - - // aapt resource value: 0x7f0a007f - public const int Base_Widget_AppCompat_Button_Small = 2131361919; - - // aapt resource value: 0x7f0a0080 - public const int Base_Widget_AppCompat_ButtonBar = 2131361920; - - // aapt resource value: 0x7f0a00c7 - public const int Base_Widget_AppCompat_ButtonBar_AlertDialog = 2131361991; - - // aapt resource value: 0x7f0a0081 - public const int Base_Widget_AppCompat_CompoundButton_CheckBox = 2131361921; - - // aapt resource value: 0x7f0a0082 - public const int Base_Widget_AppCompat_CompoundButton_RadioButton = 2131361922; - - // aapt resource value: 0x7f0a00c8 - public const int Base_Widget_AppCompat_CompoundButton_Switch = 2131361992; - - // aapt resource value: 0x7f0a001b - public const int Base_Widget_AppCompat_DrawerArrowToggle = 2131361819; - - // aapt resource value: 0x7f0a00c9 - public const int Base_Widget_AppCompat_DrawerArrowToggle_Common = 2131361993; - - // aapt resource value: 0x7f0a0083 - public const int Base_Widget_AppCompat_DropDownItem_Spinner = 2131361923; - - // aapt resource value: 0x7f0a003a - public const int Base_Widget_AppCompat_EditText = 2131361850; - - // aapt resource value: 0x7f0a0084 - public const int Base_Widget_AppCompat_ImageButton = 2131361924; - - // aapt resource value: 0x7f0a00ca - public const int Base_Widget_AppCompat_Light_ActionBar = 2131361994; - - // aapt resource value: 0x7f0a00cb - public const int Base_Widget_AppCompat_Light_ActionBar_Solid = 2131361995; - - // aapt resource value: 0x7f0a00cc - public const int Base_Widget_AppCompat_Light_ActionBar_TabBar = 2131361996; - - // aapt resource value: 0x7f0a0085 - public const int Base_Widget_AppCompat_Light_ActionBar_TabText = 2131361925; - - // aapt resource value: 0x7f0a0086 - public const int Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131361926; - - // aapt resource value: 0x7f0a0087 - public const int Base_Widget_AppCompat_Light_ActionBar_TabView = 2131361927; - - // aapt resource value: 0x7f0a0088 - public const int Base_Widget_AppCompat_Light_PopupMenu = 2131361928; - - // aapt resource value: 0x7f0a0089 - public const int Base_Widget_AppCompat_Light_PopupMenu_Overflow = 2131361929; - - // aapt resource value: 0x7f0a008a - public const int Base_Widget_AppCompat_ListPopupWindow = 2131361930; - - // aapt resource value: 0x7f0a008b - public const int Base_Widget_AppCompat_ListView = 2131361931; - - // aapt resource value: 0x7f0a008c - public const int Base_Widget_AppCompat_ListView_DropDown = 2131361932; - - // aapt resource value: 0x7f0a008d - public const int Base_Widget_AppCompat_ListView_Menu = 2131361933; - - // aapt resource value: 0x7f0a008e - public const int Base_Widget_AppCompat_PopupMenu = 2131361934; - - // aapt resource value: 0x7f0a008f - public const int Base_Widget_AppCompat_PopupMenu_Overflow = 2131361935; - - // aapt resource value: 0x7f0a00cd - public const int Base_Widget_AppCompat_PopupWindow = 2131361997; - - // aapt resource value: 0x7f0a0030 - public const int Base_Widget_AppCompat_ProgressBar = 2131361840; - - // aapt resource value: 0x7f0a0031 - public const int Base_Widget_AppCompat_ProgressBar_Horizontal = 2131361841; - - // aapt resource value: 0x7f0a0090 - public const int Base_Widget_AppCompat_RatingBar = 2131361936; - - // aapt resource value: 0x7f0a009f - public const int Base_Widget_AppCompat_RatingBar_Indicator = 2131361951; - - // aapt resource value: 0x7f0a00a0 - public const int Base_Widget_AppCompat_RatingBar_Small = 2131361952; - - // aapt resource value: 0x7f0a00ce - public const int Base_Widget_AppCompat_SearchView = 2131361998; - - // aapt resource value: 0x7f0a00cf - public const int Base_Widget_AppCompat_SearchView_ActionBar = 2131361999; - - // aapt resource value: 0x7f0a0091 - public const int Base_Widget_AppCompat_SeekBar = 2131361937; - - // aapt resource value: 0x7f0a0092 - public const int Base_Widget_AppCompat_Spinner = 2131361938; - - // aapt resource value: 0x7f0a001e - public const int Base_Widget_AppCompat_Spinner_Underlined = 2131361822; - - // aapt resource value: 0x7f0a0093 - public const int Base_Widget_AppCompat_TextView_SpinnerItem = 2131361939; - - // aapt resource value: 0x7f0a00d0 - public const int Base_Widget_AppCompat_Toolbar = 2131362000; - - // aapt resource value: 0x7f0a0094 - public const int Base_Widget_AppCompat_Toolbar_Button_Navigation = 2131361940; - - // aapt resource value: 0x7f0a015b - public const int Base_Widget_Design_TabLayout = 2131362139; - - // aapt resource value: 0x7f0a0017 - public const int CardView = 2131361815; - - // aapt resource value: 0x7f0a0019 - public const int CardView_Dark = 2131361817; - - // aapt resource value: 0x7f0a001a - public const int CardView_Light = 2131361818; - - // aapt resource value: 0x7f0a0172 - public const int MainTheme = 2131362162; - - // aapt resource value: 0x7f0a0173 - public const int MainTheme_Base = 2131362163; - - // aapt resource value: 0x7f0a0032 - public const int Platform_AppCompat = 2131361842; - - // aapt resource value: 0x7f0a0033 - public const int Platform_AppCompat_Light = 2131361843; - - // aapt resource value: 0x7f0a0095 - public const int Platform_ThemeOverlay_AppCompat = 2131361941; - - // aapt resource value: 0x7f0a0096 - public const int Platform_ThemeOverlay_AppCompat_Dark = 2131361942; - - // aapt resource value: 0x7f0a0097 - public const int Platform_ThemeOverlay_AppCompat_Light = 2131361943; - - // aapt resource value: 0x7f0a0034 - public const int Platform_V11_AppCompat = 2131361844; - - // aapt resource value: 0x7f0a0035 - public const int Platform_V11_AppCompat_Light = 2131361845; - - // aapt resource value: 0x7f0a003c - public const int Platform_V14_AppCompat = 2131361852; - - // aapt resource value: 0x7f0a003d - public const int Platform_V14_AppCompat_Light = 2131361853; - - // aapt resource value: 0x7f0a0036 - public const int Platform_Widget_AppCompat_Spinner = 2131361846; - - // aapt resource value: 0x7f0a0043 - public const int RtlOverlay_DialogWindowTitle_AppCompat = 2131361859; - - // aapt resource value: 0x7f0a0044 - public const int RtlOverlay_Widget_AppCompat_ActionBar_TitleItem = 2131361860; - - // aapt resource value: 0x7f0a0045 - public const int RtlOverlay_Widget_AppCompat_DialogTitle_Icon = 2131361861; - - // aapt resource value: 0x7f0a0046 - public const int RtlOverlay_Widget_AppCompat_PopupMenuItem = 2131361862; - - // aapt resource value: 0x7f0a0047 - public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup = 2131361863; - - // aapt resource value: 0x7f0a0048 - public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_Text = 2131361864; - - // aapt resource value: 0x7f0a0049 - public const int RtlOverlay_Widget_AppCompat_Search_DropDown = 2131361865; - - // aapt resource value: 0x7f0a004a - public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 = 2131361866; - - // aapt resource value: 0x7f0a004b - public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 = 2131361867; - - // aapt resource value: 0x7f0a004c - public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Query = 2131361868; - - // aapt resource value: 0x7f0a004d - public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Text = 2131361869; - - // aapt resource value: 0x7f0a004e - public const int RtlOverlay_Widget_AppCompat_SearchView_MagIcon = 2131361870; - - // aapt resource value: 0x7f0a004f - public const int RtlUnderlay_Widget_AppCompat_ActionButton = 2131361871; - - // aapt resource value: 0x7f0a0050 - public const int RtlUnderlay_Widget_AppCompat_ActionButton_Overflow = 2131361872; - - // aapt resource value: 0x7f0a00d1 - public const int TextAppearance_AppCompat = 2131362001; - - // aapt resource value: 0x7f0a00d2 - public const int TextAppearance_AppCompat_Body1 = 2131362002; - - // aapt resource value: 0x7f0a00d3 - public const int TextAppearance_AppCompat_Body2 = 2131362003; - - // aapt resource value: 0x7f0a00d4 - public const int TextAppearance_AppCompat_Button = 2131362004; - - // aapt resource value: 0x7f0a00d5 - public const int TextAppearance_AppCompat_Caption = 2131362005; - - // aapt resource value: 0x7f0a00d6 - public const int TextAppearance_AppCompat_Display1 = 2131362006; - - // aapt resource value: 0x7f0a00d7 - public const int TextAppearance_AppCompat_Display2 = 2131362007; - - // aapt resource value: 0x7f0a00d8 - public const int TextAppearance_AppCompat_Display3 = 2131362008; - - // aapt resource value: 0x7f0a00d9 - public const int TextAppearance_AppCompat_Display4 = 2131362009; - - // aapt resource value: 0x7f0a00da - public const int TextAppearance_AppCompat_Headline = 2131362010; - - // aapt resource value: 0x7f0a00db - public const int TextAppearance_AppCompat_Inverse = 2131362011; - - // aapt resource value: 0x7f0a00dc - public const int TextAppearance_AppCompat_Large = 2131362012; - - // aapt resource value: 0x7f0a00dd - public const int TextAppearance_AppCompat_Large_Inverse = 2131362013; - - // aapt resource value: 0x7f0a00de - public const int TextAppearance_AppCompat_Light_SearchResult_Subtitle = 2131362014; - - // aapt resource value: 0x7f0a00df - public const int TextAppearance_AppCompat_Light_SearchResult_Title = 2131362015; - - // aapt resource value: 0x7f0a00e0 - public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131362016; - - // aapt resource value: 0x7f0a00e1 - public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131362017; - - // aapt resource value: 0x7f0a00e2 - public const int TextAppearance_AppCompat_Medium = 2131362018; - - // aapt resource value: 0x7f0a00e3 - public const int TextAppearance_AppCompat_Medium_Inverse = 2131362019; - - // aapt resource value: 0x7f0a00e4 - public const int TextAppearance_AppCompat_Menu = 2131362020; - - // aapt resource value: 0x7f0a00e5 - public const int TextAppearance_AppCompat_SearchResult_Subtitle = 2131362021; - - // aapt resource value: 0x7f0a00e6 - public const int TextAppearance_AppCompat_SearchResult_Title = 2131362022; - - // aapt resource value: 0x7f0a00e7 - public const int TextAppearance_AppCompat_Small = 2131362023; - - // aapt resource value: 0x7f0a00e8 - public const int TextAppearance_AppCompat_Small_Inverse = 2131362024; - - // aapt resource value: 0x7f0a00e9 - public const int TextAppearance_AppCompat_Subhead = 2131362025; - - // aapt resource value: 0x7f0a00ea - public const int TextAppearance_AppCompat_Subhead_Inverse = 2131362026; - - // aapt resource value: 0x7f0a00eb - public const int TextAppearance_AppCompat_Title = 2131362027; - - // aapt resource value: 0x7f0a00ec - public const int TextAppearance_AppCompat_Title_Inverse = 2131362028; - - // aapt resource value: 0x7f0a00ed - public const int TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131362029; - - // aapt resource value: 0x7f0a00ee - public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131362030; - - // aapt resource value: 0x7f0a00ef - public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131362031; - - // aapt resource value: 0x7f0a00f0 - public const int TextAppearance_AppCompat_Widget_ActionBar_Title = 2131362032; - - // aapt resource value: 0x7f0a00f1 - public const int TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131362033; - - // aapt resource value: 0x7f0a00f2 - public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131362034; - - // aapt resource value: 0x7f0a00f3 - public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse = 2131362035; - - // aapt resource value: 0x7f0a00f4 - public const int TextAppearance_AppCompat_Widget_ActionMode_Title = 2131362036; - - // aapt resource value: 0x7f0a00f5 - public const int TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse = 2131362037; - - // aapt resource value: 0x7f0a00f6 - public const int TextAppearance_AppCompat_Widget_Button = 2131362038; - - // aapt resource value: 0x7f0a00f7 - public const int TextAppearance_AppCompat_Widget_Button_Inverse = 2131362039; - - // aapt resource value: 0x7f0a00f8 - public const int TextAppearance_AppCompat_Widget_DropDownItem = 2131362040; - - // aapt resource value: 0x7f0a00f9 - public const int TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131362041; - - // aapt resource value: 0x7f0a00fa - public const int TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131362042; - - // aapt resource value: 0x7f0a00fb - public const int TextAppearance_AppCompat_Widget_Switch = 2131362043; - - // aapt resource value: 0x7f0a00fc - public const int TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131362044; - - // aapt resource value: 0x7f0a015c - public const int TextAppearance_Design_CollapsingToolbar_Expanded = 2131362140; - - // aapt resource value: 0x7f0a015d - public const int TextAppearance_Design_Counter = 2131362141; - - // aapt resource value: 0x7f0a015e - public const int TextAppearance_Design_Counter_Overflow = 2131362142; - - // aapt resource value: 0x7f0a015f - public const int TextAppearance_Design_Error = 2131362143; - - // aapt resource value: 0x7f0a0160 - public const int TextAppearance_Design_Hint = 2131362144; - - // aapt resource value: 0x7f0a0161 - public const int TextAppearance_Design_Snackbar_Message = 2131362145; - - // aapt resource value: 0x7f0a0162 - public const int TextAppearance_Design_Tab = 2131362146; - - // aapt resource value: 0x7f0a003e - public const int TextAppearance_StatusBar_EventContent = 2131361854; - - // aapt resource value: 0x7f0a003f - public const int TextAppearance_StatusBar_EventContent_Info = 2131361855; - - // aapt resource value: 0x7f0a0040 - public const int TextAppearance_StatusBar_EventContent_Line2 = 2131361856; - - // aapt resource value: 0x7f0a0041 - public const int TextAppearance_StatusBar_EventContent_Time = 2131361857; - - // aapt resource value: 0x7f0a0042 - public const int TextAppearance_StatusBar_EventContent_Title = 2131361858; - - // aapt resource value: 0x7f0a00fd - public const int TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131362045; - - // aapt resource value: 0x7f0a00fe - public const int TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131362046; - - // aapt resource value: 0x7f0a00ff - public const int TextAppearance_Widget_AppCompat_Toolbar_Title = 2131362047; - - // aapt resource value: 0x7f0a0100 - public const int Theme_AppCompat = 2131362048; - - // aapt resource value: 0x7f0a0101 - public const int Theme_AppCompat_CompactMenu = 2131362049; - - // aapt resource value: 0x7f0a001f - public const int Theme_AppCompat_DayNight = 2131361823; - - // aapt resource value: 0x7f0a0020 - public const int Theme_AppCompat_DayNight_DarkActionBar = 2131361824; - - // aapt resource value: 0x7f0a0021 - public const int Theme_AppCompat_DayNight_Dialog = 2131361825; - - // aapt resource value: 0x7f0a0022 - public const int Theme_AppCompat_DayNight_Dialog_Alert = 2131361826; - - // aapt resource value: 0x7f0a0023 - public const int Theme_AppCompat_DayNight_Dialog_MinWidth = 2131361827; - - // aapt resource value: 0x7f0a0024 - public const int Theme_AppCompat_DayNight_DialogWhenLarge = 2131361828; - - // aapt resource value: 0x7f0a0025 - public const int Theme_AppCompat_DayNight_NoActionBar = 2131361829; - - // aapt resource value: 0x7f0a0102 - public const int Theme_AppCompat_Dialog = 2131362050; - - // aapt resource value: 0x7f0a0103 - public const int Theme_AppCompat_Dialog_Alert = 2131362051; - - // aapt resource value: 0x7f0a0104 - public const int Theme_AppCompat_Dialog_MinWidth = 2131362052; - - // aapt resource value: 0x7f0a0105 - public const int Theme_AppCompat_DialogWhenLarge = 2131362053; - - // aapt resource value: 0x7f0a0106 - public const int Theme_AppCompat_Light = 2131362054; - - // aapt resource value: 0x7f0a0107 - public const int Theme_AppCompat_Light_DarkActionBar = 2131362055; - - // aapt resource value: 0x7f0a0108 - public const int Theme_AppCompat_Light_Dialog = 2131362056; - - // aapt resource value: 0x7f0a0109 - public const int Theme_AppCompat_Light_Dialog_Alert = 2131362057; - - // aapt resource value: 0x7f0a010a - public const int Theme_AppCompat_Light_Dialog_MinWidth = 2131362058; - - // aapt resource value: 0x7f0a010b - public const int Theme_AppCompat_Light_DialogWhenLarge = 2131362059; - - // aapt resource value: 0x7f0a010c - public const int Theme_AppCompat_Light_NoActionBar = 2131362060; - - // aapt resource value: 0x7f0a010d - public const int Theme_AppCompat_NoActionBar = 2131362061; - - // aapt resource value: 0x7f0a0163 - public const int Theme_Design = 2131362147; - - // aapt resource value: 0x7f0a0164 - public const int Theme_Design_BottomSheetDialog = 2131362148; - - // aapt resource value: 0x7f0a0165 - public const int Theme_Design_Light = 2131362149; - - // aapt resource value: 0x7f0a0166 - public const int Theme_Design_Light_BottomSheetDialog = 2131362150; - - // aapt resource value: 0x7f0a0167 - public const int Theme_Design_Light_NoActionBar = 2131362151; - - // aapt resource value: 0x7f0a0168 - public const int Theme_Design_NoActionBar = 2131362152; - - // aapt resource value: 0x7f0a0000 - public const int Theme_MediaRouter = 2131361792; - - // aapt resource value: 0x7f0a0001 - public const int Theme_MediaRouter_Light = 2131361793; - - // aapt resource value: 0x7f0a0002 - public const int Theme_MediaRouter_Light_DarkControlPanel = 2131361794; - - // aapt resource value: 0x7f0a0003 - public const int Theme_MediaRouter_LightControlPanel = 2131361795; - - // aapt resource value: 0x7f0a010e - public const int ThemeOverlay_AppCompat = 2131362062; - - // aapt resource value: 0x7f0a010f - public const int ThemeOverlay_AppCompat_ActionBar = 2131362063; - - // aapt resource value: 0x7f0a0110 - public const int ThemeOverlay_AppCompat_Dark = 2131362064; - - // aapt resource value: 0x7f0a0111 - public const int ThemeOverlay_AppCompat_Dark_ActionBar = 2131362065; - - // aapt resource value: 0x7f0a0112 - public const int ThemeOverlay_AppCompat_Light = 2131362066; - - // aapt resource value: 0x7f0a0113 - public const int Widget_AppCompat_ActionBar = 2131362067; - - // aapt resource value: 0x7f0a0114 - public const int Widget_AppCompat_ActionBar_Solid = 2131362068; - - // aapt resource value: 0x7f0a0115 - public const int Widget_AppCompat_ActionBar_TabBar = 2131362069; - - // aapt resource value: 0x7f0a0116 - public const int Widget_AppCompat_ActionBar_TabText = 2131362070; - - // aapt resource value: 0x7f0a0117 - public const int Widget_AppCompat_ActionBar_TabView = 2131362071; - - // aapt resource value: 0x7f0a0118 - public const int Widget_AppCompat_ActionButton = 2131362072; - - // aapt resource value: 0x7f0a0119 - public const int Widget_AppCompat_ActionButton_CloseMode = 2131362073; - - // aapt resource value: 0x7f0a011a - public const int Widget_AppCompat_ActionButton_Overflow = 2131362074; - - // aapt resource value: 0x7f0a011b - public const int Widget_AppCompat_ActionMode = 2131362075; - - // aapt resource value: 0x7f0a011c - public const int Widget_AppCompat_ActivityChooserView = 2131362076; - - // aapt resource value: 0x7f0a011d - public const int Widget_AppCompat_AutoCompleteTextView = 2131362077; - - // aapt resource value: 0x7f0a011e - public const int Widget_AppCompat_Button = 2131362078; - - // aapt resource value: 0x7f0a011f - public const int Widget_AppCompat_Button_Borderless = 2131362079; - - // aapt resource value: 0x7f0a0120 - public const int Widget_AppCompat_Button_Borderless_Colored = 2131362080; - - // aapt resource value: 0x7f0a0121 - public const int Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131362081; - - // aapt resource value: 0x7f0a0122 - public const int Widget_AppCompat_Button_Colored = 2131362082; - - // aapt resource value: 0x7f0a0123 - public const int Widget_AppCompat_Button_Small = 2131362083; - - // aapt resource value: 0x7f0a0124 - public const int Widget_AppCompat_ButtonBar = 2131362084; - - // aapt resource value: 0x7f0a0125 - public const int Widget_AppCompat_ButtonBar_AlertDialog = 2131362085; - - // aapt resource value: 0x7f0a0126 - public const int Widget_AppCompat_CompoundButton_CheckBox = 2131362086; - - // aapt resource value: 0x7f0a0127 - public const int Widget_AppCompat_CompoundButton_RadioButton = 2131362087; - - // aapt resource value: 0x7f0a0128 - public const int Widget_AppCompat_CompoundButton_Switch = 2131362088; - - // aapt resource value: 0x7f0a0129 - public const int Widget_AppCompat_DrawerArrowToggle = 2131362089; - - // aapt resource value: 0x7f0a012a - public const int Widget_AppCompat_DropDownItem_Spinner = 2131362090; - - // aapt resource value: 0x7f0a012b - public const int Widget_AppCompat_EditText = 2131362091; - - // aapt resource value: 0x7f0a012c - public const int Widget_AppCompat_ImageButton = 2131362092; - - // aapt resource value: 0x7f0a012d - public const int Widget_AppCompat_Light_ActionBar = 2131362093; - - // aapt resource value: 0x7f0a012e - public const int Widget_AppCompat_Light_ActionBar_Solid = 2131362094; - - // aapt resource value: 0x7f0a012f - public const int Widget_AppCompat_Light_ActionBar_Solid_Inverse = 2131362095; - - // aapt resource value: 0x7f0a0130 - public const int Widget_AppCompat_Light_ActionBar_TabBar = 2131362096; - - // aapt resource value: 0x7f0a0131 - public const int Widget_AppCompat_Light_ActionBar_TabBar_Inverse = 2131362097; - - // aapt resource value: 0x7f0a0132 - public const int Widget_AppCompat_Light_ActionBar_TabText = 2131362098; - - // aapt resource value: 0x7f0a0133 - public const int Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131362099; - - // aapt resource value: 0x7f0a0134 - public const int Widget_AppCompat_Light_ActionBar_TabView = 2131362100; - - // aapt resource value: 0x7f0a0135 - public const int Widget_AppCompat_Light_ActionBar_TabView_Inverse = 2131362101; - - // aapt resource value: 0x7f0a0136 - public const int Widget_AppCompat_Light_ActionButton = 2131362102; - - // aapt resource value: 0x7f0a0137 - public const int Widget_AppCompat_Light_ActionButton_CloseMode = 2131362103; - - // aapt resource value: 0x7f0a0138 - public const int Widget_AppCompat_Light_ActionButton_Overflow = 2131362104; - - // aapt resource value: 0x7f0a0139 - public const int Widget_AppCompat_Light_ActionMode_Inverse = 2131362105; - - // aapt resource value: 0x7f0a013a - public const int Widget_AppCompat_Light_ActivityChooserView = 2131362106; - - // aapt resource value: 0x7f0a013b - public const int Widget_AppCompat_Light_AutoCompleteTextView = 2131362107; - - // aapt resource value: 0x7f0a013c - public const int Widget_AppCompat_Light_DropDownItem_Spinner = 2131362108; - - // aapt resource value: 0x7f0a013d - public const int Widget_AppCompat_Light_ListPopupWindow = 2131362109; - - // aapt resource value: 0x7f0a013e - public const int Widget_AppCompat_Light_ListView_DropDown = 2131362110; - - // aapt resource value: 0x7f0a013f - public const int Widget_AppCompat_Light_PopupMenu = 2131362111; - - // aapt resource value: 0x7f0a0140 - public const int Widget_AppCompat_Light_PopupMenu_Overflow = 2131362112; - - // aapt resource value: 0x7f0a0141 - public const int Widget_AppCompat_Light_SearchView = 2131362113; - - // aapt resource value: 0x7f0a0142 - public const int Widget_AppCompat_Light_Spinner_DropDown_ActionBar = 2131362114; - - // aapt resource value: 0x7f0a0143 - public const int Widget_AppCompat_ListPopupWindow = 2131362115; - - // aapt resource value: 0x7f0a0144 - public const int Widget_AppCompat_ListView = 2131362116; - - // aapt resource value: 0x7f0a0145 - public const int Widget_AppCompat_ListView_DropDown = 2131362117; - - // aapt resource value: 0x7f0a0146 - public const int Widget_AppCompat_ListView_Menu = 2131362118; - - // aapt resource value: 0x7f0a0147 - public const int Widget_AppCompat_PopupMenu = 2131362119; - - // aapt resource value: 0x7f0a0148 - public const int Widget_AppCompat_PopupMenu_Overflow = 2131362120; - - // aapt resource value: 0x7f0a0149 - public const int Widget_AppCompat_PopupWindow = 2131362121; - - // aapt resource value: 0x7f0a014a - public const int Widget_AppCompat_ProgressBar = 2131362122; - - // aapt resource value: 0x7f0a014b - public const int Widget_AppCompat_ProgressBar_Horizontal = 2131362123; - - // aapt resource value: 0x7f0a014c - public const int Widget_AppCompat_RatingBar = 2131362124; - - // aapt resource value: 0x7f0a014d - public const int Widget_AppCompat_RatingBar_Indicator = 2131362125; - - // aapt resource value: 0x7f0a014e - public const int Widget_AppCompat_RatingBar_Small = 2131362126; - - // aapt resource value: 0x7f0a014f - public const int Widget_AppCompat_SearchView = 2131362127; - - // aapt resource value: 0x7f0a0150 - public const int Widget_AppCompat_SearchView_ActionBar = 2131362128; - - // aapt resource value: 0x7f0a0151 - public const int Widget_AppCompat_SeekBar = 2131362129; - - // aapt resource value: 0x7f0a0152 - public const int Widget_AppCompat_Spinner = 2131362130; - - // aapt resource value: 0x7f0a0153 - public const int Widget_AppCompat_Spinner_DropDown = 2131362131; - - // aapt resource value: 0x7f0a0154 - public const int Widget_AppCompat_Spinner_DropDown_ActionBar = 2131362132; - - // aapt resource value: 0x7f0a0155 - public const int Widget_AppCompat_Spinner_Underlined = 2131362133; - - // aapt resource value: 0x7f0a0156 - public const int Widget_AppCompat_TextView_SpinnerItem = 2131362134; - - // aapt resource value: 0x7f0a0157 - public const int Widget_AppCompat_Toolbar = 2131362135; - - // aapt resource value: 0x7f0a0158 - public const int Widget_AppCompat_Toolbar_Button_Navigation = 2131362136; - - // aapt resource value: 0x7f0a0169 - public const int Widget_Design_AppBarLayout = 2131362153; - - // aapt resource value: 0x7f0a016a - public const int Widget_Design_BottomSheet_Modal = 2131362154; - - // aapt resource value: 0x7f0a016b - public const int Widget_Design_CollapsingToolbar = 2131362155; - - // aapt resource value: 0x7f0a016c - public const int Widget_Design_CoordinatorLayout = 2131362156; - - // aapt resource value: 0x7f0a016d - public const int Widget_Design_FloatingActionButton = 2131362157; - - // aapt resource value: 0x7f0a016e - public const int Widget_Design_NavigationView = 2131362158; - - // aapt resource value: 0x7f0a016f - public const int Widget_Design_ScrimInsetsFrameLayout = 2131362159; - - // aapt resource value: 0x7f0a0170 - public const int Widget_Design_Snackbar = 2131362160; - - // aapt resource value: 0x7f0a0159 - public const int Widget_Design_TabLayout = 2131362137; - - // aapt resource value: 0x7f0a0171 - public const int Widget_Design_TextInputLayout = 2131362161; - - // aapt resource value: 0x7f0a0004 - public const int Widget_MediaRouter_ChooserText = 2131361796; - - // aapt resource value: 0x7f0a0005 - public const int Widget_MediaRouter_ChooserText_Primary = 2131361797; - - // aapt resource value: 0x7f0a0006 - public const int Widget_MediaRouter_ChooserText_Primary_Dark = 2131361798; - - // aapt resource value: 0x7f0a0007 - public const int Widget_MediaRouter_ChooserText_Primary_Light = 2131361799; - - // aapt resource value: 0x7f0a0008 - public const int Widget_MediaRouter_ChooserText_Secondary = 2131361800; - - // aapt resource value: 0x7f0a0009 - public const int Widget_MediaRouter_ChooserText_Secondary_Dark = 2131361801; - - // aapt resource value: 0x7f0a000a - public const int Widget_MediaRouter_ChooserText_Secondary_Light = 2131361802; - - // aapt resource value: 0x7f0a000b - public const int Widget_MediaRouter_ControllerText = 2131361803; - - // aapt resource value: 0x7f0a000c - public const int Widget_MediaRouter_ControllerText_Primary = 2131361804; - - // aapt resource value: 0x7f0a000d - public const int Widget_MediaRouter_ControllerText_Primary_Dark = 2131361805; - - // aapt resource value: 0x7f0a000e - public const int Widget_MediaRouter_ControllerText_Primary_Light = 2131361806; - - // aapt resource value: 0x7f0a000f - public const int Widget_MediaRouter_ControllerText_Secondary = 2131361807; - - // aapt resource value: 0x7f0a0010 - public const int Widget_MediaRouter_ControllerText_Secondary_Dark = 2131361808; - - // aapt resource value: 0x7f0a0011 - public const int Widget_MediaRouter_ControllerText_Secondary_Light = 2131361809; - - // aapt resource value: 0x7f0a0012 - public const int Widget_MediaRouter_ControllerText_Title = 2131361810; - - // aapt resource value: 0x7f0a0013 - public const int Widget_MediaRouter_ControllerText_Title_Dark = 2131361811; - - // aapt resource value: 0x7f0a0014 - public const int Widget_MediaRouter_ControllerText_Title_Light = 2131361812; - - // aapt resource value: 0x7f0a0015 - public const int Widget_MediaRouter_Light_MediaRouteButton = 2131361813; - - // aapt resource value: 0x7f0a0016 - public const int Widget_MediaRouter_MediaRouteButton = 2131361814; - - static Style() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Style() - { - } - } - - public partial class Styleable - { - - public static int[] ActionBar = new int[] { - 2130772007, - 2130772009, - 2130772010, - 2130772011, - 2130772012, - 2130772013, - 2130772014, - 2130772015, - 2130772016, - 2130772017, - 2130772018, - 2130772019, - 2130772020, - 2130772021, - 2130772022, - 2130772023, - 2130772024, - 2130772025, - 2130772026, - 2130772027, - 2130772028, - 2130772029, - 2130772030, - 2130772031, - 2130772032, - 2130772033, - 2130772090}; - - // aapt resource value: 10 - public const int ActionBar_background = 10; - - // aapt resource value: 12 - public const int ActionBar_backgroundSplit = 12; - - // aapt resource value: 11 - public const int ActionBar_backgroundStacked = 11; - - // aapt resource value: 21 - public const int ActionBar_contentInsetEnd = 21; - - // aapt resource value: 22 - public const int ActionBar_contentInsetLeft = 22; - - // aapt resource value: 23 - public const int ActionBar_contentInsetRight = 23; - - // aapt resource value: 20 - public const int ActionBar_contentInsetStart = 20; - - // aapt resource value: 13 - public const int ActionBar_customNavigationLayout = 13; - - // aapt resource value: 3 - public const int ActionBar_displayOptions = 3; - - // aapt resource value: 9 - public const int ActionBar_divider = 9; - - // aapt resource value: 24 - public const int ActionBar_elevation = 24; - - // aapt resource value: 0 - public const int ActionBar_height = 0; - - // aapt resource value: 19 - public const int ActionBar_hideOnContentScroll = 19; - - // aapt resource value: 26 - public const int ActionBar_homeAsUpIndicator = 26; - - // aapt resource value: 14 - public const int ActionBar_homeLayout = 14; - - // aapt resource value: 7 - public const int ActionBar_icon = 7; - - // aapt resource value: 16 - public const int ActionBar_indeterminateProgressStyle = 16; - - // aapt resource value: 18 - public const int ActionBar_itemPadding = 18; - - // aapt resource value: 8 - public const int ActionBar_logo = 8; - - // aapt resource value: 2 - public const int ActionBar_navigationMode = 2; - - // aapt resource value: 25 - public const int ActionBar_popupTheme = 25; - - // aapt resource value: 17 - public const int ActionBar_progressBarPadding = 17; - - // aapt resource value: 15 - public const int ActionBar_progressBarStyle = 15; - - // aapt resource value: 4 - public const int ActionBar_subtitle = 4; - - // aapt resource value: 6 - public const int ActionBar_subtitleTextStyle = 6; - - // aapt resource value: 1 - public const int ActionBar_title = 1; - - // aapt resource value: 5 - public const int ActionBar_titleTextStyle = 5; - - public static int[] ActionBarLayout = new int[] { - 16842931}; - - // aapt resource value: 0 - public const int ActionBarLayout_android_layout_gravity = 0; - - public static int[] ActionMenuItemView = new int[] { - 16843071}; - - // aapt resource value: 0 - public const int ActionMenuItemView_android_minWidth = 0; - - public static int[] ActionMenuView; - - public static int[] ActionMode = new int[] { - 2130772007, - 2130772013, - 2130772014, - 2130772018, - 2130772020, - 2130772034}; - - // aapt resource value: 3 - public const int ActionMode_background = 3; - - // aapt resource value: 4 - public const int ActionMode_backgroundSplit = 4; - - // aapt resource value: 5 - public const int ActionMode_closeItemLayout = 5; - - // aapt resource value: 0 - public const int ActionMode_height = 0; - - // aapt resource value: 2 - public const int ActionMode_subtitleTextStyle = 2; - - // aapt resource value: 1 - public const int ActionMode_titleTextStyle = 1; - - public static int[] ActivityChooserView = new int[] { - 2130772035, - 2130772036}; - - // aapt resource value: 1 - public const int ActivityChooserView_expandActivityOverflowButtonDrawable = 1; - - // aapt resource value: 0 - public const int ActivityChooserView_initialActivityCount = 0; - - public static int[] AlertDialog = new int[] { - 16842994, - 2130772037, - 2130772038, - 2130772039, - 2130772040, - 2130772041}; - - // aapt resource value: 0 - public const int AlertDialog_android_layout = 0; - - // aapt resource value: 1 - public const int AlertDialog_buttonPanelSideLayout = 1; - - // aapt resource value: 5 - public const int AlertDialog_listItemLayout = 5; - - // aapt resource value: 2 - public const int AlertDialog_listLayout = 2; - - // aapt resource value: 3 - public const int AlertDialog_multiChoiceItemLayout = 3; - - // aapt resource value: 4 - public const int AlertDialog_singleChoiceItemLayout = 4; - - public static int[] AppBarLayout = new int[] { - 16842964, - 2130772032, - 2130772215}; - - // aapt resource value: 0 - public const int AppBarLayout_android_background = 0; - - // aapt resource value: 1 - public const int AppBarLayout_elevation = 1; - - // aapt resource value: 2 - public const int AppBarLayout_expanded = 2; - - public static int[] AppBarLayout_LayoutParams = new int[] { - 2130772216, - 2130772217}; - - // aapt resource value: 0 - public const int AppBarLayout_LayoutParams_layout_scrollFlags = 0; - - // aapt resource value: 1 - public const int AppBarLayout_LayoutParams_layout_scrollInterpolator = 1; - - public static int[] AppCompatImageView = new int[] { - 16843033, - 2130772042}; - - // aapt resource value: 0 - public const int AppCompatImageView_android_src = 0; - - // aapt resource value: 1 - public const int AppCompatImageView_srcCompat = 1; - - public static int[] AppCompatTextView = new int[] { - 16842804, - 2130772043}; - - // aapt resource value: 0 - public const int AppCompatTextView_android_textAppearance = 0; - - // aapt resource value: 1 - public const int AppCompatTextView_textAllCaps = 1; - - public static int[] AppCompatTheme = new int[] { - 16842839, - 16842926, - 2130772044, - 2130772045, - 2130772046, - 2130772047, - 2130772048, - 2130772049, - 2130772050, - 2130772051, - 2130772052, - 2130772053, - 2130772054, - 2130772055, - 2130772056, - 2130772057, - 2130772058, - 2130772059, - 2130772060, - 2130772061, - 2130772062, - 2130772063, - 2130772064, - 2130772065, - 2130772066, - 2130772067, - 2130772068, - 2130772069, - 2130772070, - 2130772071, - 2130772072, - 2130772073, - 2130772074, - 2130772075, - 2130772076, - 2130772077, - 2130772078, - 2130772079, - 2130772080, - 2130772081, - 2130772082, - 2130772083, - 2130772084, - 2130772085, - 2130772086, - 2130772087, - 2130772088, - 2130772089, - 2130772090, - 2130772091, - 2130772092, - 2130772093, - 2130772094, - 2130772095, - 2130772096, - 2130772097, - 2130772098, - 2130772099, - 2130772100, - 2130772101, - 2130772102, - 2130772103, - 2130772104, - 2130772105, - 2130772106, - 2130772107, - 2130772108, - 2130772109, - 2130772110, - 2130772111, - 2130772112, - 2130772113, - 2130772114, - 2130772115, - 2130772116, - 2130772117, - 2130772118, - 2130772119, - 2130772120, - 2130772121, - 2130772122, - 2130772123, - 2130772124, - 2130772125, - 2130772126, - 2130772127, - 2130772128, - 2130772129, - 2130772130, - 2130772131, - 2130772132, - 2130772133, - 2130772134, - 2130772135, - 2130772136, - 2130772137, - 2130772138, - 2130772139, - 2130772140, - 2130772141, - 2130772142, - 2130772143, - 2130772144, - 2130772145, - 2130772146, - 2130772147, - 2130772148, - 2130772149, - 2130772150, - 2130772151, - 2130772152, - 2130772153}; - - // aapt resource value: 23 - public const int AppCompatTheme_actionBarDivider = 23; - - // aapt resource value: 24 - public const int AppCompatTheme_actionBarItemBackground = 24; - - // aapt resource value: 17 - public const int AppCompatTheme_actionBarPopupTheme = 17; - - // aapt resource value: 22 - public const int AppCompatTheme_actionBarSize = 22; - - // aapt resource value: 19 - public const int AppCompatTheme_actionBarSplitStyle = 19; - - // aapt resource value: 18 - public const int AppCompatTheme_actionBarStyle = 18; - - // aapt resource value: 13 - public const int AppCompatTheme_actionBarTabBarStyle = 13; - - // aapt resource value: 12 - public const int AppCompatTheme_actionBarTabStyle = 12; - - // aapt resource value: 14 - public const int AppCompatTheme_actionBarTabTextStyle = 14; - - // aapt resource value: 20 - public const int AppCompatTheme_actionBarTheme = 20; - - // aapt resource value: 21 - public const int AppCompatTheme_actionBarWidgetTheme = 21; - - // aapt resource value: 49 - public const int AppCompatTheme_actionButtonStyle = 49; - - // aapt resource value: 45 - public const int AppCompatTheme_actionDropDownStyle = 45; - - // aapt resource value: 25 - public const int AppCompatTheme_actionMenuTextAppearance = 25; - - // aapt resource value: 26 - public const int AppCompatTheme_actionMenuTextColor = 26; - - // aapt resource value: 29 - public const int AppCompatTheme_actionModeBackground = 29; - - // aapt resource value: 28 - public const int AppCompatTheme_actionModeCloseButtonStyle = 28; - - // aapt resource value: 31 - public const int AppCompatTheme_actionModeCloseDrawable = 31; - - // aapt resource value: 33 - public const int AppCompatTheme_actionModeCopyDrawable = 33; - - // aapt resource value: 32 - public const int AppCompatTheme_actionModeCutDrawable = 32; - - // aapt resource value: 37 - public const int AppCompatTheme_actionModeFindDrawable = 37; - - // aapt resource value: 34 - public const int AppCompatTheme_actionModePasteDrawable = 34; - - // aapt resource value: 39 - public const int AppCompatTheme_actionModePopupWindowStyle = 39; - - // aapt resource value: 35 - public const int AppCompatTheme_actionModeSelectAllDrawable = 35; - - // aapt resource value: 36 - public const int AppCompatTheme_actionModeShareDrawable = 36; - - // aapt resource value: 30 - public const int AppCompatTheme_actionModeSplitBackground = 30; - - // aapt resource value: 27 - public const int AppCompatTheme_actionModeStyle = 27; - - // aapt resource value: 38 - public const int AppCompatTheme_actionModeWebSearchDrawable = 38; - - // aapt resource value: 15 - public const int AppCompatTheme_actionOverflowButtonStyle = 15; - - // aapt resource value: 16 - public const int AppCompatTheme_actionOverflowMenuStyle = 16; - - // aapt resource value: 57 - public const int AppCompatTheme_activityChooserViewStyle = 57; - - // aapt resource value: 92 - public const int AppCompatTheme_alertDialogButtonGroupStyle = 92; - - // aapt resource value: 93 - public const int AppCompatTheme_alertDialogCenterButtons = 93; - - // aapt resource value: 91 - public const int AppCompatTheme_alertDialogStyle = 91; - - // aapt resource value: 94 - public const int AppCompatTheme_alertDialogTheme = 94; - - // aapt resource value: 1 - public const int AppCompatTheme_android_windowAnimationStyle = 1; - - // aapt resource value: 0 - public const int AppCompatTheme_android_windowIsFloating = 0; - - // aapt resource value: 99 - public const int AppCompatTheme_autoCompleteTextViewStyle = 99; - - // aapt resource value: 54 - public const int AppCompatTheme_borderlessButtonStyle = 54; - - // aapt resource value: 51 - public const int AppCompatTheme_buttonBarButtonStyle = 51; - - // aapt resource value: 97 - public const int AppCompatTheme_buttonBarNegativeButtonStyle = 97; - - // aapt resource value: 98 - public const int AppCompatTheme_buttonBarNeutralButtonStyle = 98; - - // aapt resource value: 96 - public const int AppCompatTheme_buttonBarPositiveButtonStyle = 96; - - // aapt resource value: 50 - public const int AppCompatTheme_buttonBarStyle = 50; - - // aapt resource value: 100 - public const int AppCompatTheme_buttonStyle = 100; - - // aapt resource value: 101 - public const int AppCompatTheme_buttonStyleSmall = 101; - - // aapt resource value: 102 - public const int AppCompatTheme_checkboxStyle = 102; - - // aapt resource value: 103 - public const int AppCompatTheme_checkedTextViewStyle = 103; - - // aapt resource value: 84 - public const int AppCompatTheme_colorAccent = 84; - - // aapt resource value: 88 - public const int AppCompatTheme_colorButtonNormal = 88; - - // aapt resource value: 86 - public const int AppCompatTheme_colorControlActivated = 86; - - // aapt resource value: 87 - public const int AppCompatTheme_colorControlHighlight = 87; - - // aapt resource value: 85 - public const int AppCompatTheme_colorControlNormal = 85; - - // aapt resource value: 82 - public const int AppCompatTheme_colorPrimary = 82; - - // aapt resource value: 83 - public const int AppCompatTheme_colorPrimaryDark = 83; - - // aapt resource value: 89 - public const int AppCompatTheme_colorSwitchThumbNormal = 89; - - // aapt resource value: 90 - public const int AppCompatTheme_controlBackground = 90; - - // aapt resource value: 43 - public const int AppCompatTheme_dialogPreferredPadding = 43; - - // aapt resource value: 42 - public const int AppCompatTheme_dialogTheme = 42; - - // aapt resource value: 56 - public const int AppCompatTheme_dividerHorizontal = 56; - - // aapt resource value: 55 - public const int AppCompatTheme_dividerVertical = 55; - - // aapt resource value: 74 - public const int AppCompatTheme_dropDownListViewStyle = 74; - - // aapt resource value: 46 - public const int AppCompatTheme_dropdownListPreferredItemHeight = 46; - - // aapt resource value: 63 - public const int AppCompatTheme_editTextBackground = 63; - - // aapt resource value: 62 - public const int AppCompatTheme_editTextColor = 62; - - // aapt resource value: 104 - public const int AppCompatTheme_editTextStyle = 104; - - // aapt resource value: 48 - public const int AppCompatTheme_homeAsUpIndicator = 48; - - // aapt resource value: 64 - public const int AppCompatTheme_imageButtonStyle = 64; - - // aapt resource value: 81 - public const int AppCompatTheme_listChoiceBackgroundIndicator = 81; - - // aapt resource value: 44 - public const int AppCompatTheme_listDividerAlertDialog = 44; - - // aapt resource value: 75 - public const int AppCompatTheme_listPopupWindowStyle = 75; - - // aapt resource value: 69 - public const int AppCompatTheme_listPreferredItemHeight = 69; - - // aapt resource value: 71 - public const int AppCompatTheme_listPreferredItemHeightLarge = 71; - - // aapt resource value: 70 - public const int AppCompatTheme_listPreferredItemHeightSmall = 70; - - // aapt resource value: 72 - public const int AppCompatTheme_listPreferredItemPaddingLeft = 72; - - // aapt resource value: 73 - public const int AppCompatTheme_listPreferredItemPaddingRight = 73; - - // aapt resource value: 78 - public const int AppCompatTheme_panelBackground = 78; - - // aapt resource value: 80 - public const int AppCompatTheme_panelMenuListTheme = 80; - - // aapt resource value: 79 - public const int AppCompatTheme_panelMenuListWidth = 79; - - // aapt resource value: 60 - public const int AppCompatTheme_popupMenuStyle = 60; - - // aapt resource value: 61 - public const int AppCompatTheme_popupWindowStyle = 61; - - // aapt resource value: 105 - public const int AppCompatTheme_radioButtonStyle = 105; - - // aapt resource value: 106 - public const int AppCompatTheme_ratingBarStyle = 106; - - // aapt resource value: 107 - public const int AppCompatTheme_ratingBarStyleIndicator = 107; - - // aapt resource value: 108 - public const int AppCompatTheme_ratingBarStyleSmall = 108; - - // aapt resource value: 68 - public const int AppCompatTheme_searchViewStyle = 68; - - // aapt resource value: 109 - public const int AppCompatTheme_seekBarStyle = 109; - - // aapt resource value: 52 - public const int AppCompatTheme_selectableItemBackground = 52; - - // aapt resource value: 53 - public const int AppCompatTheme_selectableItemBackgroundBorderless = 53; - - // aapt resource value: 47 - public const int AppCompatTheme_spinnerDropDownItemStyle = 47; - - // aapt resource value: 110 - public const int AppCompatTheme_spinnerStyle = 110; - - // aapt resource value: 111 - public const int AppCompatTheme_switchStyle = 111; - - // aapt resource value: 40 - public const int AppCompatTheme_textAppearanceLargePopupMenu = 40; - - // aapt resource value: 76 - public const int AppCompatTheme_textAppearanceListItem = 76; - - // aapt resource value: 77 - public const int AppCompatTheme_textAppearanceListItemSmall = 77; - - // aapt resource value: 66 - public const int AppCompatTheme_textAppearanceSearchResultSubtitle = 66; - - // aapt resource value: 65 - public const int AppCompatTheme_textAppearanceSearchResultTitle = 65; - - // aapt resource value: 41 - public const int AppCompatTheme_textAppearanceSmallPopupMenu = 41; - - // aapt resource value: 95 - public const int AppCompatTheme_textColorAlertDialogListItem = 95; - - // aapt resource value: 67 - public const int AppCompatTheme_textColorSearchUrl = 67; - - // aapt resource value: 59 - public const int AppCompatTheme_toolbarNavigationButtonStyle = 59; - - // aapt resource value: 58 - public const int AppCompatTheme_toolbarStyle = 58; - - // aapt resource value: 2 - public const int AppCompatTheme_windowActionBar = 2; - - // aapt resource value: 4 - public const int AppCompatTheme_windowActionBarOverlay = 4; - - // aapt resource value: 5 - public const int AppCompatTheme_windowActionModeOverlay = 5; - - // aapt resource value: 9 - public const int AppCompatTheme_windowFixedHeightMajor = 9; - - // aapt resource value: 7 - public const int AppCompatTheme_windowFixedHeightMinor = 7; - - // aapt resource value: 6 - public const int AppCompatTheme_windowFixedWidthMajor = 6; - - // aapt resource value: 8 - public const int AppCompatTheme_windowFixedWidthMinor = 8; - - // aapt resource value: 10 - public const int AppCompatTheme_windowMinWidthMajor = 10; - - // aapt resource value: 11 - public const int AppCompatTheme_windowMinWidthMinor = 11; - - // aapt resource value: 3 - public const int AppCompatTheme_windowNoTitle = 3; - - public static int[] BottomSheetBehavior_Params = new int[] { - 2130772218, - 2130772219}; - - // aapt resource value: 1 - public const int BottomSheetBehavior_Params_behavior_hideable = 1; - - // aapt resource value: 0 - public const int BottomSheetBehavior_Params_behavior_peekHeight = 0; - - public static int[] ButtonBarLayout = new int[] { - 2130772154}; - - // aapt resource value: 0 - public const int ButtonBarLayout_allowStacking = 0; - - public static int[] CardView = new int[] { - 16843071, - 16843072, - 2130771995, - 2130771996, - 2130771997, - 2130771998, - 2130771999, - 2130772000, - 2130772001, - 2130772002, - 2130772003, - 2130772004, - 2130772005}; - - // aapt resource value: 1 - public const int CardView_android_minHeight = 1; - - // aapt resource value: 0 - public const int CardView_android_minWidth = 0; - - // aapt resource value: 2 - public const int CardView_cardBackgroundColor = 2; - - // aapt resource value: 3 - public const int CardView_cardCornerRadius = 3; - - // aapt resource value: 4 - public const int CardView_cardElevation = 4; - - // aapt resource value: 5 - public const int CardView_cardMaxElevation = 5; - - // aapt resource value: 7 - public const int CardView_cardPreventCornerOverlap = 7; - - // aapt resource value: 6 - public const int CardView_cardUseCompatPadding = 6; - - // aapt resource value: 8 - public const int CardView_contentPadding = 8; - - // aapt resource value: 12 - public const int CardView_contentPaddingBottom = 12; - - // aapt resource value: 9 - public const int CardView_contentPaddingLeft = 9; - - // aapt resource value: 10 - public const int CardView_contentPaddingRight = 10; - - // aapt resource value: 11 - public const int CardView_contentPaddingTop = 11; - - public static int[] CollapsingAppBarLayout_LayoutParams = new int[] { - 2130772220, - 2130772221}; - - // aapt resource value: 0 - public const int CollapsingAppBarLayout_LayoutParams_layout_collapseMode = 0; - - // aapt resource value: 1 - public const int CollapsingAppBarLayout_LayoutParams_layout_collapseParallaxMultiplier = 1; - - public static int[] CollapsingToolbarLayout = new int[] { - 2130772009, - 2130772222, - 2130772223, - 2130772224, - 2130772225, - 2130772226, - 2130772227, - 2130772228, - 2130772229, - 2130772230, - 2130772231, - 2130772232, - 2130772233, - 2130772234}; - - // aapt resource value: 11 - public const int CollapsingToolbarLayout_collapsedTitleGravity = 11; - - // aapt resource value: 7 - public const int CollapsingToolbarLayout_collapsedTitleTextAppearance = 7; - - // aapt resource value: 8 - public const int CollapsingToolbarLayout_contentScrim = 8; - - // aapt resource value: 12 - public const int CollapsingToolbarLayout_expandedTitleGravity = 12; - - // aapt resource value: 1 - public const int CollapsingToolbarLayout_expandedTitleMargin = 1; - - // aapt resource value: 5 - public const int CollapsingToolbarLayout_expandedTitleMarginBottom = 5; - - // aapt resource value: 4 - public const int CollapsingToolbarLayout_expandedTitleMarginEnd = 4; - - // aapt resource value: 2 - public const int CollapsingToolbarLayout_expandedTitleMarginStart = 2; - - // aapt resource value: 3 - public const int CollapsingToolbarLayout_expandedTitleMarginTop = 3; - - // aapt resource value: 6 - public const int CollapsingToolbarLayout_expandedTitleTextAppearance = 6; - - // aapt resource value: 9 - public const int CollapsingToolbarLayout_statusBarScrim = 9; - - // aapt resource value: 0 - public const int CollapsingToolbarLayout_title = 0; - - // aapt resource value: 13 - public const int CollapsingToolbarLayout_titleEnabled = 13; - - // aapt resource value: 10 - public const int CollapsingToolbarLayout_toolbarId = 10; - - public static int[] CompoundButton = new int[] { - 16843015, - 2130772155, - 2130772156}; - - // aapt resource value: 0 - public const int CompoundButton_android_button = 0; - - // aapt resource value: 1 - public const int CompoundButton_buttonTint = 1; - - // aapt resource value: 2 - public const int CompoundButton_buttonTintMode = 2; - - public static int[] CoordinatorLayout = new int[] { - 2130772235, - 2130772236}; - - // aapt resource value: 0 - public const int CoordinatorLayout_keylines = 0; - - // aapt resource value: 1 - public const int CoordinatorLayout_statusBarBackground = 1; - - public static int[] CoordinatorLayout_LayoutParams = new int[] { - 16842931, - 2130772237, - 2130772238, - 2130772239, - 2130772240}; - - // aapt resource value: 0 - public const int CoordinatorLayout_LayoutParams_android_layout_gravity = 0; - - // aapt resource value: 2 - public const int CoordinatorLayout_LayoutParams_layout_anchor = 2; - - // aapt resource value: 4 - public const int CoordinatorLayout_LayoutParams_layout_anchorGravity = 4; - - // aapt resource value: 1 - public const int CoordinatorLayout_LayoutParams_layout_behavior = 1; - - // aapt resource value: 3 - public const int CoordinatorLayout_LayoutParams_layout_keyline = 3; - - public static int[] DesignTheme = new int[] { - 2130772241, - 2130772242, - 2130772243}; - - // aapt resource value: 0 - public const int DesignTheme_bottomSheetDialogTheme = 0; - - // aapt resource value: 1 - public const int DesignTheme_bottomSheetStyle = 1; - - // aapt resource value: 2 - public const int DesignTheme_textColorError = 2; - - public static int[] DrawerArrowToggle = new int[] { - 2130772157, - 2130772158, - 2130772159, - 2130772160, - 2130772161, - 2130772162, - 2130772163, - 2130772164}; - - // aapt resource value: 4 - public const int DrawerArrowToggle_arrowHeadLength = 4; - - // aapt resource value: 5 - public const int DrawerArrowToggle_arrowShaftLength = 5; - - // aapt resource value: 6 - public const int DrawerArrowToggle_barLength = 6; - - // aapt resource value: 0 - public const int DrawerArrowToggle_color = 0; - - // aapt resource value: 2 - public const int DrawerArrowToggle_drawableSize = 2; - - // aapt resource value: 3 - public const int DrawerArrowToggle_gapBetweenBars = 3; - - // aapt resource value: 1 - public const int DrawerArrowToggle_spinBars = 1; - - // aapt resource value: 7 - public const int DrawerArrowToggle_thickness = 7; - - public static int[] FloatingActionButton = new int[] { - 2130772032, - 2130772213, - 2130772214, - 2130772244, - 2130772245, - 2130772246, - 2130772247, - 2130772248}; - - // aapt resource value: 1 - public const int FloatingActionButton_backgroundTint = 1; - - // aapt resource value: 2 - public const int FloatingActionButton_backgroundTintMode = 2; - - // aapt resource value: 6 - public const int FloatingActionButton_borderWidth = 6; - - // aapt resource value: 0 - public const int FloatingActionButton_elevation = 0; - - // aapt resource value: 4 - public const int FloatingActionButton_fabSize = 4; - - // aapt resource value: 5 - public const int FloatingActionButton_pressedTranslationZ = 5; - - // aapt resource value: 3 - public const int FloatingActionButton_rippleColor = 3; - - // aapt resource value: 7 - public const int FloatingActionButton_useCompatPadding = 7; - - public static int[] ForegroundLinearLayout = new int[] { - 16843017, - 16843264, - 2130772249}; - - // aapt resource value: 0 - public const int ForegroundLinearLayout_android_foreground = 0; - - // aapt resource value: 1 - public const int ForegroundLinearLayout_android_foregroundGravity = 1; - - // aapt resource value: 2 - public const int ForegroundLinearLayout_foregroundInsidePadding = 2; - - public static int[] LinearLayoutCompat = new int[] { - 16842927, - 16842948, - 16843046, - 16843047, - 16843048, - 2130772017, - 2130772165, - 2130772166, - 2130772167}; - - // aapt resource value: 2 - public const int LinearLayoutCompat_android_baselineAligned = 2; - - // aapt resource value: 3 - public const int LinearLayoutCompat_android_baselineAlignedChildIndex = 3; - - // aapt resource value: 0 - public const int LinearLayoutCompat_android_gravity = 0; - - // aapt resource value: 1 - public const int LinearLayoutCompat_android_orientation = 1; - - // aapt resource value: 4 - public const int LinearLayoutCompat_android_weightSum = 4; - - // aapt resource value: 5 - public const int LinearLayoutCompat_divider = 5; - - // aapt resource value: 8 - public const int LinearLayoutCompat_dividerPadding = 8; - - // aapt resource value: 6 - public const int LinearLayoutCompat_measureWithLargestChild = 6; - - // aapt resource value: 7 - public const int LinearLayoutCompat_showDividers = 7; - - public static int[] LinearLayoutCompat_Layout = new int[] { - 16842931, - 16842996, - 16842997, - 16843137}; - - // aapt resource value: 0 - public const int LinearLayoutCompat_Layout_android_layout_gravity = 0; - - // aapt resource value: 2 - public const int LinearLayoutCompat_Layout_android_layout_height = 2; - - // aapt resource value: 3 - public const int LinearLayoutCompat_Layout_android_layout_weight = 3; - - // aapt resource value: 1 - public const int LinearLayoutCompat_Layout_android_layout_width = 1; - - public static int[] ListPopupWindow = new int[] { - 16843436, - 16843437}; - - // aapt resource value: 0 - public const int ListPopupWindow_android_dropDownHorizontalOffset = 0; - - // aapt resource value: 1 - public const int ListPopupWindow_android_dropDownVerticalOffset = 1; - - public static int[] MediaRouteButton = new int[] { - 16843071, - 16843072, - 2130771994}; - - // aapt resource value: 1 - public const int MediaRouteButton_android_minHeight = 1; - - // aapt resource value: 0 - public const int MediaRouteButton_android_minWidth = 0; - - // aapt resource value: 2 - public const int MediaRouteButton_externalRouteEnabledDrawable = 2; - - public static int[] MenuGroup = new int[] { - 16842766, - 16842960, - 16843156, - 16843230, - 16843231, - 16843232}; - - // aapt resource value: 5 - public const int MenuGroup_android_checkableBehavior = 5; - - // aapt resource value: 0 - public const int MenuGroup_android_enabled = 0; - - // aapt resource value: 1 - public const int MenuGroup_android_id = 1; - - // aapt resource value: 3 - public const int MenuGroup_android_menuCategory = 3; - - // aapt resource value: 4 - public const int MenuGroup_android_orderInCategory = 4; - - // aapt resource value: 2 - public const int MenuGroup_android_visible = 2; - - public static int[] MenuItem = new int[] { - 16842754, - 16842766, - 16842960, - 16843014, - 16843156, - 16843230, - 16843231, - 16843233, - 16843234, - 16843235, - 16843236, - 16843237, - 16843375, - 2130772168, - 2130772169, - 2130772170, - 2130772171}; - - // aapt resource value: 14 - public const int MenuItem_actionLayout = 14; - - // aapt resource value: 16 - public const int MenuItem_actionProviderClass = 16; - - // aapt resource value: 15 - public const int MenuItem_actionViewClass = 15; - - // aapt resource value: 9 - public const int MenuItem_android_alphabeticShortcut = 9; - - // aapt resource value: 11 - public const int MenuItem_android_checkable = 11; - - // aapt resource value: 3 - public const int MenuItem_android_checked = 3; - - // aapt resource value: 1 - public const int MenuItem_android_enabled = 1; - - // aapt resource value: 0 - public const int MenuItem_android_icon = 0; - - // aapt resource value: 2 - public const int MenuItem_android_id = 2; - - // aapt resource value: 5 - public const int MenuItem_android_menuCategory = 5; - - // aapt resource value: 10 - public const int MenuItem_android_numericShortcut = 10; - - // aapt resource value: 12 - public const int MenuItem_android_onClick = 12; - - // aapt resource value: 6 - public const int MenuItem_android_orderInCategory = 6; - - // aapt resource value: 7 - public const int MenuItem_android_title = 7; - - // aapt resource value: 8 - public const int MenuItem_android_titleCondensed = 8; - - // aapt resource value: 4 - public const int MenuItem_android_visible = 4; - - // aapt resource value: 13 - public const int MenuItem_showAsAction = 13; - - public static int[] MenuView = new int[] { - 16842926, - 16843052, - 16843053, - 16843054, - 16843055, - 16843056, - 16843057, - 2130772172}; - - // aapt resource value: 4 - public const int MenuView_android_headerBackground = 4; - - // aapt resource value: 2 - public const int MenuView_android_horizontalDivider = 2; - - // aapt resource value: 5 - public const int MenuView_android_itemBackground = 5; - - // aapt resource value: 6 - public const int MenuView_android_itemIconDisabledAlpha = 6; - - // aapt resource value: 1 - public const int MenuView_android_itemTextAppearance = 1; - - // aapt resource value: 3 - public const int MenuView_android_verticalDivider = 3; - - // aapt resource value: 0 - public const int MenuView_android_windowAnimationStyle = 0; - - // aapt resource value: 7 - public const int MenuView_preserveIconSpacing = 7; - - public static int[] NavigationView = new int[] { - 16842964, - 16842973, - 16843039, - 2130772032, - 2130772250, - 2130772251, - 2130772252, - 2130772253, - 2130772254, - 2130772255}; - - // aapt resource value: 0 - public const int NavigationView_android_background = 0; - - // aapt resource value: 1 - public const int NavigationView_android_fitsSystemWindows = 1; - - // aapt resource value: 2 - public const int NavigationView_android_maxWidth = 2; - - // aapt resource value: 3 - public const int NavigationView_elevation = 3; - - // aapt resource value: 9 - public const int NavigationView_headerLayout = 9; - - // aapt resource value: 7 - public const int NavigationView_itemBackground = 7; - - // aapt resource value: 5 - public const int NavigationView_itemIconTint = 5; - - // aapt resource value: 8 - public const int NavigationView_itemTextAppearance = 8; - - // aapt resource value: 6 - public const int NavigationView_itemTextColor = 6; - - // aapt resource value: 4 - public const int NavigationView_menu = 4; - - public static int[] PopupWindow = new int[] { - 16843126, - 2130772173}; - - // aapt resource value: 0 - public const int PopupWindow_android_popupBackground = 0; - - // aapt resource value: 1 - public const int PopupWindow_overlapAnchor = 1; - - public static int[] PopupWindowBackgroundState = new int[] { - 2130772174}; - - // aapt resource value: 0 - public const int PopupWindowBackgroundState_state_above_anchor = 0; - - public static int[] RecyclerView = new int[] { - 16842948, - 2130771968, - 2130771969, - 2130771970, - 2130771971}; - - // aapt resource value: 0 - public const int RecyclerView_android_orientation = 0; - - // aapt resource value: 1 - public const int RecyclerView_layoutManager = 1; - - // aapt resource value: 3 - public const int RecyclerView_reverseLayout = 3; - - // aapt resource value: 2 - public const int RecyclerView_spanCount = 2; - - // aapt resource value: 4 - public const int RecyclerView_stackFromEnd = 4; - - public static int[] ScrimInsetsFrameLayout = new int[] { - 2130772256}; - - // aapt resource value: 0 - public const int ScrimInsetsFrameLayout_insetForeground = 0; - - public static int[] ScrollingViewBehavior_Params = new int[] { - 2130772257}; - - // aapt resource value: 0 - public const int ScrollingViewBehavior_Params_behavior_overlapTop = 0; - - public static int[] SearchView = new int[] { - 16842970, - 16843039, - 16843296, - 16843364, - 2130772175, - 2130772176, - 2130772177, - 2130772178, - 2130772179, - 2130772180, - 2130772181, - 2130772182, - 2130772183, - 2130772184, - 2130772185, - 2130772186, - 2130772187}; - - // aapt resource value: 0 - public const int SearchView_android_focusable = 0; - - // aapt resource value: 3 - public const int SearchView_android_imeOptions = 3; - - // aapt resource value: 2 - public const int SearchView_android_inputType = 2; - - // aapt resource value: 1 - public const int SearchView_android_maxWidth = 1; - - // aapt resource value: 8 - public const int SearchView_closeIcon = 8; - - // aapt resource value: 13 - public const int SearchView_commitIcon = 13; - - // aapt resource value: 7 - public const int SearchView_defaultQueryHint = 7; - - // aapt resource value: 9 - public const int SearchView_goIcon = 9; - - // aapt resource value: 5 - public const int SearchView_iconifiedByDefault = 5; - - // aapt resource value: 4 - public const int SearchView_layout = 4; - - // aapt resource value: 15 - public const int SearchView_queryBackground = 15; - - // aapt resource value: 6 - public const int SearchView_queryHint = 6; - - // aapt resource value: 11 - public const int SearchView_searchHintIcon = 11; - - // aapt resource value: 10 - public const int SearchView_searchIcon = 10; - - // aapt resource value: 16 - public const int SearchView_submitBackground = 16; - - // aapt resource value: 14 - public const int SearchView_suggestionRowLayout = 14; - - // aapt resource value: 12 - public const int SearchView_voiceIcon = 12; - - public static int[] SnackbarLayout = new int[] { - 16843039, - 2130772032, - 2130772258}; - - // aapt resource value: 0 - public const int SnackbarLayout_android_maxWidth = 0; - - // aapt resource value: 1 - public const int SnackbarLayout_elevation = 1; - - // aapt resource value: 2 - public const int SnackbarLayout_maxActionInlineWidth = 2; - - public static int[] Spinner = new int[] { - 16842930, - 16843126, - 16843131, - 16843362, - 2130772033}; - - // aapt resource value: 3 - public const int Spinner_android_dropDownWidth = 3; - - // aapt resource value: 0 - public const int Spinner_android_entries = 0; - - // aapt resource value: 1 - public const int Spinner_android_popupBackground = 1; - - // aapt resource value: 2 - public const int Spinner_android_prompt = 2; - - // aapt resource value: 4 - public const int Spinner_popupTheme = 4; - - public static int[] SwitchCompat = new int[] { - 16843044, - 16843045, - 16843074, - 2130772188, - 2130772189, - 2130772190, - 2130772191, - 2130772192, - 2130772193, - 2130772194}; - - // aapt resource value: 1 - public const int SwitchCompat_android_textOff = 1; - - // aapt resource value: 0 - public const int SwitchCompat_android_textOn = 0; - - // aapt resource value: 2 - public const int SwitchCompat_android_thumb = 2; - - // aapt resource value: 9 - public const int SwitchCompat_showText = 9; - - // aapt resource value: 8 - public const int SwitchCompat_splitTrack = 8; - - // aapt resource value: 6 - public const int SwitchCompat_switchMinWidth = 6; - - // aapt resource value: 7 - public const int SwitchCompat_switchPadding = 7; - - // aapt resource value: 5 - public const int SwitchCompat_switchTextAppearance = 5; - - // aapt resource value: 4 - public const int SwitchCompat_thumbTextPadding = 4; - - // aapt resource value: 3 - public const int SwitchCompat_track = 3; - - public static int[] TabItem = new int[] { - 16842754, - 16842994, - 16843087}; - - // aapt resource value: 0 - public const int TabItem_android_icon = 0; - - // aapt resource value: 1 - public const int TabItem_android_layout = 1; - - // aapt resource value: 2 - public const int TabItem_android_text = 2; - - public static int[] TabLayout = new int[] { - 2130772259, - 2130772260, - 2130772261, - 2130772262, - 2130772263, - 2130772264, - 2130772265, - 2130772266, - 2130772267, - 2130772268, - 2130772269, - 2130772270, - 2130772271, - 2130772272, - 2130772273, - 2130772274}; - - // aapt resource value: 3 - public const int TabLayout_tabBackground = 3; - - // aapt resource value: 2 - public const int TabLayout_tabContentStart = 2; - - // aapt resource value: 5 - public const int TabLayout_tabGravity = 5; - - // aapt resource value: 0 - public const int TabLayout_tabIndicatorColor = 0; - - // aapt resource value: 1 - public const int TabLayout_tabIndicatorHeight = 1; - - // aapt resource value: 7 - public const int TabLayout_tabMaxWidth = 7; - - // aapt resource value: 6 - public const int TabLayout_tabMinWidth = 6; - - // aapt resource value: 4 - public const int TabLayout_tabMode = 4; - - // aapt resource value: 15 - public const int TabLayout_tabPadding = 15; - - // aapt resource value: 14 - public const int TabLayout_tabPaddingBottom = 14; - - // aapt resource value: 13 - public const int TabLayout_tabPaddingEnd = 13; - - // aapt resource value: 11 - public const int TabLayout_tabPaddingStart = 11; - - // aapt resource value: 12 - public const int TabLayout_tabPaddingTop = 12; - - // aapt resource value: 10 - public const int TabLayout_tabSelectedTextColor = 10; - - // aapt resource value: 8 - public const int TabLayout_tabTextAppearance = 8; - - // aapt resource value: 9 - public const int TabLayout_tabTextColor = 9; - - public static int[] TextAppearance = new int[] { - 16842901, - 16842902, - 16842903, - 16842904, - 16843105, - 16843106, - 16843107, - 16843108, - 2130772043}; - - // aapt resource value: 4 - public const int TextAppearance_android_shadowColor = 4; - - // aapt resource value: 5 - public const int TextAppearance_android_shadowDx = 5; - - // aapt resource value: 6 - public const int TextAppearance_android_shadowDy = 6; - - // aapt resource value: 7 - public const int TextAppearance_android_shadowRadius = 7; - - // aapt resource value: 3 - public const int TextAppearance_android_textColor = 3; - - // aapt resource value: 0 - public const int TextAppearance_android_textSize = 0; - - // aapt resource value: 2 - public const int TextAppearance_android_textStyle = 2; - - // aapt resource value: 1 - public const int TextAppearance_android_typeface = 1; - - // aapt resource value: 8 - public const int TextAppearance_textAllCaps = 8; - - public static int[] TextInputLayout = new int[] { - 16842906, - 16843088, - 2130772275, - 2130772276, - 2130772277, - 2130772278, - 2130772279, - 2130772280, - 2130772281, - 2130772282, - 2130772283}; - - // aapt resource value: 1 - public const int TextInputLayout_android_hint = 1; - - // aapt resource value: 0 - public const int TextInputLayout_android_textColorHint = 0; - - // aapt resource value: 6 - public const int TextInputLayout_counterEnabled = 6; - - // aapt resource value: 7 - public const int TextInputLayout_counterMaxLength = 7; - - // aapt resource value: 9 - public const int TextInputLayout_counterOverflowTextAppearance = 9; - - // aapt resource value: 8 - public const int TextInputLayout_counterTextAppearance = 8; - - // aapt resource value: 4 - public const int TextInputLayout_errorEnabled = 4; - - // aapt resource value: 5 - public const int TextInputLayout_errorTextAppearance = 5; - - // aapt resource value: 10 - public const int TextInputLayout_hintAnimationEnabled = 10; - - // aapt resource value: 3 - public const int TextInputLayout_hintEnabled = 3; - - // aapt resource value: 2 - public const int TextInputLayout_hintTextAppearance = 2; - - public static int[] Toolbar = new int[] { - 16842927, - 16843072, - 2130772009, - 2130772012, - 2130772016, - 2130772028, - 2130772029, - 2130772030, - 2130772031, - 2130772033, - 2130772195, - 2130772196, - 2130772197, - 2130772198, - 2130772199, - 2130772200, - 2130772201, - 2130772202, - 2130772203, - 2130772204, - 2130772205, - 2130772206, - 2130772207, - 2130772208, - 2130772209}; - - // aapt resource value: 0 - public const int Toolbar_android_gravity = 0; - - // aapt resource value: 1 - public const int Toolbar_android_minHeight = 1; - - // aapt resource value: 19 - public const int Toolbar_collapseContentDescription = 19; - - // aapt resource value: 18 - public const int Toolbar_collapseIcon = 18; - - // aapt resource value: 6 - public const int Toolbar_contentInsetEnd = 6; - - // aapt resource value: 7 - public const int Toolbar_contentInsetLeft = 7; - - // aapt resource value: 8 - public const int Toolbar_contentInsetRight = 8; - - // aapt resource value: 5 - public const int Toolbar_contentInsetStart = 5; - - // aapt resource value: 4 - public const int Toolbar_logo = 4; - - // aapt resource value: 22 - public const int Toolbar_logoDescription = 22; - - // aapt resource value: 17 - public const int Toolbar_maxButtonHeight = 17; - - // aapt resource value: 21 - public const int Toolbar_navigationContentDescription = 21; - - // aapt resource value: 20 - public const int Toolbar_navigationIcon = 20; - - // aapt resource value: 9 - public const int Toolbar_popupTheme = 9; - - // aapt resource value: 3 - public const int Toolbar_subtitle = 3; - - // aapt resource value: 11 - public const int Toolbar_subtitleTextAppearance = 11; - - // aapt resource value: 24 - public const int Toolbar_subtitleTextColor = 24; - - // aapt resource value: 2 - public const int Toolbar_title = 2; - - // aapt resource value: 16 - public const int Toolbar_titleMarginBottom = 16; - - // aapt resource value: 14 - public const int Toolbar_titleMarginEnd = 14; - - // aapt resource value: 13 - public const int Toolbar_titleMarginStart = 13; - - // aapt resource value: 15 - public const int Toolbar_titleMarginTop = 15; - - // aapt resource value: 12 - public const int Toolbar_titleMargins = 12; - - // aapt resource value: 10 - public const int Toolbar_titleTextAppearance = 10; - - // aapt resource value: 23 - public const int Toolbar_titleTextColor = 23; - - public static int[] View = new int[] { - 16842752, - 16842970, - 2130772210, - 2130772211, - 2130772212}; - - // aapt resource value: 1 - public const int View_android_focusable = 1; - - // aapt resource value: 0 - public const int View_android_theme = 0; - - // aapt resource value: 3 - public const int View_paddingEnd = 3; - - // aapt resource value: 2 - public const int View_paddingStart = 2; - - // aapt resource value: 4 - public const int View_theme = 4; - - public static int[] ViewBackgroundHelper = new int[] { - 16842964, - 2130772213, - 2130772214}; - - // aapt resource value: 0 - public const int ViewBackgroundHelper_android_background = 0; - - // aapt resource value: 1 - public const int ViewBackgroundHelper_backgroundTint = 1; - - // aapt resource value: 2 - public const int ViewBackgroundHelper_backgroundTintMode = 2; - - public static int[] ViewStubCompat = new int[] { - 16842960, - 16842994, - 16842995}; - - // aapt resource value: 0 - public const int ViewStubCompat_android_id = 0; - - // aapt resource value: 2 - public const int ViewStubCompat_android_inflatedId = 2; - - // aapt resource value: 1 - public const int ViewStubCompat_android_layout = 1; - - static Styleable() - { - global::Android.Runtime.ResourceIdManager.UpdateIdValues(); - } - - private Styleable() - { - } - } - } -} -#pragma warning restore 1591 diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-hdpi/icon.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-hdpi/icon.png deleted file mode 100644 index 964f110abb..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-hdpi/icon.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-xhdpi/icon.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-xhdpi/icon.png deleted file mode 100644 index 3c01e60ced..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-xhdpi/icon.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-xxhdpi/icon.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-xxhdpi/icon.png deleted file mode 100644 index 0d8c1c57dc..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable-xxhdpi/icon.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable/icon.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable/icon.png deleted file mode 100644 index b0ba7150f4..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/drawable/icon.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/layout/Tabbar.axml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/layout/Tabbar.axml deleted file mode 100644 index ad1f87d817..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/layout/Tabbar.axml +++ /dev/null @@ -1,11 +0,0 @@ - - diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/layout/Toolbar.axml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/layout/Toolbar.axml deleted file mode 100644 index aabd0a3b74..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/layout/Toolbar.axml +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/values/styles.xml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/values/styles.xml deleted file mode 100644 index 43b0a58c19..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/Resources/values/styles.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/packages.config b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/packages.config deleted file mode 100644 index ca5e8fa0c0..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.Droid/packages.config +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/AdaptiveCards.Sample.BotClient.UWP.csproj b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/AdaptiveCards.Sample.BotClient.UWP.csproj deleted file mode 100644 index e8a5575791..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/AdaptiveCards.Sample.BotClient.UWP.csproj +++ /dev/null @@ -1,140 +0,0 @@ - - - - - Debug - x86 - {732594E9-8585-4EE8-ABA7-70F4AEDC56AF} - AppContainerExe - Properties - AdaptiveCards.XamarinForms.BotClient.UWP - AdaptiveCards.XamarinForms.BotClient.UWP - en-US - UAP - 10.0.14393.0 - 10.0.14393.0 - 14 - true - 512 - {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Windows_TemporaryKey.pfx - - - true - bin\ARM\Debug\ - DEBUG;TRACE;NETFX_CORE - ;2008 - full - ARM - false - prompt - true - - - bin\ARM\Release\ - TRACE;NETFX_CORE - true - ;2008 - pdbonly - ARM - false - prompt - true - true - - - true - bin\x64\Debug\ - DEBUG;TRACE;NETFX_CORE - ;2008 - full - x64 - false - prompt - true - - - bin\x64\Release\ - TRACE;NETFX_CORE - true - ;2008 - pdbonly - x64 - false - prompt - true - true - - - true - bin\x86\Debug\ - DEBUG;TRACE;NETFX_CORE - ;2008 - full - x86 - false - prompt - true - - - bin\x86\Release\ - TRACE;NETFX_CORE - true - ;2008 - pdbonly - x86 - false - prompt - true - true - - - - - - - - App.xaml - - - MainPage.xaml - - - - - - Designer - - - - - - - - - - - - - - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - - - {ac638ff4-8e90-44e1-9f6d-9089f6d14dd4} - AdaptiveCards.Sample.BotClient - - - - 14.0 - - - diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/App.xaml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/App.xaml deleted file mode 100644 index e207a16cdb..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/App.xaml +++ /dev/null @@ -1,8 +0,0 @@ - - - diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/App.xaml.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/App.xaml.cs deleted file mode 100644 index 3c6390a298..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/App.xaml.cs +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Runtime.InteropServices.WindowsRuntime; -using Windows.ApplicationModel; -using Windows.ApplicationModel.Activation; -using Windows.Foundation; -using Windows.Foundation.Collections; -using Windows.UI.Xaml; -using Windows.UI.Xaml.Controls; -using Windows.UI.Xaml.Controls.Primitives; -using Windows.UI.Xaml.Data; -using Windows.UI.Xaml.Input; -using Windows.UI.Xaml.Media; -using Windows.UI.Xaml.Navigation; - -namespace AdaptiveCards.XamarinForms.BotClient.UWP -{ - /// - /// Provides application-specific behavior to supplement the default Application class. - /// - sealed partial class App : Application - { - /// - /// Initializes the singleton application object. This is the first line of authored code - /// executed, and as such is the logical equivalent of main() or WinMain(). - /// - public App() - { - this.InitializeComponent(); - this.Suspending += OnSuspending; - } - - /// - /// Invoked when the application is launched normally by the end user. Other entry points - /// will be used such as when the application is launched to open a specific file. - /// - /// Details about the launch request and process. - protected override void OnLaunched(LaunchActivatedEventArgs e) - { - -#if DEBUG - if (System.Diagnostics.Debugger.IsAttached) - { - this.DebugSettings.EnableFrameRateCounter = true; - } -#endif - - Frame rootFrame = Window.Current.Content as Frame; - - // Do not repeat app initialization when the Window already has content, - // just ensure that the window is active - if (rootFrame == null) - { - // Create a Frame to act as the navigation context and navigate to the first page - rootFrame = new Frame(); - - rootFrame.NavigationFailed += OnNavigationFailed; - - Xamarin.Forms.Forms.Init(e); - - if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) - { - //TODO: Load state from previously suspended application - } - - // Place the frame in the current Window - Window.Current.Content = rootFrame; - } - - if (rootFrame.Content == null) - { - // When the navigation stack isn't restored navigate to the first page, - // configuring the new page by passing required information as a navigation - // parameter - rootFrame.Navigate(typeof(MainPage), e.Arguments); - } - // Ensure the current window is active - Window.Current.Activate(); - } - - /// - /// Invoked when Navigation to a certain page fails - /// - /// The Frame which failed navigation - /// Details about the navigation failure - void OnNavigationFailed(object sender, NavigationFailedEventArgs e) - { - throw new Exception("Failed to load Page " + e.SourcePageType.FullName); - } - - /// - /// Invoked when application execution is being suspended. Application state is saved - /// without knowing whether the application will be terminated or resumed with the contents - /// of memory still intact. - /// - /// The source of the suspend request. - /// Details about the suspend request. - private void OnSuspending(object sender, SuspendingEventArgs e) - { - var deferral = e.SuspendingOperation.GetDeferral(); - //TODO: Save application state and stop any background activity - deferral.Complete(); - } - } -} diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/LockScreenLogo.scale-200.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/LockScreenLogo.scale-200.png deleted file mode 100644 index 735f57adb5..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/LockScreenLogo.scale-200.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/SplashScreen.scale-200.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/SplashScreen.scale-200.png deleted file mode 100644 index 023e7f1fed..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/SplashScreen.scale-200.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square150x150Logo.scale-200.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square150x150Logo.scale-200.png deleted file mode 100644 index af49fec1a5..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square150x150Logo.scale-200.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square44x44Logo.scale-200.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square44x44Logo.scale-200.png deleted file mode 100644 index ce342a2ec8..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square44x44Logo.scale-200.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png deleted file mode 100644 index f6c02ce97e..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Square44x44Logo.targetsize-24_altform-unplated.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/StoreLogo.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/StoreLogo.png deleted file mode 100644 index 7385b56c0e..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/StoreLogo.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Wide310x150Logo.scale-200.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Wide310x150Logo.scale-200.png deleted file mode 100644 index 288995b397..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Assets/Wide310x150Logo.scale-200.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/MainPage.xaml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/MainPage.xaml deleted file mode 100644 index 055393f6c8..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/MainPage.xaml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/MainPage.xaml.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/MainPage.xaml.cs deleted file mode 100644 index 685c036d64..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/MainPage.xaml.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Runtime.InteropServices.WindowsRuntime; -using Windows.Foundation; -using Windows.Foundation.Collections; -using Windows.UI.Xaml; -using Windows.UI.Xaml.Controls; -using Windows.UI.Xaml.Controls.Primitives; -using Windows.UI.Xaml.Data; -using Windows.UI.Xaml.Input; -using Windows.UI.Xaml.Media; -using Windows.UI.Xaml.Navigation; - -namespace AdaptiveCards.XamarinForms.BotClient.UWP -{ - public sealed partial class MainPage - { - public MainPage() - { - this.InitializeComponent(); - - LoadApplication(new AdaptiveCards.XamarinForms.BotClient.App()); - } - } -} diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Package.appxmanifest b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Package.appxmanifest deleted file mode 100644 index b875e1cff4..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Package.appxmanifest +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - AdaptiveCards.XamarinForms.BotClient.UWP - mahiding - Assets\StoreLogo.png - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Properties/AssemblyInfo.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Properties/AssemblyInfo.cs deleted file mode 100644 index 8ed38b577c..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("AdaptiveCards.XamarinForms.BotClient.UWP")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("AdaptiveCards.XamarinForms.BotClient.UWP")] -[assembly: AssemblyCopyright("Copyright © 2015")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] -[assembly: ComVisible(false)] diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Properties/Default.rd.xml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Properties/Default.rd.xml deleted file mode 100644 index 80a960ce32..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/Properties/Default.rd.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/project.json b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/project.json deleted file mode 100644 index f6e443b891..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.UWP/project.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "dependencies": { - "Microsoft.NETCore.UniversalWindowsPlatform": "5.3.1", - "Microsoft.Rest.ClientRuntime": "2.3.5", - "Newtonsoft.Json": "9.0.1", - "Xamarin.Forms": "2.3.4.221-pre6" - }, - "frameworks": { - "uap10.0": {} - }, - "runtimes": { - "win10-arm": {}, - "win10-arm-aot": {}, - "win10-x86": {}, - "win10-x86-aot": {}, - "win10-x64": {}, - "win10-x64-aot": {} - } -} diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/AdaptiveCards.Sample.BotClient.iOS.csproj b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/AdaptiveCards.Sample.BotClient.iOS.csproj deleted file mode 100644 index 2a51cd4dae..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/AdaptiveCards.Sample.BotClient.iOS.csproj +++ /dev/null @@ -1,154 +0,0 @@ - - - - Debug - iPhoneSimulator - 8.0.30703 - 2.0 - {53FB7C26-D705-48A0-8101-80A4A91A8B4E} - {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Exe - AdaptiveCards.XamarinForms.BotClient.iOS - Resources - AdaptiveCards.XamarinForms.BotClient.iOS - - - - - true - full - false - bin\iPhoneSimulator\Debug - DEBUG - prompt - 4 - false - i386, x86_64 - None - true - - - none - true - bin\iPhoneSimulator\Release - prompt - 4 - None - i386, x86_64 - false - - - true - full - false - bin\iPhone\Debug - DEBUG - prompt - 4 - false - ARMv7, ARM64 - iPhone Developer - true - Entitlements.plist - - - none - true - bin\iPhone\Release - prompt - 4 - ARMv7, ARM64 - false - iPhone Developer - Entitlements.plist - - - none - True - bin\iPhone\Ad-Hoc - prompt - 4 - False - ARMv7, ARM64 - True - Automatic:AdHoc - iPhone Distribution - Entitlements.plist - - - none - True - bin\iPhone\AppStore - prompt - 4 - False - ARMv7, ARM64 - Automatic:AppStore - iPhone Distribution - Entitlements.plist - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ..\..\AdaptiveCards.XamarinForms.Renderer\packages\Xamarin.Forms.2.3.3.193\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll - True - - - ..\..\AdaptiveCards.XamarinForms.Renderer\packages\Xamarin.Forms.2.3.3.193\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll - True - - - ..\..\AdaptiveCards.XamarinForms.Renderer\packages\Xamarin.Forms.2.3.3.193\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll - True - - - ..\..\AdaptiveCards.XamarinForms.Renderer\packages\Xamarin.Forms.2.3.3.193\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll - True - - - - - - {62bc72a3-e347-4ef9-b054-66b0ae13fc00} - AdaptiveCards.XamarinForms.BotClient - - - - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - - \ No newline at end of file diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/AppDelegate.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/AppDelegate.cs deleted file mode 100644 index 9491b0b229..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/AppDelegate.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -using System; -using System.Collections.Generic; -using System.Linq; - -using Foundation; -using UIKit; - -namespace AdaptiveCards.XamarinForms.BotClient.iOS -{ - // The UIApplicationDelegate for the application. This class is responsible for launching the - // User Interface of the application, as well as listening (and optionally responding) to - // application events from iOS. - [Register("AppDelegate")] - public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate - { - // - // This method is invoked when the application has loaded and is ready to run. In this - // method you should instantiate the window, load the UI into it and then make the window - // visible. - // - // You have 17 seconds to return from this method, or iOS will terminate your application. - // - public override bool FinishedLaunching(UIApplication app, NSDictionary options) - { - global::Xamarin.Forms.Forms.Init(); - LoadApplication(new App()); - - return base.FinishedLaunching(app, options); - } - } -} diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Entitlements.plist b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Entitlements.plist deleted file mode 100644 index e9a3005f78..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Entitlements.plist +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Info.plist b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Info.plist deleted file mode 100644 index 134f47d391..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Info.plist +++ /dev/null @@ -1,52 +0,0 @@ - - - - - UIDeviceFamily - - 1 - 2 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - MinimumOSVersion - 6.0 - CFBundleDisplayName - AdaptiveCards.XamarinForms.BotClient - CFBundleIdentifier - com.yourcompany.AdaptiveCards.XamarinForms.BotClient - CFBundleVersion - 1.0 - CFBundleIconFiles - - Icon-60@2x - Icon-60@3x - Icon-76 - Icon-76@2x - Default - Default@2x - Default-568h@2x - Default-Portrait - Default-Portrait@2x - Icon-Small-40 - Icon-Small-40@2x - Icon-Small-40@3x - Icon-Small - Icon-Small@2x - Icon-Small@3x - - UILaunchStoryboardName - LaunchScreen - - diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Main.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Main.cs deleted file mode 100644 index fb3ae11961..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Main.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -using System; -using System.Collections.Generic; -using System.Linq; - -using Foundation; -using UIKit; - -namespace AdaptiveCards.XamarinForms.BotClient.iOS -{ - public class Application - { - // This is the main entry point of the application. - static void Main(string[] args) - { - // if you want to use a different Application Delegate class from "AppDelegate" - // you can specify it here. - UIApplication.Main(args, null, "AppDelegate"); - } - } -} diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Properties/AssemblyInfo.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Properties/AssemblyInfo.cs deleted file mode 100644 index f8462e4d8c..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("AdaptiveCards.XamarinForms.BotClient.iOS")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("AdaptiveCards.XamarinForms.BotClient.iOS")] -[assembly: AssemblyCopyright("Copyright © 2014")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("72bdc44f-c588-44f3-b6df-9aace7daafdd")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-568h@2x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-568h@2x.png deleted file mode 100644 index 26c6461e50..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-568h@2x.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-Portrait.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-Portrait.png deleted file mode 100644 index 5d0d1ab4c6..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-Portrait.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-Portrait@2x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-Portrait@2x.png deleted file mode 100644 index 0ee2688e8f..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default-Portrait@2x.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default.png deleted file mode 100644 index b74643c0aa..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default@2x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default@2x.png deleted file mode 100644 index dbd6bd3e86..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Default@2x.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-60@2x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-60@2x.png deleted file mode 100644 index 4b03c42703..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-60@2x.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-60@3x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-60@3x.png deleted file mode 100644 index b03ca1bbc6..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-60@3x.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-76.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-76.png deleted file mode 100644 index 587982e2a6..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-76.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-76@2x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-76@2x.png deleted file mode 100644 index cd4e2c8fe7..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-76@2x.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40.png deleted file mode 100644 index 6acff94417..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40@2x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40@2x.png deleted file mode 100644 index b833aac26f..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40@2x.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40@3x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40@3x.png deleted file mode 100644 index ab8654e499..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small-40@3x.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small.png deleted file mode 100644 index 33db7e7141..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small@2x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small@2x.png deleted file mode 100644 index bf45e25929..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small@2x.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small@3x.png b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small@3x.png deleted file mode 100644 index 7ad3891b95..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/Icon-Small@3x.png and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/LaunchScreen.storyboard b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/LaunchScreen.storyboard deleted file mode 100644 index a639c2f1a5..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/Resources/LaunchScreen.storyboard +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/iTunesArtwork b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/iTunesArtwork deleted file mode 100644 index 94c8ebd6b2..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/iTunesArtwork and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/iTunesArtwork@2x b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/iTunesArtwork@2x deleted file mode 100644 index fa2ebf72db..0000000000 Binary files a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/iTunesArtwork@2x and /dev/null differ diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/packages.config b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/packages.config deleted file mode 100644 index 894c7ac893..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient.iOS/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/AdaptiveCards.Sample.BotClient.csproj b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/AdaptiveCards.Sample.BotClient.csproj deleted file mode 100644 index db5f1aa38a..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/AdaptiveCards.Sample.BotClient.csproj +++ /dev/null @@ -1,36 +0,0 @@ - - - - netstandard1.4 - $(PackageTargetFallback);portable-win+net45+wp8+win81+wpa8;portable-net45+win8+wpa81 - - - - - - - - - Designer - MSBuild:UpdateDesignTimeXaml - PreserveNewest - - - Designer - MSBuild:UpdateDesignTimeXaml - PreserveNewest - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/App.xaml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/App.xaml deleted file mode 100644 index 2c56e03bcb..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/App.xaml +++ /dev/null @@ -1,326 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/App.xaml.cs b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/App.xaml.cs deleted file mode 100644 index a26a252d7a..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/App.xaml.cs +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using AdaptiveCards; -using Xamarin.Forms; - -namespace AdaptiveCards.XamarinForms.BotClient -{ - public partial class App : Application - { - public App() - { - InitializeComponent(); - - MainPage = new AdaptiveCards.XamarinForms.BotClient.MainPage(); - } - - protected override void OnStart() - { - // Handle when your app starts - } - - protected override void OnSleep() - { - // Handle when your app sleeps - } - - protected override void OnResume() - { - // Handle when your app resumes - } - } -} diff --git a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/MainPage.xaml b/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/MainPage.xaml deleted file mode 100644 index 8ddcb5a3ae..0000000000 --- a/source/dotnet/Samples/XamarinFormsBotClient/AdaptiveCards.Sample.BotClient/MainPage.xaml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - + @@ -64,8 +68,12 @@ - + + + + + diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/Resources/en.lproj/Localizable.strings b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/Resources/en.lproj/Localizable.strings new file mode 100644 index 0000000000..0c4756f41a --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/Resources/en.lproj/Localizable.strings @@ -0,0 +1,10 @@ +/* + Localizable.strings + AdaptiveCards + + Copyright © 2021 Microsoft. All rights reserved. +*/ + + +"AdaptiveCards.Parsing" = "Parse Error: %@"; + diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/UtiliOS.mm b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/UtiliOS.mm index be6ce71b63..f56ae4a6f3 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/UtiliOS.mm +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/UtiliOS.mm @@ -9,10 +9,12 @@ #import "ACOBaseCardElementPrivate.h" #import "ACOHostConfigPrivate.h" #import "ACRBaseCardElementRenderer.h" +#import "ACRBaseTarget.h" #import "ACRColumnSetView.h" #import "ACRContentStackView.h" #import "ACRIBaseActionElementRenderer.h" #import "ACRRegistration.h" +#import "ACRTableRow.h" #import "ACRTargetBuilderDirector.h" #import "ACRUIImageView.h" #import "ACRViewPrivate.h" @@ -362,8 +364,8 @@ void configBleed(ACRView *rootView, std::shared_ptr const &elem void configBleed(ACRView *rootView, std::shared_ptr const &elem, ACRContentStackView *container, ACOHostConfig *acoConfig, UIView *superview) { - std::shared_ptr collection = - std::dynamic_pointer_cast(elem); + std::shared_ptr collection = + std::dynamic_pointer_cast(elem); if (collection) { // check current collection type element has padding, if so added to the padding map [rootView updatePaddingMap:collection view:container]; @@ -577,6 +579,9 @@ ACRRenderingStatus buildTargetForButton(ACRTargetBuilderDirector *director, UIButton *button, NSObject **target) { *target = [director build:action forButton:button]; + if (action.tooltip && target) { + [((ACRBaseTarget *)*target) addGestureRecognizer:button toolTipText:action.tooltip]; + } return *target ? ACRRenderingStatus::ACROk : ACRRenderingStatus::ACRFailed; } @@ -597,6 +602,24 @@ void setAccessibilityTrait(UIView *recipientView, ACOBaseActionElement *action) } } +NSString *configureForAccessibilityLabel(ACOBaseActionElement *action, NSString *contentString) +{ + NSMutableArray *accessibilityLabels = [[NSMutableArray alloc] init]; + if (action.title) { + [accessibilityLabels addObject:action.title]; + } else { + if (contentString) { + [accessibilityLabels addObject:contentString]; + } + } + + if (action.tooltip) { + [accessibilityLabels addObject:action.tooltip]; + } + + return [accessibilityLabels componentsJoinedByString:@", "]; +} + UIFont *getFont(ACOHostConfig *hostConfig, const AdaptiveCards::RichTextElementProperties &textProperties) { FontType sharedFontType = textProperties.GetFontType().value_or(FontType::Default); @@ -870,19 +893,6 @@ void configHorizontalAlignmentConstraintsForBackgroundImageView(const Background return key; } -CGSize getAspectRatio(CGSize size) -{ - CGFloat heightToWidthRatio = 0.0f, widthToHeightRatio = 0.0f; - if (size.width > 0) { - heightToWidthRatio = size.height / size.width; - } - - if (size.height > 0) { - widthToHeightRatio = size.width / size.height; - } - return CGSizeMake(widthToHeightRatio, heightToWidthRatio); -} - ACRImageSize getACRImageSize(ImageSize adaptiveImageSize, BOOL hasExplicitDimensions) { if (hasExplicitDimensions) { @@ -921,6 +931,37 @@ ACRHorizontalAlignment getACRHorizontalAlignment(HorizontalAlignment horizontalA } } +ACRHeightType GetACRHeight(HeightType adaptiveHeight) +{ + ACRHeightType height = ACRHeightAuto; + switch (adaptiveHeight) { + case AdaptiveCards::HeightType::Auto: + height = ACRHeightAuto; + break; + case AdaptiveCards::HeightType::Stretch: + height = ACRHeightStretch; + break; + } + return height; +} + +ACRVerticalContentAlignment GetACRVerticalContentAlignment(VerticalContentAlignment adaptiveVerticalContentAlignment) +{ + ACRVerticalContentAlignment contentAlignment = ACRVerticalContentAlignmentTop; + switch (adaptiveVerticalContentAlignment) { + case AdaptiveCards::VerticalContentAlignment::Top: + contentAlignment = ACRVerticalContentAlignmentTop; + break; + case AdaptiveCards::VerticalContentAlignment::Center: + contentAlignment = ACRVerticalContentAlignmentCenter; + break; + case AdaptiveCards::VerticalContentAlignment::Bottom: + contentAlignment = ACRVerticalContentAlignmentBottom; + break; + } + return contentAlignment; +} + void printSize(NSString *msg, CGSize size) { NSLog(@"%@, size = %f x %f", msg, size.width, size.height); diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACOActionOverflow.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACOActionOverflow.h new file mode 120000 index 0000000000..f668392138 --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACOActionOverflow.h @@ -0,0 +1 @@ +../ACOActionOverflow.h \ No newline at end of file diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRBaseTarget.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRBaseTarget.h new file mode 120000 index 0000000000..b394763767 --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRBaseTarget.h @@ -0,0 +1 @@ +../ACRBaseTarget.h \ No newline at end of file diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRChoiceSetViewDataSource.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRChoiceSetViewDataSource.h index 41dbbd7c7a..d5f7c71f0d 120000 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRChoiceSetViewDataSource.h +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRChoiceSetViewDataSource.h @@ -1 +1 @@ -../ACRChoiceSetViewDataSource.h \ No newline at end of file +../PrivateHeaders/ACRChoiceSetViewDataSource.h \ No newline at end of file diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRChoiceSetViewDataSourceCompactStyle.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRChoiceSetViewDataSourceCompactStyle.h index 985cbfc31d..62afe5b9c3 120000 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRChoiceSetViewDataSourceCompactStyle.h +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRChoiceSetViewDataSourceCompactStyle.h @@ -1 +1 @@ -../ACRChoiceSetViewDataSourceCompactStyle.h \ No newline at end of file +../PrivateHeaders/ACRChoiceSetViewDataSourceCompactStyle.h \ No newline at end of file diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRDateTextField.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRDateTextField.h index a8ecd09209..96cc9f73ce 120000 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRDateTextField.h +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRDateTextField.h @@ -1 +1 @@ -../ACRDateTextField.h \ No newline at end of file +../PrivateHeaders/ACRDateTextField.h \ No newline at end of file diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRImageSetUICollectionView.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRImageSetUICollectionView.h index 20c3ba8ea0..1403f8ffba 120000 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRImageSetUICollectionView.h +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRImageSetUICollectionView.h @@ -1 +1 @@ -../ACRImageSetUICollectionView.h \ No newline at end of file +../PrivateHeaders/ACRImageSetUICollectionView.h \ No newline at end of file diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRLongPressGestureRecognizerEventHandler.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRLongPressGestureRecognizerEventHandler.h deleted file mode 120000 index 1490f04b35..0000000000 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRLongPressGestureRecognizerEventHandler.h +++ /dev/null @@ -1 +0,0 @@ -../ACRLongPressGestureRecognizerEventHandler.h \ No newline at end of file diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRLongPressGestureRecognizerFactory.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRLongPressGestureRecognizerFactory.h deleted file mode 120000 index a8bcd06db9..0000000000 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRLongPressGestureRecognizerFactory.h +++ /dev/null @@ -1 +0,0 @@ -../ACRLongPressGestureRecognizerFactory.h \ No newline at end of file diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRSeparator.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRSeparator.h index 5ed2e6dd33..70a57481c7 120000 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRSeparator.h +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRSeparator.h @@ -1 +1 @@ -../ACRSeparator.h \ No newline at end of file +../PrivateHeaders/ACRSeparator.h \ No newline at end of file diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRShowCardTarget.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRShowCardTarget.h index 2f5e224832..70a33b343c 120000 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRShowCardTarget.h +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRShowCardTarget.h @@ -1 +1 @@ -../ACRShowCardTarget.h \ No newline at end of file +../PrivateHeaders/ACRShowCardTarget.h \ No newline at end of file diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRTableCellView.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRTableCellView.h index 29c417e79c..432f0c8e0e 120000 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRTableCellView.h +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRTableCellView.h @@ -1 +1 @@ -../ACRTableCellView.h \ No newline at end of file +../PrivateHeaders/ACRTableCellView.h \ No newline at end of file diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRTapGestureRecognizerEventHandler.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRTapGestureRecognizerEventHandler.h new file mode 120000 index 0000000000..5d714de94c --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRTapGestureRecognizerEventHandler.h @@ -0,0 +1 @@ +../ACRTapGestureRecognizerEventHandler.h \ No newline at end of file diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRTapGestureRecognizerFactory.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRTapGestureRecognizerFactory.h new file mode 120000 index 0000000000..a0e1aa5d70 --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRTapGestureRecognizerFactory.h @@ -0,0 +1 @@ +../ACRTapGestureRecognizerFactory.h \ No newline at end of file diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRTargetBuilderDirector.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRTargetBuilderDirector.h index 2243c593e1..5202ff593d 120000 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRTargetBuilderDirector.h +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRTargetBuilderDirector.h @@ -1 +1 @@ -../ACRTargetBuilderDirector.h \ No newline at end of file +../PrivateHeaders/ACRTargetBuilderDirector.h \ No newline at end of file diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRToggleInputDataSource.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRToggleInputDataSource.h index e3fcf2f243..88b209a248 120000 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRToggleInputDataSource.h +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRToggleInputDataSource.h @@ -1 +1 @@ -../ACRToggleInputDataSource.h \ No newline at end of file +../PrivateHeaders/ACRToggleInputDataSource.h \ No newline at end of file diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRToggleVisibilityTarget.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRToggleVisibilityTarget.h index 41260efffa..7543dd2239 120000 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRToggleVisibilityTarget.h +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/ACRToggleVisibilityTarget.h @@ -1 +1 @@ -../ACRToggleVisibilityTarget.h \ No newline at end of file +../PrivateHeaders/ACRToggleVisibilityTarget.h \ No newline at end of file diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/ACRImagePropertiesTests.mm b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/ACRImagePropertiesTests.mm new file mode 100644 index 0000000000..67c8f1d38f --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/ACRImagePropertiesTests.mm @@ -0,0 +1,51 @@ +// +// ACRImagePropertiesTests.mm +// ACRImagePropertiesTests +// +// Copyright © 2022 Microsoft. All rights reserved. +// + +#import +#import + +@interface ACRImagePropertiesTests : XCTestCase + +@end + +@implementation ACRImagePropertiesTests + +- (void)setUp +{ + // Put setup code here. This method is called before the invocation of each test method in the class. +} + +- (void)tearDown +{ + // Put teardown code here. This method is called after the invocation of each test method in the class. +} + +- (void)testConvertToAspectRatioWorksWithZero +{ + CGSize size = CGSizeZero; + ACRAspectRatio ratio = [ACRImageProperties convertToAspectRatio:size]; + XCTAssert(ratio.widthToHeight == 1.0f); + XCTAssert(ratio.heightToWidth == 1.0f); +} + +- (void)testConvertToAspectRatioWorksWithUninitialized +{ + CGSize randomSize; + ACRAspectRatio unknownRatio = [ACRImageProperties convertToAspectRatio:randomSize]; + XCTAssert(unknownRatio.heightToWidth > 0); + XCTAssert(unknownRatio.widthToHeight > 0); +} + +- (void)testConvertToAspectRatioWorksWithVeryLargeDenominator +{ + CGSize unreasonableSize = CGSizeMake(10000, 1); + ACRAspectRatio wellBehavingRatio = [ACRImageProperties convertToAspectRatio:unreasonableSize]; + XCTAssertEqualWithAccuracy(wellBehavingRatio.heightToWidth, 0.01f, 0.01); + XCTAssertEqual(wellBehavingRatio.widthToHeight, 100); +} + +@end diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsActionsTest.mm b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsActionsTest.mm index 270d4bdadd..bf62beecf6 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsActionsTest.mm +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsActionsTest.mm @@ -10,7 +10,7 @@ #import "ACRButton.h" #import "ACRViewPrivate.h" #import "BaseActionElement.h" -#import "Mocks/MockACRView.h" +#import "Mocks/ACRMockViews.h" #import "Mocks/MockContext.h" #import "OpenUrlAction.h" #import @@ -111,4 +111,3 @@ - (void)testACRButtonPublicConstraintsWithIconPlacements } @end - diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsColumnTests.mm b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsColumnTests.mm index 3ec268648e..ccf14508f5 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsColumnTests.mm +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsColumnTests.mm @@ -5,12 +5,21 @@ // Copyright © 2021 Microsoft. All rights reserved. // +#import "ACOAdaptiveCardPrivate.h" +#import "ACOBaseCardElementPrivate.h" +#import "ACOFillerSpaceManager.h" #import "ACORenderContext.h" #import "ACOVisibilityManager.h" -#import "ACRColumnView.h" +#import "ACRCustomRenderers.h" +#import "ACRRegistration.h" +#import "ACRRenderer.h" #import "ACRSeparator.h" +#import "ACRView.h" #import "Column.h" #import "Enums.h" +#import "Mocks/ACRMockViews.h" +#import "Mocks/ADCMockResolver.h" +#import "TextBlock.h" #import #import @@ -18,27 +27,51 @@ @interface AdaptiveCardsColumnTests : XCTestCase @end -@implementation AdaptiveCardsColumnTests +@implementation AdaptiveCardsColumnTests { + NSBundle *_classBundle; + NSString *_hostConfig; + NSString *_tearDownMessage; +} - (void)setUp { + _classBundle = [NSBundle bundleForClass:[self class]]; + _hostConfig = [NSString stringWithContentsOfFile:[_classBundle pathForResource:@"sample" ofType:@"json"] + encoding:NSUTF8StringEncoding + error:nil]; // Put setup code here. This method is called before the invocation of each test method in the class. } - (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. + if (self.testRun.failureCount && _tearDownMessage) { + NSLog(@"%@", _tearDownMessage); + _tearDownMessage = nil; + } +} + +- (NSArray *)prepCards:(NSArray *)fileNames +{ + NSMutableArray *cards = [[NSMutableArray alloc] init]; + for (NSString *fileName in fileNames) { + NSString *payload = [NSString stringWithContentsOfFile:[_classBundle pathForResource:fileName ofType:@"json"] encoding:NSUTF8StringEncoding error:nil]; + ACOAdaptiveCardParseResult *cardParseResult = [ACOAdaptiveCard fromJson:payload]; + XCTAssertTrue(cardParseResult.isValid); + [cards addObject:cardParseResult.card]; + } + return cards; } - (void)testVisibilityManagerSimple { UIView *viewToBeHidden0 = [[UIView alloc] init]; - NSMutableArray *arrangedSubviews = [[NSMutableArray alloc] init]; - [arrangedSubviews addObject:viewToBeHidden0]; - ACOVisibilityManager *manager = [[ACOVisibilityManager alloc] init]; - [manager hideView:viewToBeHidden0 arrangedSubviews:arrangedSubviews]; + ACRMockContentStackView *hostView = [[ACRMockContentStackView alloc] init]; + [hostView addArrangedSubview:viewToBeHidden0]; + ACOVisibilityManager *manager = [hostView getVisibilityManager]; + [manager hideView:viewToBeHidden0 hostView:hostView]; + NSArray *arrangedSubviews = [hostView getArrangedSubviews]; XCTAssert(arrangedSubviews[0].hidden == YES); - [manager unhideView:viewToBeHidden0 arrangedSubviews:arrangedSubviews]; + [manager unhideView:viewToBeHidden0 hostView:hostView]; XCTAssert(arrangedSubviews[0].hidden == NO); } @@ -47,17 +80,23 @@ - (void)testVisibilityManager UIView *viewToBeHidden0 = [[UIView alloc] init]; UIView *viewToBeHidden1 = [[UIView alloc] init]; ACRSeparator *separator0 = [[ACRSeparator alloc] init]; - NSMutableArray *arrangedSubviews = [[NSMutableArray alloc] init]; - [arrangedSubviews addObject:viewToBeHidden0]; - [arrangedSubviews addObject:separator0]; - [arrangedSubviews addObject:viewToBeHidden1]; - ACOVisibilityManager *manager = [[ACOVisibilityManager alloc] init]; - [manager hideView:viewToBeHidden0 arrangedSubviews:arrangedSubviews]; + ACRMockContentStackView *hostView = [[ACRMockContentStackView alloc] init]; + ACOFillerSpaceManager *fillerSpaceManager = [hostView getFillerSpaceManager]; + + [hostView addArrangedSubview:viewToBeHidden0]; + [hostView addArrangedSubview:separator0]; + [hostView addArrangedSubview:viewToBeHidden1]; + [fillerSpaceManager associateSeparatorWithOwnerView:separator0 ownerView:viewToBeHidden1]; + [hostView applyVisibilityToSubviews]; + + NSArray *arrangedSubviews = [hostView getArrangedSubviews]; + ACOVisibilityManager *manager = [hostView getVisibilityManager]; + [manager hideView:viewToBeHidden0 hostView:hostView]; XCTAssert(arrangedSubviews[0].hidden == YES); XCTAssert(arrangedSubviews[1].hidden == YES); XCTAssert(arrangedSubviews[2].hidden == NO); - [manager unhideView:viewToBeHidden0 arrangedSubviews:arrangedSubviews]; + [manager unhideView:viewToBeHidden0 hostView:hostView]; XCTAssert(arrangedSubviews[0].hidden == NO); XCTAssert(arrangedSubviews[1].hidden == NO); XCTAssert(arrangedSubviews[2].hidden == NO); @@ -67,16 +106,18 @@ - (void)testVisibilityManagerWithoutSeparator { UIView *viewToBeHidden0 = [[UIView alloc] init]; UIView *viewToBeHidden1 = [[UIView alloc] init]; - NSMutableArray *arrangedSubviews = [[NSMutableArray alloc] init]; - [arrangedSubviews addObject:viewToBeHidden0]; - [arrangedSubviews addObject:viewToBeHidden1]; - ACOVisibilityManager *manager = [[ACOVisibilityManager alloc] init]; - [manager hideView:viewToBeHidden0 arrangedSubviews:arrangedSubviews]; + ACRMockContentStackView *hostView = [[ACRMockContentStackView alloc] init]; + ACOVisibilityManager *manager = [hostView getVisibilityManager]; + [hostView addArrangedSubview:viewToBeHidden0]; + [hostView addArrangedSubview:viewToBeHidden1]; + [manager hideView:viewToBeHidden0 hostView:hostView]; + + NSArray *arrangedSubviews = [hostView getArrangedSubviews]; XCTAssert(arrangedSubviews[0].hidden == YES); XCTAssert(arrangedSubviews[1].hidden == NO); - [manager unhideView:viewToBeHidden0 arrangedSubviews:arrangedSubviews]; + [manager unhideView:viewToBeHidden0 hostView:hostView]; XCTAssert(arrangedSubviews[0].hidden == NO); XCTAssert(arrangedSubviews[1].hidden == NO); } @@ -86,17 +127,26 @@ - (void)testVisibilityManagerHideLatView UIView *viewToBeHidden0 = [[UIView alloc] init]; UIView *viewToBeHidden1 = [[UIView alloc] init]; ACRSeparator *separator0 = [[ACRSeparator alloc] init]; - NSMutableArray *arrangedSubviews = [[NSMutableArray alloc] init]; - [arrangedSubviews addObject:viewToBeHidden0]; - [arrangedSubviews addObject:separator0]; - [arrangedSubviews addObject:viewToBeHidden1]; - ACOVisibilityManager *manager = [[ACOVisibilityManager alloc] init]; - [manager hideView:viewToBeHidden1 arrangedSubviews:arrangedSubviews]; + + ACRMockContentStackView *hostView = [[ACRMockContentStackView alloc] init]; + ACOFillerSpaceManager *fillerSpaceManager = [hostView getFillerSpaceManager]; + ACOVisibilityManager *manager = [hostView getVisibilityManager]; + + [hostView addArrangedSubview:viewToBeHidden0]; + [hostView addArrangedSubview:separator0]; + [hostView addArrangedSubview:viewToBeHidden1]; + + [fillerSpaceManager associateSeparatorWithOwnerView:separator0 ownerView:viewToBeHidden1]; + [hostView applyVisibilityToSubviews]; + + NSArray *arrangedSubviews = [hostView getArrangedSubviews]; + + [manager hideView:viewToBeHidden1 hostView:hostView]; XCTAssert(arrangedSubviews[0].hidden == NO); XCTAssert(arrangedSubviews[1].hidden == YES); XCTAssert(arrangedSubviews[2].hidden == YES); - [manager unhideView:viewToBeHidden1 arrangedSubviews:arrangedSubviews]; + [manager unhideView:viewToBeHidden1 hostView:hostView]; XCTAssert(arrangedSubviews[0].hidden == NO); XCTAssert(arrangedSubviews[1].hidden == NO); XCTAssert(arrangedSubviews[2].hidden == NO); @@ -105,94 +155,69 @@ - (void)testVisibilityManagerHideLatView - (void)testVisibilityManagerHidePadding { UIView *viewToBeHidden = [[UIView alloc] init]; - UIView *padding = [[UIView alloc] init]; - NSMutableArray *arrangedSubviews = [[NSMutableArray alloc] init]; - [arrangedSubviews addObject:viewToBeHidden]; - [arrangedSubviews addObject:padding]; + ACRMockContentStackView *hostView = [[ACRMockContentStackView alloc] init]; + [hostView addArrangedSubview:viewToBeHidden]; + + [hostView configureLayoutAndVisibility:ACRVerticalContentAlignmentTop minHeight:0 heightType:ACRHeightStretch type:ACRContainer]; + NSArray *arrangedSubviews = [hostView getArrangedSubviews]; + // if column width is 'auto' and there isn't a view, padding disapears - ACOVisibilityManager *manager = [[ACOVisibilityManager alloc] init]; - manager.columnWidth = @"auto"; - manager.padding = padding; - [manager hideView:viewToBeHidden arrangedSubviews:arrangedSubviews]; + ACOVisibilityManager *manager = [hostView getVisibilityManager]; + [manager hideView:viewToBeHidden hostView:hostView]; + [hostView updatePaddingVisibility]; + XCTAssert(arrangedSubviews[0].hidden == YES); XCTAssert(arrangedSubviews[1].hidden == YES); - [manager unhideView:viewToBeHidden arrangedSubviews:arrangedSubviews]; + + [manager unhideView:viewToBeHidden hostView:hostView]; + [hostView updatePaddingVisibility]; XCTAssert(arrangedSubviews[0].hidden == NO); XCTAssert(arrangedSubviews[1].hidden == NO); } - (void)testVisibilityManagerPaddingWithStretch { - UIView *viewToBeHidden = [[UIView alloc] init]; - UIView *padding = [[UIView alloc] init]; - NSMutableArray *arrangedSubviews = [[NSMutableArray alloc] init]; - [arrangedSubviews addObject:viewToBeHidden]; - [arrangedSubviews addObject:padding]; - ACOVisibilityManager *manager = [[ACOVisibilityManager alloc] init]; - manager.columnWidth = @"stretch"; - manager.padding = padding; - [manager hideView:viewToBeHidden arrangedSubviews:arrangedSubviews]; - XCTAssert(arrangedSubviews[0].hidden == YES); - XCTAssert(arrangedSubviews[1].hidden == NO); - [manager unhideView:viewToBeHidden arrangedSubviews:arrangedSubviews]; - XCTAssert(arrangedSubviews[0].hidden == NO); - XCTAssert(arrangedSubviews[1].hidden == NO); -} + NSArray *testFiles = @[ + @"Action.ToggleVisibilityExhaustive" + ]; + NSArray *cards = [self prepCards:testFiles]; + ACRRegistration *registration = [ACRRegistration getInstance]; + ACRCustomColumnRenderer *testColumnRenderer = [ACRCustomColumnRenderer getInstance]; -- (void)testVisibilityManagerDoesNotHidePadding -{ - UIView *viewToBeHidden0 = [[UIView alloc] init]; - ACRSeparator *separator = [[ACRSeparator alloc] init]; - UIView *viewToBeHidden1 = [[UIView alloc] init]; - UIView *padding = [[UIView alloc] init]; - NSMutableArray *arrangedSubviews = [[NSMutableArray alloc] init]; - [arrangedSubviews addObject:viewToBeHidden0]; - [arrangedSubviews addObject:separator]; - [arrangedSubviews addObject:viewToBeHidden1]; - [arrangedSubviews addObject:padding]; - // even if column width is 'auto', if there is a view padding doesn't disapear - ACOVisibilityManager *manager = [[ACOVisibilityManager alloc] init]; - manager.columnWidth = @"auto"; - manager.padding = padding; - [manager hideView:viewToBeHidden0 arrangedSubviews:arrangedSubviews]; - XCTAssert(arrangedSubviews[0].hidden == YES); - XCTAssert(arrangedSubviews[1].hidden == YES); - XCTAssert(arrangedSubviews[2].hidden == NO); - XCTAssert(arrangedSubviews[3].hidden == NO); - [manager unhideView:viewToBeHidden0 arrangedSubviews:arrangedSubviews]; - XCTAssert(arrangedSubviews[0].hidden == NO); - XCTAssert(arrangedSubviews[1].hidden == NO); - XCTAssert(arrangedSubviews[2].hidden == NO); - XCTAssert(arrangedSubviews[3].hidden == NO); -} + ACOResourceResolvers *resolvers = [[ACOResourceResolvers alloc] init]; + ADCMockResolver *mockReslover = [[ADCMockResolver alloc] init]; + [resolvers setResourceResolver:mockReslover scheme:@"http"]; + [resolvers setResourceResolver:mockReslover scheme:@"https"]; + ACOHostConfigParseResult *hostconfigParseResult = [ACOHostConfig fromJson:_hostConfig + resourceResolvers:resolvers]; + void (^testBlock)(UIView *, NSDictionary *) = + ^(UIView *view, NSDictionary *dictionary) { + id val = dictionary[@"expected"][@"numberOfViews"]; + if ([val isKindOfClass:[NSString class]]) { + int numberOfPaddings = [((NSString *)val) intValue]; + NSUInteger numberOfViews = 0; + for (UIView *subView in [((ACRColumnView *)view) getArrangedSubviews]) { + if (!subView.isHidden) { + numberOfViews += 1; + } + } + XCTAssertEqual(numberOfPaddings, numberOfViews); + } + }; -- (void)testVisibilityManagerHidePaddingComplex0 -{ - UIView *viewToBeHidden0 = [[UIView alloc] init]; - ACRSeparator *separator = [[ACRSeparator alloc] init]; - UIView *viewToBeHidden1 = [[UIView alloc] init]; - UIView *padding = [[UIView alloc] init]; - NSMutableArray *arrangedSubviews = [[NSMutableArray alloc] init]; - [arrangedSubviews addObject:viewToBeHidden0]; - [arrangedSubviews addObject:separator]; - [arrangedSubviews addObject:viewToBeHidden1]; - [arrangedSubviews addObject:padding]; - // even if column width is 'auto', if there is a view padding doesn't disapear - ACOVisibilityManager *manager = [[ACOVisibilityManager alloc] init]; - manager.columnWidth = @"auto"; - manager.padding = padding; - [manager hideView:viewToBeHidden0 arrangedSubviews:arrangedSubviews]; - [manager hideView:viewToBeHidden1 arrangedSubviews:arrangedSubviews]; - XCTAssert(arrangedSubviews[0].hidden == YES); - XCTAssert(arrangedSubviews[1].hidden == YES); - XCTAssert(arrangedSubviews[2].hidden == YES); - XCTAssert(arrangedSubviews[3].hidden == YES); - [manager unhideView:viewToBeHidden0 arrangedSubviews:arrangedSubviews]; - [manager unhideView:viewToBeHidden1 arrangedSubviews:arrangedSubviews]; - XCTAssert(arrangedSubviews[0].hidden == NO); - XCTAssert(arrangedSubviews[1].hidden == NO); - XCTAssert(arrangedSubviews[2].hidden == NO); - XCTAssert(arrangedSubviews[3].hidden == NO); + testColumnRenderer.fetchActualRenderedView = testBlock; + + [registration setBaseCardElementRenderer:testColumnRenderer cardElementType:ACRColumn useResourceResolver:YES]; + + self.continueAfterFailure = NO; + + for (int i = 0; i < cards.count; i++) { + ACOAdaptiveCard *card = cards[i]; + _tearDownMessage = [NSString stringWithFormat:@"The number of padding is not correct when tested with %@", testFiles[i]]; + ACRRenderResult *renderResult = [ACRRenderer render:card config:hostconfigParseResult.config widthConstraint:320.0]; + _tearDownMessage = [NSString stringWithFormat:@"rendering failed for %@ card", testFiles[i]]; + XCTAssertEqual(renderResult.succeeded, YES); + } } - (void)testAddColumnToContextNullability @@ -235,4 +260,114 @@ - (void)testAddColumnToContext2 XCTAssertEqual(columnView, [context retrieveVisiblityManagerWithTag:view1.tag]); } +- (void)testPaddingInitialization +{ + ACOFillerSpaceManager *paddingHandler = [[ACOFillerSpaceManager alloc] init]; + XCTAssertNotNil(paddingHandler); +} + +- (void)testPaddingConfigurePadding +{ + ACOFillerSpaceManager *paddingHandler = [[ACOFillerSpaceManager alloc] init]; + auto elem = std::make_shared(); + ACOBaseCardElement *acoElem = [[ACOBaseCardElement alloc] initWithBaseCardElement:elem]; + UIView *view = [[UIView alloc] init]; + [paddingHandler configureHeight:view correspondingElement:acoElem]; + XCTAssertEqual(NO, paddingHandler.hasPadding); + XCTAssertNotEqual(kFillerViewLayoutConstraintPriority, [view contentHuggingPriorityForAxis:UILayoutConstraintAxisVertical]); + + elem->SetHeight(HeightType::Stretch); + [paddingHandler configureHeight:view correspondingElement:acoElem]; + XCTAssertEqual(YES, paddingHandler.hasPadding); + XCTAssertEqual(kFillerViewLayoutConstraintPriority, [view contentHuggingPriorityForAxis:UILayoutConstraintAxisVertical]); + + XCTAssertEqual(NO, [paddingHandler isPadding:view]); +} + +NSArray *buildTextBlocksWithHeightStretch(uint n) +{ + NSMutableArray *textBlocks = [[NSMutableArray alloc] init]; + for (uint i = 0; i < n; i++) { + auto elem0 = std::make_shared(); + elem0->SetHeight(HeightType::Stretch); + ACOBaseCardElement *acoElem = [[ACOBaseCardElement alloc] initWithBaseCardElement:elem0]; + [textBlocks addObject:acoElem]; + } + + return textBlocks; +} + +- (void)testPaddingActivateConstraints +{ + NSArray *textBlocks = buildTextBlocksWithHeightStretch(3); + ACOFillerSpaceManager *paddingHandler = [[ACOFillerSpaceManager alloc] init]; + UIView *superView = [[UIView alloc] init]; + for (ACOBaseCardElement *acoElem in textBlocks) { + UIView *view = [[UIView alloc] init]; + [superView addSubview:view]; + [paddingHandler configureHeight:view correspondingElement:acoElem]; + XCTAssertFalse([paddingHandler isPadding:view]); + XCTAssertEqual(kFillerViewLayoutConstraintPriority, [view contentHuggingPriorityForAxis:UILayoutConstraintAxisVertical]); + } + + NSArray *constraints = [paddingHandler activateConstraintsForPadding]; + XCTAssertNotNil(constraints); + XCTAssertEqual(constraints.count, 2); +} + +- (void)testPaddingOnSampleCards +{ + NSArray *testFiles = @[ + @"Container.VerticalContentAlignment", + @"Container.VerticalContentAlignment2", + @"Column.VerticalAlignment", + @"ColumnSet.FactSet.VerticalStretch", + @"ColumnSet.Image.VerticalStretch", + @"ColumnSet.Input.ChoiceSet.VerticalStretch" + ]; + NSArray *cards = [self prepCards:testFiles]; + ACRRegistration *registration = [ACRRegistration getInstance]; + ACRCustomContainerRenderer *testContainerRenderer = [ACRCustomContainerRenderer getInstance]; + ACRCustomColumnRenderer *testColumnRenderer = [ACRCustomColumnRenderer getInstance]; + + ACOResourceResolvers *resolvers = [[ACOResourceResolvers alloc] init]; + ADCMockResolver *mockReslover = [[ADCMockResolver alloc] init]; + [resolvers setResourceResolver:mockReslover scheme:@"http"]; + [resolvers setResourceResolver:mockReslover scheme:@"https"]; + ACOHostConfigParseResult *hostconfigParseResult = [ACOHostConfig fromJson:_hostConfig + resourceResolvers:resolvers]; + void (^testBlock)(UIView *, NSDictionary *) = + ^(UIView *view, NSDictionary *dictionary) { + id val = dictionary[@"expected"][@"numberOfViews"]; + if ([val isKindOfClass:[NSString class]]) { + int numberOfPaddings = [((NSString *)val) intValue]; + NSUInteger numberOfViews = 0; + for (UIView *subView in [((ACRColumnView *)view) getArrangedSubviews]) { + if (!subView.isHidden) { + numberOfViews += 1; + } + } + XCTAssertEqual(numberOfPaddings, numberOfViews); + } + }; + + testContainerRenderer.fetchActualRenderedView = testBlock; + + testColumnRenderer.fetchActualRenderedView = testBlock; + + [registration setBaseCardElementRenderer:testContainerRenderer cardElementType:ACRContainer useResourceResolver:YES]; + + [registration setBaseCardElementRenderer:testColumnRenderer cardElementType:ACRColumn useResourceResolver:YES]; + + self.continueAfterFailure = NO; + + for (int i = 0; i < cards.count; i++) { + ACOAdaptiveCard *card = cards[i]; + _tearDownMessage = [NSString stringWithFormat:@"The number of padding is not correct when tested with %@", testFiles[i]]; + ACRRenderResult *renderResult = [ACRRenderer render:card config:hostconfigParseResult.config widthConstraint:320.0]; + _tearDownMessage = [NSString stringWithFormat:@"rendering failed for %@ card", testFiles[i]]; + XCTAssertEqual(renderResult.succeeded, YES); + } +} + @end diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsTests.m b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsTests.m index ab91e54cbe..770b6d42d6 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsTests.m +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsTests.m @@ -1,12 +1,12 @@ // // Test.m -// +// // // Created by Inyoung Woo on 5/7/21. // -#import #import "AdaptiveCards.h" +#import @interface AdaptiveCardsTest : XCTestCase @@ -14,20 +14,24 @@ @interface AdaptiveCardsTest : XCTestCase @implementation AdaptiveCardsTest -- (void)setUp { +- (void)setUp +{ // Put setup code here. This method is called before the invocation of each test method in the class. } -- (void)tearDown { +- (void)tearDown +{ // Put teardown code here. This method is called after the invocation of each test method in the class. } -- (void)testExample { +- (void)testExample +{ // This is an example of a functional test case. // Use XCTAssert and related functions to verify your tests produce the correct results. } -- (void)testPerformanceExample { +- (void)testPerformanceExample +{ // This is an example of a performance test case. [self measureBlock:^{ // Put the code you want to measure the time of here. diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsTests.mm b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsTests.mm index 726be92766..1057ab3dd5 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsTests.mm +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsTests.mm @@ -2,15 +2,22 @@ // AdaptiveCardsTests.mm // AdaptiveCardsTests // -// Created by almedina on 6/22/21. // Copyright © 2021 Microsoft. All rights reserved. // +#import "ACOBaseCardElementPrivate.h" +#import "ACRBaseCardElementRenderer.h" #import "ACRContentHoldingUIView.h" +#import "ACRInputLabelView.h" +#import "ACRRegistration.h" +#import "ACRTextView.h" #import "TextBlock.h" +#import "TextInput.h" #import #import +using namespace AdaptiveCards; + @interface AdaptiveCardsTests : XCTestCase @end @@ -47,5 +54,78 @@ - (void)testContentHoldingUIViewWithImage XCTAssertEqualObjects(wrapperView.contentView, imageView); } -@end +- (void)testPasswordStyleIsCorrectSet +{ + std::shared_ptr textInput = std::make_shared(); + textInput->SetTextInputStyle(TextInputStyle::Password); + ACOBaseCardElement *baseCardElement = [[ACOBaseCardElement alloc] initWithBaseCardElement:textInput]; + ACRRegistration *registration = [ACRRegistration getInstance]; + ACRBaseCardElementRenderer *renderer = [registration getRenderer:[NSNumber numberWithInt:ACRTextInput]]; + ACRColumnView *viewGroup = [[ACRColumnView alloc] init]; + ACRView *rootView = [[ACRView alloc] init]; + NSMutableArray *inputs = [[NSMutableArray alloc] init]; + ACOHostConfig *config = [[ACOHostConfig alloc] init]; + UIView *inputView = [renderer render:viewGroup + rootView:rootView + inputs:inputs + baseCardElement:baseCardElement + hostConfig:config]; + XCTAssertNotNil(inputView); + XCTAssertTrue([inputView isKindOfClass:[ACRInputLabelView class]]); + ACRInputLabelView *labelview = (ACRInputLabelView *)inputView; + XCTAssertNotNil(labelview.inputView); + XCTAssertTrue([labelview.inputView isKindOfClass:[UITextField class]]); + UITextField *textField = (UITextField *)labelview.inputView; + XCTAssertTrue(textField.isSecureTextEntry); +} +- (void)testInputIsSetToACRTextViewWhenMultiline +{ + std::shared_ptr textInput = std::make_shared(); + textInput->SetIsMultiline(true); + ACOBaseCardElement *baseCardElement = [[ACOBaseCardElement alloc] initWithBaseCardElement:textInput]; + ACRRegistration *registration = [ACRRegistration getInstance]; + ACRBaseCardElementRenderer *renderer = [registration getRenderer:[NSNumber numberWithInt:ACRTextInput]]; + ACRColumnView *viewGroup = [[ACRColumnView alloc] init]; + ACRView *rootView = [[ACRView alloc] init]; + NSMutableArray *inputs = [[NSMutableArray alloc] init]; + ACOHostConfig *config = [[ACOHostConfig alloc] init]; + UIView *inputView = [renderer render:viewGroup + rootView:rootView + inputs:inputs + baseCardElement:baseCardElement + hostConfig:config]; + XCTAssertNotNil(inputView); + XCTAssertTrue([inputView isKindOfClass:[ACRInputLabelView class]]); + ACRInputLabelView *labelview = (ACRInputLabelView *)inputView; + XCTAssertNotNil(labelview.inputView); + XCTAssertTrue([labelview.inputView isKindOfClass:[ACRTextView class]]); +} + +- (void)testInputIsSetToACRTextFieldWhenMultilineAndPasswordStyleAreSet +{ + std::shared_ptr textInput = std::make_shared(); + textInput->SetIsMultiline(true); + textInput->SetTextInputStyle(TextInputStyle::Password); + ACOBaseCardElement *baseCardElement = [[ACOBaseCardElement alloc] initWithBaseCardElement:textInput]; + ACRRegistration *registration = [ACRRegistration getInstance]; + ACRBaseCardElementRenderer *renderer = [registration getRenderer:[NSNumber numberWithInt:ACRTextInput]]; + ACRColumnView *viewGroup = [[ACRColumnView alloc] init]; + ACRView *rootView = [[ACRView alloc] init]; + NSMutableArray *inputs = [[NSMutableArray alloc] init]; + ACOHostConfig *config = [[ACOHostConfig alloc] init]; + UIView *inputView = [renderer render:viewGroup + rootView:rootView + inputs:inputs + baseCardElement:baseCardElement + hostConfig:config]; + XCTAssertNotNil(inputView); + XCTAssertTrue([inputView isKindOfClass:[ACRInputLabelView class]]); + ACRInputLabelView *labelview = (ACRInputLabelView *)inputView; + XCTAssertNotNil(labelview.inputView); + XCTAssertTrue([labelview.inputView isKindOfClass:[UITextField class]]); + UITextField *textField = (UITextField *)labelview.inputView; + XCTAssertTrue(textField.isSecureTextEntry); +} + +@end diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsTextBlockTests.mm b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsTextBlockTests.mm index 36c7c177d9..ba074659cd 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsTextBlockTests.mm +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsTextBlockTests.mm @@ -5,8 +5,8 @@ // Copyright © 2021 Microsoft. All rights reserved. // -#import "TextBlock.h" #import "Enums.h" +#import "TextBlock.h" #import #import @@ -16,80 +16,88 @@ @interface AdaptiveCardsTextBlockTests : XCTestCase @implementation AdaptiveCardsTextBlockTests -- (void)setUp { +- (void)setUp +{ // Put setup code here. This method is called before the invocation of each test method in the class. } -- (void)tearDown { +- (void)tearDown +{ // Put teardown code here. This method is called after the invocation of each test method in the class. } -- (void)testTextBlockTextProperty { +- (void)testTextBlockTextProperty +{ std::shared_ptr textblock = std::make_shared(); textblock->SetText("Text test"); XCTAssert(textblock->GetText() == "Text test"); } -- (void)testTextBlockTextPropertySerialization { +- (void)testTextBlockTextPropertySerialization +{ std::shared_ptr textblock = std::make_shared(); textblock->SetText("Text test"); XCTAssert(textblock->Serialize() == "{\"text\":\"Text test\",\"type\":\"TextBlock\"}\n"); } -- (void)verifyTextColorIsSet : (AdaptiveCards::ForegroundColor) color - onTextBlock : (std::shared_ptr &) textblock{ +- (void)verifyTextColorIsSet:(AdaptiveCards::ForegroundColor)color + onTextBlock:(std::shared_ptr &)textblock +{ textblock->SetTextColor(color); XCTAssert(textblock->GetTextColor() == color); } -- (void)testTextBlockColorProperty { +- (void)testTextBlockColorProperty +{ std::shared_ptr textblock = std::make_shared(); - [self verifyTextColorIsSet : AdaptiveCards::ForegroundColor::Default - onTextBlock : textblock]; - [self verifyTextColorIsSet : AdaptiveCards::ForegroundColor::Dark - onTextBlock : textblock]; - [self verifyTextColorIsSet : AdaptiveCards::ForegroundColor::Light - onTextBlock : textblock]; - [self verifyTextColorIsSet : AdaptiveCards::ForegroundColor::Accent - onTextBlock : textblock]; - [self verifyTextColorIsSet : AdaptiveCards::ForegroundColor::Good - onTextBlock : textblock]; - [self verifyTextColorIsSet : AdaptiveCards::ForegroundColor::Warning - onTextBlock : textblock]; - [self verifyTextColorIsSet : AdaptiveCards::ForegroundColor::Attention - onTextBlock : textblock]; + [self verifyTextColorIsSet:AdaptiveCards::ForegroundColor::Default + onTextBlock:textblock]; + [self verifyTextColorIsSet:AdaptiveCards::ForegroundColor::Dark + onTextBlock:textblock]; + [self verifyTextColorIsSet:AdaptiveCards::ForegroundColor::Light + onTextBlock:textblock]; + [self verifyTextColorIsSet:AdaptiveCards::ForegroundColor::Accent + onTextBlock:textblock]; + [self verifyTextColorIsSet:AdaptiveCards::ForegroundColor::Good + onTextBlock:textblock]; + [self verifyTextColorIsSet:AdaptiveCards::ForegroundColor::Warning + onTextBlock:textblock]; + [self verifyTextColorIsSet:AdaptiveCards::ForegroundColor::Attention + onTextBlock:textblock]; } -- (void)verifyTextColorIsSerialized : (AdaptiveCards::ForegroundColor) color - as : (const std::string &) serializedString - onTextBlock : (std::shared_ptr &) textblock { +- (void)verifyTextColorIsSerialized:(AdaptiveCards::ForegroundColor)color + as:(const std::string &)serializedString + onTextBlock:(std::shared_ptr &)textblock +{ textblock->SetTextColor(color); std::string serializedTextBlock = textblock->Serialize(); XCTAssert(serializedTextBlock == "{\"color\":\"" + serializedString + "\",\"text\":\"\",\"type\":\"TextBlock\"}\n"); } -- (void)testTextBlockColorPropertySerialization { +- (void)testTextBlockColorPropertySerialization +{ std::shared_ptr textblock = std::make_shared(); XCTAssert(textblock->Serialize() == "{\"text\":\"\",\"type\":\"TextBlock\"}\n"); - - [self verifyTextColorIsSerialized : AdaptiveCards::ForegroundColor::Dark - as : "Dark" - onTextBlock : textblock]; - [self verifyTextColorIsSerialized : AdaptiveCards::ForegroundColor::Light - as : "Light" - onTextBlock : textblock]; - [self verifyTextColorIsSerialized : AdaptiveCards::ForegroundColor::Accent - as : "Accent" - onTextBlock : textblock]; - [self verifyTextColorIsSerialized : AdaptiveCards::ForegroundColor::Good - as : "Good" - onTextBlock : textblock]; - [self verifyTextColorIsSerialized : AdaptiveCards::ForegroundColor::Warning - as : "Warning" - onTextBlock : textblock]; - [self verifyTextColorIsSerialized : AdaptiveCards::ForegroundColor::Attention - as : "Attention" - onTextBlock : textblock]; + + [self verifyTextColorIsSerialized:AdaptiveCards::ForegroundColor::Dark + as:"Dark" + onTextBlock:textblock]; + [self verifyTextColorIsSerialized:AdaptiveCards::ForegroundColor::Light + as:"Light" + onTextBlock:textblock]; + [self verifyTextColorIsSerialized:AdaptiveCards::ForegroundColor::Accent + as:"Accent" + onTextBlock:textblock]; + [self verifyTextColorIsSerialized:AdaptiveCards::ForegroundColor::Good + as:"Good" + onTextBlock:textblock]; + [self verifyTextColorIsSerialized:AdaptiveCards::ForegroundColor::Warning + as:"Warning" + onTextBlock:textblock]; + [self verifyTextColorIsSerialized:AdaptiveCards::ForegroundColor::Attention + as:"Attention" + onTextBlock:textblock]; } @end diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsUtiliOSTest.mm b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsUtiliOSTest.mm index b46d6d705b..db568d5deb 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsUtiliOSTest.mm +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/AdaptiveCardsUtiliOSTest.mm @@ -47,4 +47,3 @@ - (void)testFindTheClosestCGRect1 @end - diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Helpers/ACRCustomRenderers.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Helpers/ACRCustomRenderers.h new file mode 100644 index 0000000000..177f7f5f43 --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Helpers/ACRCustomRenderers.h @@ -0,0 +1,28 @@ +// +// ACRCustomColumnRenderer.h +// AdaptiveCardsTests +// +// Copyright © 2021 Microsoft. All rights reserved. +// + +#import "ACRColumnRenderer.h" +#import "ACRContainerRenderer.h" + +@protocol ACRIUnitTest + +@property void (^fetchActualRenderedView)(UIView *view, NSDictionary *props); + +@end + +@interface ACRCustomColumnRenderer : ACRColumnRenderer + ++ (ACRCustomColumnRenderer *)getInstance; + +@end + +@interface ACRCustomContainerRenderer : ACRContainerRenderer + ++ (ACRCustomContainerRenderer *)getInstance; +; + +@end diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Helpers/ACRCustomRenderers.mm b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Helpers/ACRCustomRenderers.mm new file mode 100644 index 0000000000..904a63700c --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Helpers/ACRCustomRenderers.mm @@ -0,0 +1,63 @@ +// +// ACRCustomColumnView.m +// AdaptiveCardsTests +// +// Copyright © 2021 Microsoft. All rights reserved. +// + +#import "ACRCustomRenderers.h" +#import + +@implementation ACRCustomColumnRenderer + ++ (ACRCustomColumnRenderer *)getInstance +{ + static ACRCustomColumnRenderer *singletonInstance = [[self alloc] init]; + return singletonInstance; +} + +- (UIView *)render:(UIView *)viewGroup + rootView:(ACRView *)rootView + inputs:(NSMutableArray *)inputs + baseCardElement:(ACOBaseCardElement *)acoElem + hostConfig:(ACOHostConfig *)acoConfig; +{ + UIView *view = [super render:viewGroup rootView:rootView inputs:inputs baseCardElement:acoElem hostConfig:acoConfig]; + if (acoElem.additionalProperty) { + NSError *error = nil; + id props = [NSJSONSerialization JSONObjectWithData:acoElem.additionalProperty options:0 error:&error]; + self.fetchActualRenderedView(view, props); + } + return view; +} + +@synthesize fetchActualRenderedView; + +@end + +@implementation ACRCustomContainerRenderer + ++ (ACRCustomContainerRenderer *)getInstance +{ + static ACRCustomContainerRenderer *singletonInstance = [[self alloc] init]; + return singletonInstance; +} + +- (UIView *)render:(UIView *)viewGroup + rootView:(ACRView *)rootView + inputs:(NSMutableArray *)inputs + baseCardElement:(ACOBaseCardElement *)acoElem + hostConfig:(ACOHostConfig *)acoConfig; +{ + UIView *view = [super render:viewGroup rootView:rootView inputs:inputs baseCardElement:acoElem hostConfig:acoConfig]; + if (acoElem.additionalProperty) { + NSError *error = nil; + id props = [NSJSONSerialization JSONObjectWithData:acoElem.additionalProperty options:0 error:&error]; + self.fetchActualRenderedView(view, props); + } + return view; +} + +@synthesize fetchActualRenderedView; + +@end diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/ACRMockViews.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/ACRMockViews.h new file mode 100644 index 0000000000..9710fc471e --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/ACRMockViews.h @@ -0,0 +1,26 @@ +// +// ACRMockViews.h +// AdaptiveCardsTests +// +// Copyright © 2021 Microsoft. All rights reserved. +// + +#import "ACRContentStackView.h" +#import "ACREnums.h" +#import "ACRViewPrivate.h" +#import "MockContext.h" + +@class ACOVisibilityManager; + +@interface MockACRView : ACRView + +@property (nonatomic) MockContext *mockContext; + +@end + +@interface ACRMockContentStackView : ACRContentStackView + +- (ACOVisibilityManager *)getVisibilityManager; + +- (ACOFillerSpaceManager *)getFillerSpaceManager; +@end diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/MockACRView.mm b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/ACRMockViews.mm similarity index 54% rename from source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/MockACRView.mm rename to source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/ACRMockViews.mm index c148b73cc2..0a3e6a2842 100644 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/MockACRView.mm +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/ACRMockViews.mm @@ -1,11 +1,11 @@ // -// MockACRView.m +// ACRMockViews.mm // AdaptiveCardsTests // // Copyright © 2021 Microsoft. All rights reserved. // -#import "MockACRView.h" +#import "ACRMockViews.h" #import "MockContext.h" #import @@ -25,4 +25,24 @@ - (void)setMockContext:(MockContext *)context } } +@end + +@implementation ACRMockContentStackView + +- (instancetype)init +{ + return [super initWithFrame:CGRectMake(0, 0, 100, 100) attributes:nil]; +} + +- (ACOVisibilityManager *)getVisibilityManager +{ + return _visibilityManager; +} + +- (ACOFillerSpaceManager *)getFillerSpaceManager +{ + return _paddingHandler; +} + + @end diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/ADCMockResolver.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/ADCMockResolver.h new file mode 100644 index 0000000000..d4b85a1f62 --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/ADCMockResolver.h @@ -0,0 +1,13 @@ +// +// ADCResolver.h +// ADCResolver.h +// +// Copyright © 2018 Microsoft. All rights reserved. +// + +#import "ACOIResourceResolver.h" +#import + +@interface ADCMockResolver : NSObject + +@end diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/ADCMockResolver.m b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/ADCMockResolver.m new file mode 100644 index 0000000000..88f4548f8f --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/ADCMockResolver.m @@ -0,0 +1,18 @@ +// +// ADCMockResolver.m +// ADCIOSVisualizer +// +// Copyright © 2021 Microsoft. All rights reserved. +// + +#import "ADCMockResolver.h" + +@implementation ADCMockResolver + + +- (UIImageView *)resolveImageViewResource:(NSURL *)url +{ + return [[UIImageView alloc] init]; +} + +@end diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/MockACRView.h b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/MockACRView.h deleted file mode 100644 index 4df344f6d0..0000000000 --- a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/Mocks/MockACRView.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// MockACRView.h -// AdaptiveCardsTests -// -// Copyright © 2021 Microsoft. All rights reserved. -// - -#import "ACRViewPrivate.h" -#import "MockContext.h" - -@interface MockACRView : ACRView - -@property MockContext *mockContext; - -@end - diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/Action.ToggleVisibilityExhaustive.json b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/Action.ToggleVisibilityExhaustive.json new file mode 100644 index 0000000000..2358e4191e --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/Action.ToggleVisibilityExhaustive.json @@ -0,0 +1,152 @@ +{ + "type": "AdaptiveCard", + "version": "1.2", + "body": [ + { + "type": "TextBlock", + "text": "Press the buttons to toggle the images!", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Here are some images:", + "isVisible": false, + "id": "textToToggle" + }, + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "expected": { + "numberOfViews" : "0", + "visible" : true + }, + "items": [ + { + "style": "person", + "type": "Image", + "url": "https://picsum.photos/100/100?image=112", + "isVisible": false, + "id": "imageToToggle", + "altText": "sample image 1", + "size": "medium" + } + ] + }, + { + "type": "Column", + "expected": { + "numberOfViews" : "2", + "visible" : true + }, + "items": [ + + { + "type": "Image", + "url": "https://picsum.photos/100/100?image=123", + "isVisible": true, + "id": "imageToToggle2", + "altText": "sample image 2", + "size": "medium" + } + ] + } + ] + } + ], + "actions": [ + { + "type": "Action.ToggleVisibility", + "title": "Toggle!", + "targetElements": [ "textToToggle", "imageToToggle", "imageToToggle2" ] + }, + { + "type": "Action.ToggleVisibility", + "title": "Also Toggle!", + "targetElements": [ + { + "elementId": "textToToggle" + }, + { + "elementId": "imageToToggle" + }, + { + "elementId": "imageToToggle2" + } + ] + }, + { + "type": "Action.ToggleVisibility", + "title": "Show!", + "targetElements": [ + { + "elementId": "textToToggle", + "isVisible": true + }, + { + "elementId": "imageToToggle", + "isVisible": true + }, + { + "elementId": "imageToToggle2", + "isVisible": true + } + ] + }, + { + "type": "Action.ToggleVisibility", + "title": "Hide!", + "targetElements": [ + { + "elementId": "textToToggle", + "isVisible": false + }, + { + "elementId": "imageToToggle", + "isVisible": false + }, + { + "elementId": "imageToToggle2", + "isVisible": false + } + ] + }, + { + "type": "Action.ToggleVisibility", + "title": "Grain!", + "targetElements": [ + { + "elementId": "textToToggle", + "isVisible": true + }, + { + "elementId": "imageToToggle", + "isVisible": true + }, + { + "elementId": "imageToToggle2", + "isVisible": false + } + ] + }, + { + "type": "Action.ToggleVisibility", + "title": "Water!", + "targetElements": [ + { + "elementId": "textToToggle", + "isVisible": true + }, + { + "elementId": "imageToToggle", + "isVisible": false + }, + { + "elementId": "imageToToggle2", + "isVisible": true + } + ] + } + ] +} diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/Column.VerticalAlignment.json b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/Column.VerticalAlignment.json new file mode 100644 index 0000000000..e6cc872e2e --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/Column.VerticalAlignment.json @@ -0,0 +1,79 @@ +{ + "type": "AdaptiveCard", + "version": "1.0", + "body": [ + { + "type": "Container", + "items": [ + { + "type": "TextBlock", + "text": "**Columns Vertical Alignment Test**", + "horizontalAlignment": "Center" + } + ], + "style": "emphasis", + "bleed": true + }, + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "width": "stretch", + "items": [ + { + "type": "Image", + "altText": "", + "url": "https://adaptivecards.io/content/adaptive-card-50.png", + "horizontalAlignment": "Center" + } + ] + }, + { + "type": "Column", + "width": "stretch", + "expected": { + "numberOfViews" : "2" + }, + "items": [ + { + "type": "TextBlock", + "text": "Top", + "horizontalAlignment": "Center", + "wrap": true + } + ] + }, + { + "type": "Column", + "expected": { + "numberOfViews" : "3" + }, + "width": "stretch", + "items": [ + { + "type": "TextBlock", + "text": "Center" + } + ], + "verticalContentAlignment": "Center" + }, + { + "type": "Column", + "expected": { + "numberOfViews" : "2" + }, + "width": "stretch", + "items": [ + { + "type": "TextBlock", + "text": "Bottom" + } + ], + "verticalContentAlignment": "Bottom" + } + ] + } + ], + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json" +} diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/ColumnSet.FactSet.VerticalStretch.json b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/ColumnSet.FactSet.VerticalStretch.json new file mode 100644 index 0000000000..46333bc443 --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/ColumnSet.FactSet.VerticalStretch.json @@ -0,0 +1,62 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.0", + "body": [ + { + "type": "ColumnSet", + "height": "stretch", + "columns": [ + { + "type": "Column", + "width": 1, + "items": [ + { + "type": "TextBlock", + "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "wrap": true + } + ] + }, + { + "type": "Column", + "width": 1, + "spacing": "large", + "separator": true, + "expected": { + "numberOfViews" : "3" + }, + "items": [ + { + "type": "TextBlock", + "text": "This is a textblock that doesn't stretch, but the input text does", + "spacing": "none", + "wrap": true + }, + { + "type": "FactSet", + "spacing": "none", + "height": "stretch", + "facts": [ + { + "title": "Fact 1", + "value": "Value 1" + }, + { + "title": "Fact 2", + "value": "Value 2" + } + ] + }, + { + "type": "TextBlock", + "spacing": "none", + "text": "One last text block at the bottom", + "wrap": true + } + ] + } + ] + } + ] +} diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/ColumnSet.Image.VerticalStretch.json b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/ColumnSet.Image.VerticalStretch.json new file mode 100644 index 0000000000..d2d5444f40 --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/ColumnSet.Image.VerticalStretch.json @@ -0,0 +1,54 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.0", + "body": [ + { + "type": "ColumnSet", + "height": "stretch", + "columns": [ + { + "type": "Column", + "width": 1, + "items": [ + { + "type": "TextBlock", + "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "wrap": true + } + ] + }, + { + "type": "Column", + "width": 1, + "spacing": "large", + "expected": { + "numberOfViews" : "4" + }, + "separator": true, + "items": [ + { + "type": "TextBlock", + "spacing": "none", + "text": "This is a textblock that doesn't stretch, but the input text does", + "wrap": true + }, + { + "type": "Image", + "spacing": "none", + "url": "https://adaptivecards.io/content/cats/1.png", + "height": "stretch", + "size": "small" + }, + { + "type": "TextBlock", + "spacing": "none", + "text": "One last text block at the bottom", + "wrap": true + } + ] + } + ] + } + ] +} diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/ColumnSet.Input.ChoiceSet.VerticalStretch.json b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/ColumnSet.Input.ChoiceSet.VerticalStretch.json new file mode 100644 index 0000000000..5a11a1eb33 --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/ColumnSet.Input.ChoiceSet.VerticalStretch.json @@ -0,0 +1,89 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.0", + "body": [ + { + "type": "ColumnSet", + "height": "stretch", + "columns": [ + { + "type": "Column", + "width": 1, + "items": [ + { + "type": "TextBlock", + "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "wrap": true + } + ] + }, + { + "type": "Column", + "width": 1, + "spacing": "large", + "separator": true, + "expected": { + "numberOfViews" : "4" + }, + "items": [ + { + "type": "TextBlock", + "text": "This is a textblock that doesn't stretch, but the input text does", + "wrap": true + }, + { + "type": "Input.ChoiceSet", + "id": "input1", + "spacing":"none", + "height": "stretch", + "choices": [ + { + "title": "Red", + "value": "1" + }, + { + "title": "Green", + "value": "2" + }, + { + "title": "Blue", + "value": "3" + } + ] + }, + { + "type": "Input.ChoiceSet", + "id": "myColor2", + "style": "expanded", + "isMultiSelect": false, + "value": "1", + "spacing":"none", + "height": "stretch", + "choices": [ + { + "title": "Red", + "value": "1" + }, + { + "title": "Green", + "value": "2" + }, + { + "title": "Blue", + "value": "3" + } + ] + }, + { + "type": "TextBlock", + "spacing":"none", + "text": "One last text block at the bottom", + "wrap": true + } + ] + } + ] + } + ] +} diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/ColumnSet.VerticalStretch.json b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/ColumnSet.VerticalStretch.json new file mode 100644 index 0000000000..fcdbcf7cd4 --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/ColumnSet.VerticalStretch.json @@ -0,0 +1,42 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.0", + "body": [ + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "width": 1, + "items": [ + { + "type": "TextBlock", + "text": "The left column has a very, very long text which makes it very tall. Because it is tall, the right column is also very tall. The right column contains two TextBlocks; one is displaying at the top of the column, while the other one is displayed at the bottom. That is achieved by setting the first TextBlock's **height** property to **stretch**.", + "wrap": true + } + ] + }, + { + "type": "Column", + "width": 1, + "spacing": "large", + "separator": true, + "items": [ + { + "type": "TextBlock", + "height": "stretch", + "text": "First TextBlock displayed at the top", + "wrap": true + }, + { + "type": "TextBlock", + "text": "Second TextBlock displayed at the bottom", + "wrap": true + } + ] + } + ] + } + ] +} diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/Container.VerticalContentAlignment.json b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/Container.VerticalContentAlignment.json new file mode 100644 index 0000000000..204404b784 --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/Container.VerticalContentAlignment.json @@ -0,0 +1,33 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.1", + "minHeight": "150px", + "body": [ + { + "type": "TextBlock", + "text": "I'm a regular TextBlock..." + }, + { + "type": "Container", + "height": "stretch", + "verticalContentAlignment": "center", + "items": [ + { + "type": "TextBlock", + "text": "But I'm centered..." + } + ] + }, + { + "type": "Container", + "verticalContentAlignment": "bottom", + "items": [ + { + "type": "TextBlock", + "text": "And I'm like a footer!" + } + ] + } + ] +} \ No newline at end of file diff --git a/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/Container.VerticalContentAlignment2.json b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/Container.VerticalContentAlignment2.json new file mode 100644 index 0000000000..a48f222432 --- /dev/null +++ b/source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/TestFiles/Container.VerticalContentAlignment2.json @@ -0,0 +1,42 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.1", + "minHeight": "150px", + "body": [ + { + "type": "TextBlock", + "text": "I'm a regular TextBlock..." + }, + { + "type": "Container", + "height": "stretch", + "spacing": "none", + "verticalContentAlignment": "center", + "expected": { + "numberOfViews" : "3" + }, + "items": [ + { + "type": "TextBlock", + "text": "But I'm centered..." + } + ] + }, + { + "type": "Container", + "height": "stretch", + "spacing": "none", + "verticalContentAlignment": "center", + "expected": { + "numberOfViews" : "3" + }, + "items": [ + { + "type": "TextBlock", + "text": "And I'm like a footer!" + } + ] + } + ] +} diff --git a/source/ios/AdaptiveCards/Podfile b/source/ios/AdaptiveCards/Podfile new file mode 100644 index 0000000000..3d88c4c7f0 --- /dev/null +++ b/source/ios/AdaptiveCards/Podfile @@ -0,0 +1,24 @@ +use_frameworks! +pod 'MicrosoftFluentUI', '~> 0.1.9' +target 'AdaptiveCards' do + project './AdaptiveCards/AdaptiveCards.xcodeproj' + target 'AdaptiveCardsTests' do + inherit! :complete + end +end + +target 'ADCIOSVisualizer' do + project './ADCIOSVisualizer/ADCIOSVisualizer.xcodeproj' + target 'ADCIOSVisualizerUITests' do + end +end + +workspace 'AdaptiveCards' +platform :ios, '13' + +post_install do |installer| + installer.pods_project.build_configurations.each do |config| + config.build_settings['BITCODE_GENERATION_MODE'] = 'bitcode' + config.build_settings['ENABLE_BITCODE'] = 'YES' + end +end diff --git a/source/ios/README.md b/source/ios/README.md index 2d5552726a..ab6e2c9c91 100644 --- a/source/ios/README.md +++ b/source/ios/README.md @@ -170,3 +170,12 @@ For more information on NSAppTransportSecurity plese check here https://develope Add SafariServices.framework for openning web pages project file -> Targets -> Linked Frameworks and Libraries -> add +## Testing + +The iOS Renderer currently supports the following type of testing: + +| Type | Project | Location | +| --- | --- | --- | +| Unit tests | AdaptiveCardsTests | [Location](./AdaptiveCards/AdaptiveCards/AdaptiveCardsTests/) | +| Unit tests | ADCIOSVisualizerTests | [Location](./AdaptiveCards/ADCIOSVisualizer/ADCIOSVisualizerTests) | +| UI tests | ADCIOSVisualizerUITests | [Location](./AdaptiveCards/ADCIOSVisualizer/ADCIOSVisualizerUITests) | diff --git a/source/ios/tools/AdaptiveCards.podspec b/source/ios/tools/AdaptiveCards.podspec index f6dc4525f6..98a5178149 100644 --- a/source/ios/tools/AdaptiveCards.podspec +++ b/source/ios/tools/AdaptiveCards.podspec @@ -1,24 +1,53 @@ - Pod::Spec.new do |spec| spec.name = 'AdaptiveCards' - spec.version = '2.8.0-beta.3' - - spec.license = { :type => 'Adaptive Cards Binary EULA', :file => 'EULA-Non-Windows.txt' } - + spec.version = '2.8.4' + + spec.license = { :type => 'Adaptive Cards Binary EULA', :file => 'source/EULA-Non-Windows.txt' } + spec.homepage = 'https://adaptivecards.io' - + spec.authors = { 'AdaptiveCards' => 'Joseph.Woo@microsoft.com' } - + spec.summary = 'Adaptive Cards are a new way for developers to exchange card content in a common and consistent way' - spec.source = { :http => 'https://adaptivecardsblob.blob.core.windows.net/adaptivecardsiosblobs/AdaptiveCards.framework.zip' } + spec.source = { :git => 'https://github.com/microsoft/AdaptiveCards.git', :tag => 'ios-v2.8.4' } - spec.vendored_frameworks = 'AdaptiveCards.xcframework' + spec.default_subspecs = 'AdaptiveCardsCore', 'AdaptiveCardsPrivate', 'ObjectModel', 'UIProviders' - spec.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } + spec.subspec 'AdaptiveCardsCore' do | sspec | + sspec.source_files = 'source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/*.{h,m,mm}' + sspec.resource_bundles = {'AdaptiveCards' => ['source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/Resources/**/*']} + sspec.dependency 'AdaptiveCards/AdaptiveCardsPrivate' + sspec.dependency 'AdaptiveCards/ObjectModel' + end + + spec.subspec 'ObjectModel' do | sspec | + sspec.source_files = 'source/shared/cpp/ObjectModel/**/*.{h,cpp}' + sspec.header_mappings_dir = 'source/shared/cpp/ObjectModel/' + sspec.private_header_files = 'source/shared/cpp/ObjectModel/**/*.{h}' + sspec.xcconfig = { + 'CLANG_CXX_LANGUAGE_STANDARD' => 'c++17', + 'CLANG_CXX_LIBRARY' => 'libc++' + } + end + + spec.subspec 'AdaptiveCardsPrivate' do | sspec | + sspec.source_files = 'source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/PrivateHeaders/**/*.{h,m,mm}' + sspec.header_mappings_dir = 'source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/PrivateHeaders/' + sspec.private_header_files = 'source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/PrivateHeaders/*.h' + end + + spec.subspec 'UIProviders' do | sspec | + sspec.dependency 'MicrosoftFluentUI/Tooltip_ios', '~> 0.3.6' + sspec.pod_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => 'ADAPTIVECARDS_USE_FLUENT_TOOLTIPS=1' } + end + + spec.platform = :ios, '14' + + spec.frameworks = 'AVFoundation', 'AVKit', 'CoreGraphics', 'QuartzCore', 'UIKit' + + spec.exclude_files = 'source/ios/AdaptiveCards/AdaptiveCards/AdaptiveCards/include/**/*' - spec.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } - - spec.platform = :ios, '11' end + diff --git a/source/nodejs/.eslintignore b/source/nodejs/.eslintignore deleted file mode 100644 index b2f21bdebb..0000000000 --- a/source/nodejs/.eslintignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules/ -src/__tests__/ diff --git a/source/nodejs/.eslintrc.js b/source/nodejs/.eslintrc.js index 02db9947b9..6a3b502cc5 100644 --- a/source/nodejs/.eslintrc.js +++ b/source/nodejs/.eslintrc.js @@ -1,184 +1,89 @@ module.exports = { - "root": true, - "extends": [ + root: true, + extends: [ "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", - "plugin:@typescript-eslint/recommended-requiring-type-checking" + "plugin:@typescript-eslint/recommended-requiring-type-checking", + "prettier" ], - "env": { - "browser": true, - "node": true + env: { + browser: true, + node: true }, - "parser": "@typescript-eslint/parser", - "parserOptions": { - "project": "tsconfig.json", - "sourceType": "module" + parser: "@typescript-eslint/parser", + parserOptions: { + project: ["tsconfig.json"], + tsconfigRootDir: __dirname, + sourceType: "module" }, - "plugins": [ - "@typescript-eslint", - ], - "rules": { - //-------------------------------------------------------------------------------- - // Syntax/naming conventions - - "camelcase": "off", // disable eslint version + plugins: ["@typescript-eslint"], + ignorePatterns: ["node_modules", "__tests__", "__mocks__", "lib", "dist", ".eslintrc.js"], + rules: { "@typescript-eslint/naming-convention": [ "error", - { // let someGlobal : number = 42; - "selector": "default", // - "format": ["camelCase"] // function someFunction(someParameter: number): number { - }, // let someVariable : number = someParameter*someParameter; - { // return someVariable; - "selector": "property", // } - "format": ["camelCase"], // - "leadingUnderscore": "forbid" // class SomeClass { - }, // publicProperty : number; - { // protected _protectedProperty : number; - "selector": "property", // private _privateProperty : number; - "modifiers": ["private"], // publicMemberFunction() : void { /* ... */ } - "format": ["camelCase"], // protected _protectedMemberFunction() : void { /* ... */ } - "leadingUnderscore": "require" // private _privateMemberFunction() : void { /* ... */ } - }, // } - { // - "selector": "property", // enum SomeEnum { - "modifiers": ["protected"], // FirstValue, - "format": ["camelCase"], // SecondValue - "leadingUnderscore": "require" // } - }, { - "selector": "enum", - "format": ["PascalCase"] + selector: "default", + format: ["camelCase"] }, { - "selector": "enumMember", - "format": ["PascalCase"] + selector: "variable", + modifiers: ["exported", "global"], + format: ["PascalCase"] }, { - "selector": "class", - "format": ["PascalCase"] + selector: "parameter", + format: ["camelCase"], + modifiers: ["unused"], + prefix: ["_"] }, { - "selector": "typeLike", - "format": ["PascalCase"] - } - ], - - "quotes": "off", // disable eslint's version - "@typescript-eslint/quotes": [ - "error", - "double", // use double quotes + // a special rule just for the pre-existing (and unchangable) + // `JsonTypeName` property + selector: "property", + format: ["PascalCase"], + modifiers: ["public"], + filter: { + regex: "JsonTypeName", + match: true + } + }, { - "avoidEscape": true // unless using and alternative to avoid escaping (e.g. 'some "text" here') - } - ], - - "semi": "off",// disable eslint's version - "@typescript-eslint/semi": ["error", "always"], // require semicolons - - "@typescript-eslint/type-annotation-spacing": "error", // enforce spacing around `:` in type declarations - - "space-before-function-paren": "off", // disable eslint's version - // enforce no space between function name and opening paren (e.g. `function foo()`, not `function foo ()`) - "@typescript-eslint/space-before-function-paren": ["error", "never"], - - // same as space-before-function-paren, but for function calls - "func-call-spacing": "off", - "@typescript-eslint/func-call-spacing": "error", - - // disallow multiple semicolons (e.g. `let foo = 5;;`) - "no-extra-semi": "off", - "@typescript-eslint/no-extra-semi": "error", - - // disallow empty functions - "no-empty-function": "off", // disable eslint's version - "@typescript-eslint/no-empty-function": "error", - - // enforce 4 spaces as default indent - "indent": "off", // disable eslint's version - "@typescript-eslint/indent": "error", - - // enforce brace placement - "brace-style": "off", // disable eslint's version - "@typescript-eslint/brace-style": [ - "error", "stroustrup", + selector: "property", + format: ["camelCase"], + modifiers: ["public"], + leadingUnderscore: "forbid" + }, { - "allowSingleLine": true - } - ], - - // enforce spacing around commas - "comma-spacing": "off", // disable eslint's version - "@typescript-eslint/comma-spacing": [ - "error", + selector: "property", + modifiers: ["private"], + format: ["camelCase"], + leadingUnderscore: "require" + }, { - "before": false, - "after": true - } - ], - - // enforce consistent delimiters for class/itf members - "@typescript-eslint/member-delimiter-style": [ - "error", + selector: "property", + modifiers: ["protected"], + format: ["camelCase"], + leadingUnderscore: "require" + }, { - "multiline": { - "delimiter": "semi", - "requireLast": true - }, - "singleline": { - "delimiter": "semi", - "requireLast": false - } - } - ], - - // enforce consistent itf naming (require `I` prefix) - "@typescript-eslint/interface-name-prefix": [ - "error", + selector: ["enum", "enumMember", "class", "typeLike"], + format: ["PascalCase"] + }, { - "prefixWithI": "always" + selector: "interface", + format: ["PascalCase"], + prefix: ["I"] } ], - // TODO: need to come up with preferred order - // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/member-ordering.md - // "@typescript-eslint/member-ordering": [ - // "error", - // { - // "default": [ - // 'private-abstract-field', - // 'private-instance-field', - // 'private-static-field', - // 'private-abstract-method', - // 'private-static-method', - // 'private-instance-method', - // 'private-constructor', - // 'protected-abstract-field', - // 'protected-instance-field', - // 'protected-static-field', - // 'protected-abstract-method', - // 'protected-static-method', - // 'protected-instance-method', - // 'protected-constructor', - // 'public-abstract-field', - // 'public-static-field', - // 'public-instance-field', - // 'public-abstract-method', - // 'public-static-method', - // 'public-instance-method', - // 'public-constructor', - // 'signature', - // ] - // } - // ], - - //-------------------------------------------------------------------------------- - + // let prettier handle quotes + "@typescript-eslint/quotes": "off", - //-------------------------------------------------------------------------------- - // Safety/correctness + // disallow empty functions + "@typescript-eslint/no-empty-function": "error", - // prevent errors/warnings on `let someVar: boolean = false;` (rule complains that you shouldn't supply a type - // when it can be inferred) + // prevent errors/warnings on `let someVar: boolean = false;` (rule + // complains that you shouldn't supply a type when it can be inferred) "@typescript-eslint/no-inferrable-types": "off", // currently turned off due to false positives @@ -191,8 +96,8 @@ module.exports = { "@typescript-eslint/no-type-alias": [ "error", { - "allowLiterals": "always", // e.g. `type SmallObject = { name: string; value: string; };` - "allowAliases": "in-unions" // e.g. `type MetaVariable = 'foo' | 'bar' | 'baz';` + allowLiterals: "always", // e.g. `type SmallObject = { name: string; value: string; };` + allowAliases: "in-unions" // e.g. `type MetaVariable = 'foo' | 'bar' | 'baz';` } ], @@ -203,7 +108,12 @@ module.exports = { "@typescript-eslint/no-require-imports": "error", // disallow implicit class property declaration via constructor - "@typescript-eslint/no-parameter-properties": "error", + "@typescript-eslint/no-parameter-properties": [ + "error", + { + allows: ["readonly"] + } + ], // disallow `foo?.bar!` "@typescript-eslint/no-non-null-asserted-optional-chain": "error", @@ -215,7 +125,7 @@ module.exports = { "@typescript-eslint/no-floating-promises": [ "error", { - "ignoreVoid": true // allow disabling this check using the `void` keyword + ignoreVoid: true // allow disabling this check using the `void` keyword } ], @@ -225,7 +135,18 @@ module.exports = { // disallow unnecessary null checks "@typescript-eslint/no-extra-non-null-assertion": "error", - // disallow `toString()` calls that would invoke `Object.toString()` (prevents `[Object object]`) + // allow the non-null assertion operator, as it is sometimes needed (see e.g. `MediaSource.render()`) + "@typescript-eslint/no-non-null-assertion": "off", + + "@typescript-eslint/no-unnecessary-type-assertion": [ + "error", + { + "typesToIgnore": [ 'string?' ] + } + ], + + // disallow `toString()` calls that would invoke `Object.toString()` + // (prevents `[Object object]`) "@typescript-eslint/no-base-to-string": "error", // ban comments that disable typescript checks @@ -241,24 +162,26 @@ module.exports = { // TODO: revisit -- we currently don't mark functions as `void` when we probably should // require functions to declare return type "@typescript-eslint/explicit-function-return-type": "off", - // "@typescript-eslint/explicit-module-boundary-types": "error", // TODO: enable at some point - // "@typescript-eslint/restrict-plus-operands": [ - // "error", - // { - // "checkCompoundAssignments": true - // } - // ], - - // when using Array.sort, require caller to supply a comparison function (otherwise, likely get incorrect sort ordering) + "@typescript-eslint/restrict-plus-operands": "off", + "@typescript-eslint/restrict-template-expressions": "off", + "@typescript-eslint/no-unsafe-call": "off", + // "@typescript-eslint/prefer-optional-chain": "error", + // "@typescript-eslint/prefer-readonly": "error", + // "@typescript-eslint/prefer-readonly-parameter-types": "error", + + // when using Array.sort, require caller to supply a comparison function + // (otherwise, likely get incorrect sort ordering) "@typescript-eslint/require-array-sort-compare": "error", // require promise-returning functions to be marked `async` "@typescript-eslint/promise-function-async": "error", - // when iterating over an array in a for loop, prefer `for (item of array) {}` to traditional loop if index is - // only used to access array members. this can prevent correctness issues and yields cleaner-reading code. + // when iterating over an array in a for loop, prefer `for (item of + // array) {}` to traditional loop if index is only used to access array + // members. this can prevent correctness issues and yields + // cleaner-reading code. "@typescript-eslint/prefer-for-of": "error", // prefer the "nullish coalescing operator" to "logical or" assignments due to potential gotchas in the "logical or" case @@ -272,23 +195,18 @@ module.exports = { // function foo(param: number) { /**/ }; // ^-- missed opportunity to share code // - // function foo param: string | number) { /**/ }; <-- nice + // function foo (param: string | number) { /**/ }; <-- nice "@typescript-eslint/unified-signatures": "error", // when using switch on an enum value, ensure that every member of the enum has a case statement only warn because // we have places where we're safely being non-exhaustive. "@typescript-eslint/switch-exhaustiveness-check": "warn", - // TODO: reenable -- currently the fixers for these create some questionable code - // "@typescript-eslint/prefer-optional-chain": "error", - // "@typescript-eslint/prefer-readonly": "error", - // "@typescript-eslint/prefer-readonly-parameter-types": "error", - - // TODO: investigate these (revisit use of any) - // "@typescript-eslint/no-unsafe-call": "error", - // "@typescript-eslint/no-unsafe-member-access": "error", - // "@typescript-eslint/no-unsafe-return": "error", + "@typescript-eslint/no-unsafe-member-access": "off", "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-unsafe-argument": "off", + "@typescript-eslint/no-unsafe-assignment": "off", + "@typescript-eslint/no-unsafe-return": "off", // prevent class members with duplicate names "no-dupe-class-members": "off", @@ -309,52 +227,36 @@ module.exports = { // disallow expressions that have no effect (as they may indicate a typo or mistake) e.g. // let a = 5; // a + 2; <-- this does nothing - "no-unused-expressions": "off", "@typescript-eslint/no-unused-expressions": "error", + // turn off no-unused-vars -- there doesn't appear to be a way to + // configure it to ignore unread parameters on methods that get + // overridden elsewhere + "@typescript-eslint/no-unused-vars": "off", + // require parameters with defaults to be placed at the end of a function signature "@typescript-eslint/default-param-last": "error", - // don't allow dangling commas in declarations e.g. - // let a = [ 0, - // 1, - // ]; ^--- unnecessary comma - "comma-dangle": ["error", "never"], - // require curly braces - "curly": "error", - - // prefer the use of dot notation to access properties. e.g. - // class Foo { public Bar: number; /*...*/ } - // let foo: Foo = /*...*/; - // foo.Bar = 7; <-- nice - // foo["Bar"] = 7; <-- legal but weird - "dot-notation": "error", + curly: "error", - // require files to end in a single EOL - "eol-last": "error", + // don't require using `.` to access properties (e.g. `foo.property`). + // `.` can only be used to access properties with a "valid identifier", + // which precludes certain names (e.g. `123`). we don't want to preclude + // names since we need to be able to roundtrip arbitrary JSON. + "dot-notation": "off", // require use of === (as well as >==, etc.) - "eqeqeq": [ - "error", - "smart" - ], + eqeqeq: ["error", "smart"], - // best explained in the docs: https://github.com/eslint/eslint/blob/master/docs/rules/guard-for-in.md + // best explained in the docs: + // https://github.com/eslint/eslint/blob/master/docs/rules/guard-for-in.md "guard-for-in": "error", // don't ban variable names "id-blacklist": "off", "id-match": "off", - // enforce line length - "max-len": [ - "error", - { - "code": 140 - } - ], - // don't allow bitwise operators (reenable explicitly as needed) "no-bitwise": "error", @@ -363,14 +265,7 @@ module.exports = { // disallow use of console logging (except for console.warn, which we use to warn site owners about lack of // markdown processing) - "no-console": [ - "error", - { - "allow": [ - "warn" - ] - } - ], + "no-console": "error", // disallow invoking the debugger in code "no-debugger": "error", @@ -389,15 +284,8 @@ module.exports = { // disallow shadow declarations of variables (e.g. let a = 2; let a = 5;) "no-redeclare": "error", // same scope - "no-shadow": [ // differing scopes - "error", - { - "hoist": "all" - } - ], - - // disallow trailing spaces - "no-trailing-spaces": "error", + "no-shadow": "off", + "@typescript-eslint/no-shadow": "error", // disallow underscores at the end of names "no-underscore-dangle": "off", @@ -406,41 +294,6 @@ module.exports = { "no-unused-labels": "error", // disallow use of `var` - "no-var": "error", - - // require space around keywords - "keyword-spacing": [ - "error", - { - "before": true, - "after": true - } - ], - - // require empty lines - "padding-line-between-statements": [ - "error", - // before block - { - "blankLine": "always", - "prev": "*", - "next": "multiline-block-like" - }, - // after block - { - "blankLine": "always", - "prev": "multiline-block-like", - "next": "*" - }, - // before return - { - "blankLine": "always", - "prev": "*", - "next": "return" - } - ], - - // disallow top/bottom empty lines within blocks - "padded-blocks": ["error", "never"] + "no-var": "error" } }; diff --git a/source/nodejs/.husky/pre-commit b/source/nodejs/.husky/pre-commit new file mode 100755 index 0000000000..c497cf3112 --- /dev/null +++ b/source/nodejs/.husky/pre-commit @@ -0,0 +1,12 @@ +#!/bin/sh +HUSKY_SH="$(dirname "$0")/_/husky.sh" +if [ -f $HUSKY_SH ]; then + . $HUSKY_SH + cd source/nodejs + NODEJS_FILES_CHANGED=`git status . --short | wc -l` + # npx lint-staged is disabled because of https://github.com/microsoft/AdaptiveCards/issues/6895 + #if [ $NODEJS_FILES_CHANGED != "0" ]; then + # npx lint-staged + #fi +fi + diff --git a/source/nodejs/.lintstagedrc.mjs b/source/nodejs/.lintstagedrc.mjs new file mode 100644 index 0000000000..5fa7925695 --- /dev/null +++ b/source/nodejs/.lintstagedrc.mjs @@ -0,0 +1,24 @@ +import { ESLint } from "eslint"; +import micromatch from "micromatch"; + +// As suggested here: https://github.com/okonet/lint-staged#eslint--7-1 +const removeIgnoredFiles = async (files) => { + const eslint = new ESLint(); + const isIgnored = await Promise.all( + files.map((file) => { + return eslint.isPathIgnored(file); + }) + ); + const filteredFiles = files.filter((_, i) => !isIgnored[i]); + return filteredFiles.join(" "); +}; + +export default { + "**/!(package-lock)*": async (files) => { + const filesToLint = await removeIgnoredFiles(micromatch(files, ["**/!(__)*.{ts,tsx,js,jsx}"])); + return [ + `eslint --fix --max-warnings=0 ${filesToLint}`, + `prettier --write --ignore-unknown ${files.join(" ")}` + ]; + } +}; diff --git a/source/nodejs/.prettierrc.json b/source/nodejs/.prettierrc.json new file mode 100644 index 0000000000..650e4d388c --- /dev/null +++ b/source/nodejs/.prettierrc.json @@ -0,0 +1,5 @@ +{ + "printWidth": 100, + "trailingComma": "none", + "quoteProps": "preserve" +} diff --git a/source/nodejs/README.md b/source/nodejs/README.md index 0fae11f4be..e10776cbf7 100644 --- a/source/nodejs/README.md +++ b/source/nodejs/README.md @@ -4,14 +4,15 @@ This directory contains all the JS packages for adaptive cards: * `adaptivecards` - The renderer library * `adaptivecards-controls` - A controls library useful for the designer -* `adaptivecards-fabric` - A set of Fabric UI extensions for the Adaptive Cards JS renderer * `adaptivecards-templating` - A JSON-to-JSON templating and data binding library for use with Adaptive Cards * `adaptivecards-designer` - The drag-drop designer component * `adaptivecards-designer-app` - The designer app that consumes the designer component * `adaptivecards-site` - The generated website that is currently hosted at adaptivecards.io -* `adaptivecards-visualizer` - The classic card Visualizer * `adaptivecards-react` - React.js library +Removed JS packages: +* `adaptivecards-fabric` - A set of Fabric UI extensions for the Adaptive Cards JS renderer. This package has been deprecated. Please migrate to [`adaptivecards-fluentui`](https://www.npmjs.com/package/adaptivecards-fluentui). The source code is available in [21.09](https://github.com/microsoft/AdaptiveCards/releases/tag/21.09) or before releases. + ## Bootstrap the repo We use lerna to manage package linking and building. @@ -40,3 +41,37 @@ We use lerna to manage package linking and building. ## Adding a new package 1. `npx lerna add --scope=` + +## Testing + +The JS Renderer currently supports the following type of testing: + +| Type | Project | Location | +| --- | --- | --- | +| Unit tests | adaptivecards/\_\_tests\_\_ | [Location](./adaptivecards/src/__tests__/) +| Unit tests | unit-tests | [Location](./tests/unit-tests) | +| UI tests | ui-tests | [Location](./tests/ui-tests) | + +### To run adaptivecards/\_\_tests\_\_ +1. `cd adaptivecards` +2. Build the project: `npm run build` +3. `npm test` + +### To run unit-tests: +1. `cd tests/unit-tests` +2. `npm run build-and-test` + +### To run ui tests +Pre-requisite 1: adaptivecards-ui-testapp must be executing + +0.1 `cd adaptivecards-ui-testapp` + +0.2 `npm run build` + +0.3 `npm run start` + +Pre-requisite 2: Web drivers must be installed, if working with edge it can be downloaded from [here](https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/) + +1. `cd tests/ui-tests` +2. `npm run build` +3. `npm run test` \ No newline at end of file diff --git a/source/nodejs/ac-typed-schema/package-lock.json b/source/nodejs/ac-typed-schema/package-lock.json index 79987ffc10..aac2f7f904 100644 --- a/source/nodejs/ac-typed-schema/package-lock.json +++ b/source/nodejs/ac-typed-schema/package-lock.json @@ -1,233 +1,1460 @@ { "name": "ac-typed-schema", - "version": "0.6.1", - "lockfileVersion": 1, + "version": "0.7.0-alpha.0", + "lockfileVersion": 2, "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "packages": { + "": { + "name": "ac-typed-schema", + "version": "0.7.0-alpha.0", + "license": "MIT", + "devDependencies": { + "@types/i18n": "^0.13.0", + "@types/node": "^10.17.60", + "glob": "^7.1.6", + "i18n": "^0.13.2", + "markdown-table": "^1.1.3", + "mocha": "^6.2.3", + "p-iteration": "^1.1.8" + } + }, + "node_modules/@types/i18n": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@types/i18n/-/i18n-0.13.1.tgz", + "integrity": "sha512-d4rFry2ZDUsypkxQmsbI1KIIAKwBYG4yfQTigqk9ultSHqj5PyhDlDoEDBnW+5wCsqSQ7iMLK/5WyEaaXNdWrA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", + "dev": true + }, + "node_modules/ansi-colors": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract/node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/flat": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", + "dev": true, + "dependencies": { + "is-buffer": "~2.0.3" + }, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/i18n": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.13.3.tgz", + "integrity": "sha512-QDmY2joBdKxj3wvk2LKyvZkjwGHta882kYHwEvx1WbwiPAet49kEU7cxzGfnrtWrfh4+7I07kBc0ZSjSlhnKyQ==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "make-plural": "^6.2.2", + "math-interval-parser": "^2.0.1", + "messageformat": "^2.3.0", + "mustache": "^4.0.1", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mashpie" + } + }, + "node_modules/i18n/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/make-plural": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz", + "integrity": "sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==", + "dev": true + }, + "node_modules/markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", + "dev": true + }, + "node_modules/math-interval-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz", + "integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/messageformat": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/messageformat/-/messageformat-2.3.0.tgz", + "integrity": "sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w==", + "deprecated": "Package renamed as '@messageformat/core', see messageformat.github.io for more details. 'messageformat' will eventually provide a polyfill for Intl.MessageFormat, once it's been defined by Unicode & ECMA.", + "dev": true, + "dependencies": { + "make-plural": "^4.3.0", + "messageformat-formatters": "^2.0.1", + "messageformat-parser": "^4.1.2" + } + }, + "node_modules/messageformat-formatters": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz", + "integrity": "sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg==", + "dev": true + }, + "node_modules/messageformat-parser": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/messageformat-parser/-/messageformat-parser-4.1.3.tgz", + "integrity": "sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg==", + "dev": true + }, + "node_modules/messageformat/node_modules/make-plural": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-4.3.0.tgz", + "integrity": "sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA==", + "dev": true, + "bin": { + "make-plural": "bin/make-plural" + }, + "optionalDependencies": { + "minimist": "^1.2.0" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", + "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.3.tgz", + "integrity": "sha512-0R/3FvjIGH3eEuG17ccFPk117XL2rWxatr81a57D+r/x2uTYZRbdZ4oVidEUMh2W2TJDa7MdAb12Lm2/qrKajg==", + "dev": true, + "dependencies": { + "ansi-colors": "3.2.3", + "browser-stdout": "1.3.1", + "debug": "3.2.6", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "find-up": "3.0.0", + "glob": "7.1.3", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "3.13.1", + "log-symbols": "2.2.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.4", + "ms": "2.1.1", + "node-environment-flags": "1.0.5", + "object.assign": "4.1.0", + "strip-json-comments": "2.0.1", + "supports-color": "6.0.0", + "which": "1.3.1", + "wide-align": "1.1.3", + "yargs": "13.3.2", + "yargs-parser": "13.1.2", + "yargs-unparser": "1.6.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "dev": true, + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/node-environment-flags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", + "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", + "dev": true, + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node_modules/object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", + "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-iteration": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/p-iteration/-/p-iteration-1.1.8.tgz", + "integrity": "sha512-IMFBSDIYcPNnW7uWYGrBqmvTiq7W0uB0fJn6shQZs7dlF3OvrHOre+JT9ikSZ7gZS3vWqclVgoQSvToJrns7uQ==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } + "string-width": "^1.0.2 || 2" } }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true + "node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", - "dev": true + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "@types/i18n": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/@types/i18n/-/i18n-0.13.1.tgz", - "integrity": "sha512-d4rFry2ZDUsypkxQmsbI1KIIAKwBYG4yfQTigqk9ultSHqj5PyhDlDoEDBnW+5wCsqSQ7iMLK/5WyEaaXNdWrA==", + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "@types/json-schema": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", - "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==", + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, - "@typescript-eslint/eslint-plugin": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.6.1.tgz", - "integrity": "sha512-06lfjo76naNeOMDl+mWG9Fh/a0UHKLGhin+mGaIw72FUMbMGBkdi/FEJmgEDzh4eE73KIYzHWvOCYJ0ak7nrJQ==", + "node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "3.6.1", - "debug": "^4.1.1", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" } }, - "@typescript-eslint/eslint-plugin-tslint": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-3.10.1.tgz", - "integrity": "sha512-DD2sr8Qkoi0TUYlbxLGMivTvMz3i5s8qt7n3/ptWSO3fSQlnf43OeM6tQCujC1MWEKoOwDnyCuMehWwNm3Xi0w==", + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "3.10.1", - "lodash": "^4.17.15" - }, "dependencies": { - "@typescript-eslint/experimental-utils": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz", - "integrity": "sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/typescript-estree": "3.10.1", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/types": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz", - "integrity": "sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz", - "integrity": "sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==", - "dev": true, - "requires": { - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/visitor-keys": "3.10.1", - "debug": "^4.1.1", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz", - "integrity": "sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - } + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, - "@typescript-eslint/experimental-utils": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.6.1.tgz", - "integrity": "sha512-oS+hihzQE5M84ewXrTlVx7eTgc52eu+sVmG7ayLfOhyZmJ8Unvf3osyFQNADHP26yoThFfbxcibbO0d2FjnYhg==", + "node_modules/yargs-unparser": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", + "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/types": "3.6.1", - "@typescript-eslint/typescript-estree": "3.6.1", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" + "dependencies": { + "flat": "^4.1.0", + "lodash": "^4.17.15", + "yargs": "^13.3.0" + }, + "engines": { + "node": ">=6" } }, - "@typescript-eslint/parser": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.6.1.tgz", - "integrity": "sha512-SLihQU8RMe77YJ/jGTqOt0lMq7k3hlPVfp7v/cxMnXA9T0bQYoMDfTsNgHXpwSJM1Iq2aAJ8WqekxUwGv5F67Q==", + "node_modules/yargs/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true, - "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "3.6.1", - "@typescript-eslint/types": "3.6.1", - "@typescript-eslint/typescript-estree": "3.6.1", - "eslint-visitor-keys": "^1.1.0" + "engines": { + "node": ">=6" } }, - "@typescript-eslint/types": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.6.1.tgz", - "integrity": "sha512-NPxd5yXG63gx57WDTW1rp0cF3XlNuuFFB5G+Kc48zZ+51ZnQn9yjDEsjTPQ+aWM+V+Z0I4kuTFKjKvgcT1F7xQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.6.1.tgz", - "integrity": "sha512-G4XRe/ZbCZkL1fy09DPN3U0mR6SayIv1zSeBNquRFRk7CnVLgkC2ZPj8llEMJg5Y8dJ3T76SvTGtceytniaztQ==", + "node_modules/yargs/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, - "requires": { - "@typescript-eslint/types": "3.6.1", - "@typescript-eslint/visitor-keys": "3.6.1", - "debug": "^4.1.1", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" } }, - "@typescript-eslint/visitor-keys": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.6.1.tgz", - "integrity": "sha512-qC8Olwz5ZyMTZrh4Wl3K4U6tfms0R/mzU4/5W3XeUZptVraGVmbptJbn6h2Ey6Rb3hOs3zWoAUebZk8t47KGiQ==", + "node_modules/yargs/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" } - }, - "acorn": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", - "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", + } + }, + "dependencies": { + "@types/i18n": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@types/i18n/-/i18n-0.13.1.tgz", + "integrity": "sha512-d4rFry2ZDUsypkxQmsbI1KIIAKwBYG4yfQTigqk9ultSHqj5PyhDlDoEDBnW+5wCsqSQ7iMLK/5WyEaaXNdWrA==", "dev": true }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==", "dev": true }, - "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", "dev": true }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "ansi-styles": { @@ -248,16 +1475,10 @@ "sprintf-js": "~1.0.2" } }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, "brace-expansion": { @@ -286,12 +1507,6 @@ "get-intrinsic": "^1.0.2" } }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -299,53 +1514,23 @@ "dev": true }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" } } } @@ -367,6 +1552,17 @@ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", @@ -399,24 +1595,13 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "decamelize": { @@ -425,12 +1610,6 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -446,57 +1625,32 @@ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dts-generator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dts-generator/-/dts-generator-3.0.0.tgz", - "integrity": "sha512-IrFP0TUGnBOxr8Lth0hLh/iM9odZTRGYyr4Y46IRxyw1SGO1Vvf30+x4npck9yP4FbaRXbB0Zh7gvmiqUta7mg==", - "dev": true, - "requires": { - "glob": "^7.1.3", - "mkdirp": "^0.5.1" - } - }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, "es-abstract": { - "version": "1.18.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", - "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", - "is-callable": "^1.2.3", + "is-callable": "^1.2.4", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", "object-inspect": "^1.11.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", @@ -536,157 +1690,12 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, - "eslint": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.4.0.tgz", - "integrity": "sha512-gU+lxhlPHu45H3JkEGgYhWhkR9wLHHEXC9FbWFnTlEkbKyZKWgWRLgf61E8zWmBuI6g5xKBph9ltg3NtZMVF8g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "eslint-scope": "^5.1.0", - "eslint-utils": "^2.0.0", - "eslint-visitor-keys": "^1.2.0", - "espree": "^7.1.0", - "esquery": "^1.2.0", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - } - }, - "eslint-scope": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", - "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "espree": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.1.0.tgz", - "integrity": "sha512-dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw==", - "dev": true, - "requires": { - "acorn": "^7.2.0", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.2.0" - } - }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, - "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", - "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", @@ -700,39 +1709,11 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", - "dev": true, - "requires": { - "is-buffer": "~2.0.3" - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "dev": true, + "requires": { + "is-buffer": "~2.0.3" } }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -745,12 +1726,6 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -768,10 +1743,20 @@ "has-symbols": "^1.0.1" } }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -782,24 +1767,6 @@ "path-is-absolute": "^1.0.0" } }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", @@ -870,28 +1837,6 @@ } } }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -920,10 +1865,13 @@ } }, "is-bigint": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.3.tgz", - "integrity": "sha512-ZU538ajmYJmzysE5yU4Y7uIrPQ2j704u+hXFiIPQExpqzzUbpe5jCPdTfmz7jXRxZdvjY3KZ3ZNenoXQovX+Dg==", - "dev": true + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } }, "is-boolean-object": { "version": "1.1.2", @@ -956,27 +1904,12 @@ "has-tostringtag": "^1.0.0" } }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, "is-negative-zero": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", @@ -1002,6 +1935,12 @@ "has-tostringtag": "^1.0.0" } }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true + }, "is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -1020,50 +1959,21 @@ "has-symbols": "^1.0.2" } }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "call-bind": "^1.0.0" } }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -1087,19 +1997,6 @@ "dev": true, "requires": { "chalk": "^2.0.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } } }, "make-plural": { @@ -1170,9 +2067,9 @@ "dev": true }, "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", + "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -1209,12 +2106,6 @@ "yargs-unparser": "1.6.0" }, "dependencies": { - "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true - }, "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", @@ -1248,44 +2139,11 @@ "esprima": "^4.0.0" } }, - "mkdirp": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", - "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } } } }, @@ -1301,12 +2159,6 @@ "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", "dev": true }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, "node-environment-flags": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", @@ -1315,14 +2167,6 @@ "requires": { "object.getownpropertydescriptors": "^2.0.3", "semver": "^5.7.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } } }, "object-inspect": { @@ -1350,14 +2194,14 @@ } }, "object.getownpropertydescriptors": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", - "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", + "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" + "es-abstract": "^1.19.1" } }, "once": { @@ -1369,20 +2213,6 @@ "wrappy": "1" } }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, "p-iteration": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/p-iteration/-/p-iteration-1.1.8.tgz", @@ -1413,15 +2243,6 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -1434,36 +2255,6 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -1476,25 +2267,10 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "set-blocking": { @@ -1503,21 +2279,6 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -1529,17 +2290,6 @@ "object-inspect": "^1.9.0" } }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -1547,31 +2297,13 @@ "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "strip-ansi": "^4.0.0" } }, "string.prototype.trimend": { @@ -1595,83 +2327,29 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^3.0.0" } }, "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", + "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, "requires": { "has-flag": "^3.0.0" } }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true - }, - "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "typescript": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", - "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", - "dev": true - }, "unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", @@ -1684,25 +2362,10 @@ "which-boxed-primitive": "^1.0.2" } }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", - "dev": true - }, "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -1734,41 +2397,8 @@ "dev": true, "requires": { "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } } }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", @@ -1786,6 +2416,17 @@ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", @@ -1803,15 +2444,6 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, "y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", @@ -1834,6 +2466,34 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^13.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "yargs-parser": { diff --git a/source/nodejs/ac-typed-schema/package.json b/source/nodejs/ac-typed-schema/package.json index 570912f791..d9860cffc4 100644 --- a/source/nodejs/ac-typed-schema/package.json +++ b/source/nodejs/ac-typed-schema/package.json @@ -1,6 +1,6 @@ { "name": "ac-typed-schema", - "version": "0.6.1", + "version": "0.7.0-alpha.0", "private": true, "description": "Generates the element/property tables for our specs based on the schema file.", "author": "AdaptiveCards", @@ -24,18 +24,11 @@ }, "devDependencies": { "@types/i18n": "^0.13.0", - "@typescript-eslint/eslint-plugin": "^3.4.0", - "@typescript-eslint/eslint-plugin-tslint": "^3.4.0", - "@typescript-eslint/parser": "^3.4.0", - "dts-generator": "^3.0.0", - "eslint": "^7.3.1", + "@types/node": "^10.17.60", "glob": "^7.1.6", "i18n": "^0.13.2", - "js-yaml": "^3.13.1", "markdown-table": "^1.1.3", "mocha": "^6.2.3", - "p-iteration": "^1.1.8", - "rimraf": "^3.0.2", - "typescript": "^4.2.3" + "p-iteration": "^1.1.8" } } diff --git a/source/nodejs/ac-typed-schema/schema/src/Class.json b/source/nodejs/ac-typed-schema/schema/src/Class.json index 0d76b8bfc3..eab0aedf6d 100644 --- a/source/nodejs/ac-typed-schema/schema/src/Class.json +++ b/source/nodejs/ac-typed-schema/schema/src/Class.json @@ -23,13 +23,13 @@ "type": "string", "description": "Class that this class extends from" }, - "shorthand": { - "type": "string", - "description": "Name of one of the properties that represents a shorthand version of this class" - }, + "shorthand": { + "type": "string", + "description": "Name of one of the properties that represents a shorthand version of this class" + }, "$schema": { "type": "uri", "description": "JSON schema for the JSON file" } } -} \ No newline at end of file +} diff --git a/source/nodejs/ac-typed-schema/schema/src/Enum.json b/source/nodejs/ac-typed-schema/schema/src/Enum.json index a8a0d8754c..90ffc7e700 100644 --- a/source/nodejs/ac-typed-schema/schema/src/Enum.json +++ b/source/nodejs/ac-typed-schema/schema/src/Enum.json @@ -17,4 +17,4 @@ "description": "JSON schema for the JSON file" } } -} \ No newline at end of file +} diff --git a/source/nodejs/ac-typed-schema/schema/src/EnumValue.json b/source/nodejs/ac-typed-schema/schema/src/EnumValue.json index 804c4b401f..f5f02c2179 100644 --- a/source/nodejs/ac-typed-schema/schema/src/EnumValue.json +++ b/source/nodejs/ac-typed-schema/schema/src/EnumValue.json @@ -5,7 +5,7 @@ "value": { "type": "string", "description": "The name of the enum value", - "required": true + "required": true }, "description": { "type": "string", @@ -13,4 +13,4 @@ } }, "shorthand": "value" -} \ No newline at end of file +} diff --git a/source/nodejs/ac-typed-schema/schema/src/Property.json b/source/nodejs/ac-typed-schema/schema/src/Property.json index 3a385b64ca..184e278ce4 100644 --- a/source/nodejs/ac-typed-schema/schema/src/Property.json +++ b/source/nodejs/ac-typed-schema/schema/src/Property.json @@ -26,10 +26,10 @@ "examples": { "type": "any[]", "description": "Examples of this value" - }, - "override": { - "type": "boolean", - "description": "Set this to true if you're overriding a property from an extended class. This will prevent a warning from being emitted." - } + }, + "override": { + "type": "boolean", + "description": "Set this to true if you're overriding a property from an extended class. This will prevent a warning from being emitted." + } } -} \ No newline at end of file +} diff --git a/source/nodejs/ac-typed-schema/src/SchemaClass.ts b/source/nodejs/ac-typed-schema/src/SchemaClass.ts index 69b2919526..fc63852e92 100644 --- a/source/nodejs/ac-typed-schema/src/SchemaClass.ts +++ b/source/nodejs/ac-typed-schema/src/SchemaClass.ts @@ -14,7 +14,7 @@ export class SchemaClass extends SchemaType { super(sourceObj); if (sourceObj.properties) { - for (var key in sourceObj.properties) { + for (let key in sourceObj.properties) { this._properties.set(key, new SchemaProperty(key, sourceObj.properties[key])); } } diff --git a/source/nodejs/ac-typed-schema/src/SchemaEnumValue.ts b/source/nodejs/ac-typed-schema/src/SchemaEnumValue.ts index 132548a0d3..953461de62 100644 --- a/source/nodejs/ac-typed-schema/src/SchemaEnumValue.ts +++ b/source/nodejs/ac-typed-schema/src/SchemaEnumValue.ts @@ -3,6 +3,7 @@ export class SchemaEnumValue { private _original: any; private _value: string; + private _version?: string; private _description?: string; constructor(sourceObj: any) { @@ -16,6 +17,7 @@ export class SchemaEnumValue { } this._value = sourceObj.value; this._description = sourceObj.description; + this._version = sourceObj.version; } } @@ -27,7 +29,11 @@ export class SchemaEnumValue { return this._description; } + get version() { + return this._version; + } + get original() { return this._original; } -} \ No newline at end of file +} diff --git a/source/nodejs/ac-typed-schema/src/markdown/build-model.ts b/source/nodejs/ac-typed-schema/src/markdown/build-model.ts index 30c35b5ffd..0f3e88ff8c 100644 --- a/source/nodejs/ac-typed-schema/src/markdown/build-model.ts +++ b/source/nodejs/ac-typed-schema/src/markdown/build-model.ts @@ -22,12 +22,12 @@ export class BuildModelOptions { export function buildModel(options: BuildModelOptions) { var schemaFolder = options.schema; - var toc = yaml.safeLoad(fs.readFileSync(options.toc)); + var toc = yaml.load(fs.readFileSync(options.toc)); var items = []; var schema: Schema = Schema.fromFolder(schemaFolder); - for (var index in toc) { + for (let index in toc) { var rootObj = toc[index]; var root = { @@ -36,7 +36,7 @@ export function buildModel(options: BuildModelOptions) { schema: schema }; - for (var definitionIndex in rootObj[root.title]) { + for (let definitionIndex in rootObj[root.title]) { var name = rootObj[root.title][definitionIndex]; var objSchema = schema.getType(name); @@ -86,6 +86,6 @@ export function buildModel(options: BuildModelOptions) { } function getObjectName(obj) { - for (var property in obj) + for (let property in obj) return property; } diff --git a/source/nodejs/ac-typed-schema/src/markdown/generate-markdown.ts b/source/nodejs/ac-typed-schema/src/markdown/generate-markdown.ts index 5913e3c8af..716ce8c51a 100644 --- a/source/nodejs/ac-typed-schema/src/markdown/generate-markdown.ts +++ b/source/nodejs/ac-typed-schema/src/markdown/generate-markdown.ts @@ -13,6 +13,10 @@ import * as console from "console"; import * as mdTable from "markdown-table"; import * as style from "./style"; +const getPreviewMarkDown = (version: string) => { + return `` +} + class MarkdownConfig { private _locale : string = "en"; private _i18n : I18n; @@ -29,7 +33,7 @@ class MarkdownConfig { get i18n() { return this._i18n; } - + get locale() { return this._locale; } @@ -94,7 +98,7 @@ export function createPropertiesSummary(classDefinition: SchemaClass, knownTypes var summary = getPropertySummary(property, knownTypes, autoLink, elementVersion); var formattedProperty: any = { - Property: style.propertyNameSummary(name), + Property: style.propertyNameSummary(name) + getPreviewMarkDown(summary.version), Type: summary.formattedType, Required: summary.required, Description: __(summary.description) @@ -160,14 +164,14 @@ function createTable(formattedProperties: any[]) { */ var tableData = []; var headerRow = []; - for (var propName in formattedProperties[0]) { + for (let propName in formattedProperties[0]) { headerRow.push(__(propName)); } tableData.push(headerRow); formattedProperties.forEach((formattedProperty) => { var dataRow = []; - for (var propName in formattedProperty) { + for (let propName in formattedProperty) { dataRow.push(formattedProperty[propName]); } tableData.push(dataRow); @@ -222,14 +226,14 @@ export function createEnumSummary(enumType: SchemaEnum) { */ var tableData = []; var headerRow = []; - for (var propName in rows[0]) { + for (let propName in rows[0]) { headerRow.push(propName); } tableData.push(headerRow); rows.forEach((row) => { var dataRow = []; - for (var propName in row) { + for (let propName in row) { dataRow.push(row[propName]); } tableData.push(dataRow); @@ -307,12 +311,14 @@ export function createPropertiesDetails(classDefinition: SchemaClass, headerLeve return md + '\n'; } -export function createPropertyDetails(property: SchemaProperty, headerLevel: number, knownTypes, autoLink, includeVersion: boolean, elementVersion: string) { +export function createPropertyDetails(property: SchemaProperty, headerLevel: number, knownTypes, autoLink, includeVersion: boolean, elementVersion: string, includeHeader: boolean = true) { var md = ''; var summary = getPropertySummary(property, knownTypes, autoLink, elementVersion); - md += style.getHeaderMarkdown(property.name, headerLevel); // Includes ending newlines + if (includeHeader) { + md += style.getHeaderMarkdown(property.name, headerLevel); // Includes ending newlines + } // TODO: Add plugin point for custom JSON schema properties like gltf_* var detailedDescription = property.description; @@ -347,6 +353,10 @@ export function createPropertyDetails(property: SchemaProperty, headerLevel: num return md + '\n'; } +export function createPropertyDetailsHeader(property: SchemaProperty, headerLevel: number) { + return style.getHeaderMarkdown(property.name, headerLevel); +} + export function propertyHasComplexTypes(property: SchemaProperty) { var answer = false; diff --git a/source/nodejs/ac-typed-schema/src/markdown/languages/de.json b/source/nodejs/ac-typed-schema/src/markdown/languages/de.json index 0936ace0b2..f1810d0cb1 100644 --- a/source/nodejs/ac-typed-schema/src/markdown/languages/de.json +++ b/source/nodejs/ac-typed-schema/src/markdown/languages/de.json @@ -13,6 +13,7 @@ "The FactSet element displays a series of facts (i.e. name/value pairs) in a tabular form.": "The FactSet element displays a series of facts (i.e. name/value pairs) in a tabular form.", "Describes a Fact in a FactSet as a key/value pair.": "Describes a Fact in a FactSet as a key/value pair.", "The ImageSet displays a collection of Images similar to a gallery. Acceptable formats are PNG, JPEG, and GIF": "The ImageSet displays a collection of Images similar to a gallery. Acceptable formats are PNG, JPEG, and GIF", + "Provides a way to display data in a tabular form.": "Provides a way to display data in a tabular form.", "When invoked, show the given url either by launching it in an external web browser or showing within an embedded web browser.": "When invoked, show the given url either by launching it in an external web browser or showing within an embedded web browser.", "Gathers input fields, merges with optional data field, and sends an event to the client. It is up to the client to determine how this data is processed. For example: With BotFramework bots, the client would send an activity through the messaging medium to the bot. The inputs that are gathered are those on the current card, and in the case of a show card those on any parent cards. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details.": "Gathers input fields, merges with optional data field, and sends an event to the client. It is up to the client to determine how this data is processed. For example: With BotFramework bots, the client would send an activity through the messaging medium to the bot. The inputs that are gathered are those on the current card, and in the case of a show card those on any parent cards. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details.", "Defines an AdaptiveCard which is shown to the user when the button or link is clicked.": "Defines an AdaptiveCard which is shown to the user when the button or link is clicked.", @@ -28,9 +29,9 @@ "Describes a choice for use in a ChoiceSet.": "Describes a choice for use in a ChoiceSet.", "Specifies a background image. Acceptable formats are PNG, JPEG, and GIF": "Specifies a background image. Acceptable formats are PNG, JPEG, and GIF", "Defines how a card can be refreshed by making a request to the target Bot.": "Defines how a card can be refreshed by making a request to the target Bot.", - "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#oauth-card)": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#oauth-card)", - "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#TokenExchangeResource)": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#TokenExchangeResource)", - "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-activity.md#card-action).": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-activity.md#card-action).", + "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.oauthcard)": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.oauthcard)", + "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.tokenexchangeresource)": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.tokenexchangeresource)", + "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.cardaction).": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.cardaction).", "Yes": "Yes", "Must be `\"%s\"`.": "Must be `\"%s\"`.", "Schema version that this card requires. If a client is **lower** than this version, the `fallbackText` will be rendered. NOTE: Version is not required for cards within an `Action.ShowCard`. However, it *is* required for the top-level card.": "Schema version that this card requires. If a client is **lower** than this version, the `fallbackText` will be rendered. NOTE: Version is not required for cards within an `Action.ShowCard`. However, it *is* required for the top-level card.", @@ -55,14 +56,14 @@ "Text to display. A subset of markdown is supported (https://aka.ms/ACTextFeatures)": "Text to display. A subset of markdown is supported (https://aka.ms/ACTextFeatures)", "Controls the color of `TextBlock` elements.": "Controls the color of `TextBlock` elements.", "Type of font to use for rendering": "Type of font to use for rendering", - "Controls the horizontal text alignment.": "Controls the horizontal text alignment.", + "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", "If `true`, displays text slightly toned down to appear less prominent.": "If `true`, displays text slightly toned down to appear less prominent.", "Specifies the maximum number of lines to display.": "Specifies the maximum number of lines to display.", "Controls size of text.": "Controls size of text.", - "Determines the style of this text block": "Determines the style of this text block", - "No, default: %s": "No, default: %s", "Controls the weight of `TextBlock` elements.": "Controls the weight of `TextBlock` elements.", "If `true`, allow text to wrap. Otherwise, text is clipped.": "If `true`, allow text to wrap. Otherwise, text is clipped.", + "The style of this TextBlock for accessibility purposes.": "The style of this TextBlock for accessibility purposes.", + "No, default: %s": "No, default: %s", "Describes what to do when an unknown element is encountered or the requires of this or any children can't be met.": "Describes what to do when an unknown element is encountered or the requires of this or any children can't be met.", "Specifies the height of the element.": "Specifies the height of the element.", "When `true`, draw a separating line at the top of the element.": "When `true`, draw a separating line at the top of the element.", @@ -75,7 +76,7 @@ "Alternate text describing the image.": "Alternate text describing the image.", "Applies a background to a transparent image. This property will respect the image style.": "Applies a background to a transparent image. This property will respect the image style.", "The desired height of the image. If specified as a pixel value, ending in 'px', E.g., 50px, the image will distort to fit that exact height. This overrides the `size` property.": "The desired height of the image. If specified as a pixel value, ending in 'px', E.g., 50px, the image will distort to fit that exact height. This overrides the `size` property.", - "Controls how this element is horizontally positioned within its parent.": "Controls how this element is horizontally positioned within its parent.", + "Controls how this element is horizontally positioned within its parent. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls how this element is horizontally positioned within its parent. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", "An Action that will be invoked when the `Image` is tapped or selected. `Action.ShowCard` is not supported.": "An Action that will be invoked when the `Image` is tapped or selected. `Action.ShowCard` is not supported.", "Controls the approximate size of the image. The physical dimensions will vary per host.": "Controls the approximate size of the image. The physical dimensions will vary per host.", "Controls how this `Image` is displayed.": "Controls how this `Image` is displayed.", @@ -100,7 +101,7 @@ "The card elements to render inside the `Container`.": "The card elements to render inside the `Container`.", "An Action that will be invoked when the `Container` is tapped or selected. `Action.ShowCard` is not supported.": "An Action that will be invoked when the `Container` is tapped or selected. `Action.ShowCard` is not supported.", "Style hint for `Container`.": "Style hint for `Container`.", - "Defines how the content should be aligned vertically within the container.": "Defines how the content should be aligned vertically within the container.", + "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.": "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.", "Determines whether the element should bleed through its parent's padding.": "Determines whether the element should bleed through its parent's padding.", "Specifies the background image. Acceptable formats are PNG, JPEG, and GIF": "Specifies the background image. Acceptable formats are PNG, JPEG, and GIF", "Specifies the minimum height of the container in pixels, like `\"80px\"`.": "Specifies the minimum height of the container in pixels, like `\"80px\"`.", @@ -109,7 +110,7 @@ "An Action that will be invoked when the `ColumnSet` is tapped or selected. `Action.ShowCard` is not supported.": "An Action that will be invoked when the `ColumnSet` is tapped or selected. `Action.ShowCard` is not supported.", "Style hint for `ColumnSet`.": "Style hint for `ColumnSet`.", "Specifies the minimum height of the column set in pixels, like `\"80px\"`.": "Specifies the minimum height of the column set in pixels, like `\"80px\"`.", - "Controls the horizontal alignment of the ColumnSet.": "Controls the horizontal alignment of the ColumnSet.", + "Controls the horizontal alignment of the ColumnSet. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls the horizontal alignment of the ColumnSet. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", "The card elements to render inside the `Column`.": "The card elements to render inside the `Column`.", "Determines whether the column should bleed through its parent's padding.": "Determines whether the column should bleed through its parent's padding.", "Describes what to do when an unknown item is encountered or the requires of this or any children can't be met.": "Describes what to do when an unknown item is encountered or the requires of this or any children can't be met.", @@ -118,17 +119,27 @@ "Controls the amount of spacing between this column and the preceding column.": "Controls the amount of spacing between this column and the preceding column.", "An Action that will be invoked when the `Column` is tapped or selected. `Action.ShowCard` is not supported.": "An Action that will be invoked when the `Column` is tapped or selected. `Action.ShowCard` is not supported.", "Style hint for `Column`.": "Style hint for `Column`.", - "Defines how the content should be aligned vertically within the column.": "Defines how the content should be aligned vertically within the column.", + "Defines how the content should be aligned vertically within the column. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.": "Defines how the content should be aligned vertically within the column. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.", "`\"auto\"`, `\"stretch\"`, a number representing relative width of the column in the column group, or in version 1.1 and higher, a specific pixel width, like `\"50px\"`.": "`\"auto\"`, `\"stretch\"`, a number representing relative width of the column in the column group, or in version 1.1 and higher, a specific pixel width, like `\"50px\"`.", "The array of `Fact`'s.": "The array of `Fact`'s.", "The title of the fact.": "The title of the fact.", "The value of the fact.": "The value of the fact.", "The array of `Image` elements to show.": "The array of `Image` elements to show.", "Controls the approximate size of each image. The physical dimensions will vary per host. Auto and stretch are not supported for ImageSet. The size will default to medium if those values are set.": "Controls the approximate size of each image. The physical dimensions will vary per host. Auto and stretch are not supported for ImageSet. The size will default to medium if those values are set.", + "Defines the number of columns in the table, their sizes, and more.": "Defines the number of columns in the table, their sizes, and more.", + "Defines the rows of the table.": "Defines the rows of the table.", + "Specifies whether the first row of the table should be treated as a header row, and be announced as such by accessibility software.": "Specifies whether the first row of the table should be treated as a header row, and be announced as such by accessibility software.", + "Specifies whether grid lines should be displayed.": "Specifies whether grid lines should be displayed.", + "Defines the style of the grid. This property currently only controls the grid's color.": "Defines the style of the grid. This property currently only controls the grid's color.", + "Controls how the content of all cells is horizontally aligned by default. When not specified, horizontal alignment is defined on a per-cell basis.": "Controls how the content of all cells is horizontally aligned by default. When not specified, horizontal alignment is defined on a per-cell basis.", + "Controls how the content of all cells is vertically aligned by default. When not specified, vertical alignment is defined on a per-cell basis.": "Controls how the content of all cells is vertically aligned by default. When not specified, vertical alignment is defined on a per-cell basis.", "The URL to open.": "The URL to open.", "Label for button or link that represents this action.": "Label for button or link that represents this action.", "Optional icon to be shown on the action in conjunction with the title. Supports data URI in version 1.2+": "Optional icon to be shown on the action in conjunction with the title. Supports data URI in version 1.2+", + "A unique identifier associated with this Action.": "A unique identifier associated with this Action.", "Controls the style of an Action, which influences how the action is displayed, spoken, etc.": "Controls the style of an Action, which influences how the action is displayed, spoken, etc.", + "Defines text that should be displayed to the end user as they hover the mouse over the action, and read when using narration software.": "Defines text that should be displayed to the end user as they hover the mouse over the action, and read when using narration software.", + "Determines whether the action should be enabled.": "Determines whether the action should be enabled.", "Initial data that input fields will be combined with. These are essentially ‘hidden’ properties.": "Initial data that input fields will be combined with. These are essentially ‘hidden’ properties.", "Controls which inputs are associated with the submit action.": "Controls which inputs are associated with the submit action.", "The Adaptive Card to show. Inputs in ShowCards will not be submitted if the submit button is located on a parent card. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details.": "The Adaptive Card to show. Inputs in ShowCards will not be submitted if the submit button is located on a parent card. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details.", @@ -188,8 +199,10 @@ "* %s: %s\n": "* %s: %s\n", "* %s : %s\n": "* %s : %s\n", "* %s:": "* %s:", - "Causes this element to be dropped immediately when unknown elements are encountered. The unknown element doesn't bubble up any higher.": "Causes this element to be dropped immediately when unknown elements are encountered. The unknown element doesn't bubble up any higher.", + "This is the default style which provide no special styling or behavior.": "This is the default style which provide no special styling or behavior.", "%s: %s": "%s: %s", + "The TextBlock is a heading. This will apply the heading styling defaults and mark the text block as a heading for accessiblity.": "The TextBlock is a heading. This will apply the heading styling defaults and mark the text block as a heading for accessiblity.", + "Causes this element to be dropped immediately when unknown elements are encountered. The unknown element doesn't bubble up any higher.": "Causes this element to be dropped immediately when unknown elements are encountered. The unknown element doesn't bubble up any higher.", "The height of the container will be determined by the height of its contents.": "The height of the container will be determined by the height of its contents.", "The container will stretch its height to the available remaining height of the parent container.": "The container will stretch its height to the available remaining height of the parent container.", "Image will scale down to fit if needed, but will not scale up to fill the area.": "Image will scale down to fit if needed, but will not scale up to fill the area.", @@ -203,21 +216,19 @@ "Action is displayed with a destructive style (typically the button becomes red)": "Action is displayed with a destructive style (typically the button becomes red)", "Inputs on the current card and any parent cards will be validated and submitted for this Action.": "Inputs on the current card and any parent cards will be validated and submitted for this Action.", "None of the inputs will be validated or submitted for this Action.": "None of the inputs will be validated or submitted for this Action.", + "Display input text with password masking.": "Display input text with password masking.", "The background image covers the entire width of the container. Its aspect ratio is preserved. Content may be clipped if the aspect ratio of the image doesn't match the aspect ratio of the container. **verticalAlignment** is respected (**horizontalAlignment** is meaningless since it's stretched width). This is the default mode and is the equivalent to the current model.": "The background image covers the entire width of the container. Its aspect ratio is preserved. Content may be clipped if the aspect ratio of the image doesn't match the aspect ratio of the container. **verticalAlignment** is respected (**horizontalAlignment** is meaningless since it's stretched width). This is the default mode and is the equivalent to the current model.", "The background image isn't stretched. It is repeated in the x axis as many times as necessary to cover the container's width. **verticalAlignment** is honored (default is **top**), **horizontalAlignment** is ignored.": "The background image isn't stretched. It is repeated in the x axis as many times as necessary to cover the container's width. **verticalAlignment** is honored (default is **top**), **horizontalAlignment** is ignored.", "The background image isn't stretched. It is repeated in the y axis as many times as necessary to cover the container's height. **verticalAlignment** is ignored, **horizontalAlignment** is honored (default is **left**).": "The background image isn't stretched. It is repeated in the y axis as many times as necessary to cover the container's height. **verticalAlignment** is ignored, **horizontalAlignment** is honored (default is **left**).", "The background image isn't stretched. It is repeated first in the x axis then in the y axis as many times as necessary to cover the entire container. Both **horizontalAlignment** and **verticalAlignment** are honored (defaults are **left** and **top**).": "The background image isn't stretched. It is repeated first in the x axis then in the y axis as many times as necessary to cover the entire container. Both **horizontalAlignment** and **verticalAlignment** are honored (defaults are **left** and **top**).", - "The style of this TextBlock for accessibility purposes.": "The style of this TextBlock for accessibility purposes.", - "Defines text that should be displayed to the end user as they hover the mouse over the action, and read when using narration software.": "Defines text that should be displayed to the end user as they hover the mouse over the action, and read when using narration software.", - "This is the default style. The TextBlock behaves as standard content and will be read as such by accessibility software.": "This is the default style. The TextBlock behaves as standard content and will be read as such by accessibility software.", - "The TextBlock behaves as a heading which impacts how accessibility software handles navigation and narration.": "The TextBlock behaves as a heading which impacts how accessibility software handles navigation and narration.", - "This is the default style which provide no special styling or behavior.": "This is the default style which provide no special styling or behavior.", - "The TextBlock is a heading. This will apply the heading styling defaults and mark the text block as a heading for accessiblity.": "The TextBlock is a heading. This will apply the heading styling defaults and mark the text block as a heading for accessiblity.", - "A unique identifier associated with this Action.": "A unique identifier associated with this Action.", - "Determines whether the action should be enabled.": "Determines whether the action should be enabled.", - "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", - "Controls how this element is horizontally positioned within its parent. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls how this element is horizontally positioned within its parent. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", - "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.": "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.", - "Controls the horizontal alignment of the ColumnSet. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls the horizontal alignment of the ColumnSet. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", - "Defines how the content should be aligned vertically within the column. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.": "Defines how the content should be aligned vertically within the column. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top." + "Determines whether the action should be displayed as a button or in the overflow menu.": "Determines whether the action should be displayed as a button or in the overflow menu.", + "Action is displayed as a button.": "Action is displayed as a button.", + "Action is placed in an overflow menu (typically a popup menu under a `...` button).": "Action is placed in an overflow menu (typically a popup menu under a `...` button).", + "Represents a cell within a row of a Table element.": "Represents a cell within a row of a Table element.", + "When `true` content in this Adaptive Card should be presented right to left. When 'false' content in this Adaptive Card should be presented left to right. If unset, the default platform behavior will apply.": "When `true` content in this Adaptive Card should be presented right to left. When 'false' content in this Adaptive Card should be presented left to right. If unset, the default platform behavior will apply.", + "When `true` content in this column should be presented right to left. When 'false' content in this column should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.": "When `true` content in this column should be presented right to left. When 'false' content in this column should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.", + "The card elements to render inside the `TableCell`.": "The card elements to render inside the `TableCell`.", + "An Action that will be invoked when the `TableCell` is tapped or selected. `Action.ShowCard` is not supported.": "An Action that will be invoked when the `TableCell` is tapped or selected. `Action.ShowCard` is not supported.", + "Style hint for `TableCell`.": "Style hint for `TableCell`.", + "Allows users to filter choices in a choice set.": "Allows users to filter choices in a choice set." } \ No newline at end of file diff --git a/source/nodejs/ac-typed-schema/src/markdown/languages/en.json b/source/nodejs/ac-typed-schema/src/markdown/languages/en.json index 1fb17d4cea..f1810d0cb1 100644 --- a/source/nodejs/ac-typed-schema/src/markdown/languages/en.json +++ b/source/nodejs/ac-typed-schema/src/markdown/languages/en.json @@ -1,22 +1,41 @@ { - "**Introduced in version %s**\n\n": "**Introduced in version %s**\n\n", + "An Adaptive Card, containing a free-form body of card elements, and an optional set of actions.": "An Adaptive Card, containing a free-form body of card elements, and an optional set of actions.", + "Displays text, allowing control over font sizes, weight, and color.": "Displays text, allowing control over font sizes, weight, and color.", + "Displays an image. Acceptable formats are PNG, JPEG, and GIF": "Displays an image. Acceptable formats are PNG, JPEG, and GIF", + "Displays a media player for audio or video content.": "Displays a media player for audio or video content.", + "Defines a source for a Media element": "Defines a source for a Media element", + "Defines an array of inlines, allowing for inline text formatting.": "Defines an array of inlines, allowing for inline text formatting.", + "Defines a single run of formatted text. A TextRun with no properties set can be represented in the json as string containing the text as a shorthand for the json object. These two representations are equivalent.": "Defines a single run of formatted text. A TextRun with no properties set can be represented in the json as string containing the text as a shorthand for the json object. These two representations are equivalent.", + "Displays a set of actions.": "Displays a set of actions.", + "Containers group items together.": "Containers group items together.", + "ColumnSet divides a region into Columns, allowing elements to sit side-by-side.": "ColumnSet divides a region into Columns, allowing elements to sit side-by-side.", + "Defines a container that is part of a ColumnSet.": "Defines a container that is part of a ColumnSet.", + "The FactSet element displays a series of facts (i.e. name/value pairs) in a tabular form.": "The FactSet element displays a series of facts (i.e. name/value pairs) in a tabular form.", + "Describes a Fact in a FactSet as a key/value pair.": "Describes a Fact in a FactSet as a key/value pair.", + "The ImageSet displays a collection of Images similar to a gallery. Acceptable formats are PNG, JPEG, and GIF": "The ImageSet displays a collection of Images similar to a gallery. Acceptable formats are PNG, JPEG, and GIF", + "Provides a way to display data in a tabular form.": "Provides a way to display data in a tabular form.", + "When invoked, show the given url either by launching it in an external web browser or showing within an embedded web browser.": "When invoked, show the given url either by launching it in an external web browser or showing within an embedded web browser.", + "Gathers input fields, merges with optional data field, and sends an event to the client. It is up to the client to determine how this data is processed. For example: With BotFramework bots, the client would send an activity through the messaging medium to the bot. The inputs that are gathered are those on the current card, and in the case of a show card those on any parent cards. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details.": "Gathers input fields, merges with optional data field, and sends an event to the client. It is up to the client to determine how this data is processed. For example: With BotFramework bots, the client would send an activity through the messaging medium to the bot. The inputs that are gathered are those on the current card, and in the case of a show card those on any parent cards. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details.", + "Defines an AdaptiveCard which is shown to the user when the button or link is clicked.": "Defines an AdaptiveCard which is shown to the user when the button or link is clicked.", + "An action that toggles the visibility of associated card elements.": "An action that toggles the visibility of associated card elements.", + "Represents an entry for Action.ToggleVisibility's targetElements property": "Represents an entry for Action.ToggleVisibility's targetElements property", + "Gathers input fields, merges with optional data field, and sends an event to the client. Clients process the event by sending an Invoke activity of type adaptiveCard/action to the target Bot. The inputs that are gathered are those on the current card, and in the case of a show card those on any parent cards. See [Universal Action Model](https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/universal-action-model) documentation for more details.": "Gathers input fields, merges with optional data field, and sends an event to the client. Clients process the event by sending an Invoke activity of type adaptiveCard/action to the target Bot. The inputs that are gathered are those on the current card, and in the case of a show card those on any parent cards. See [Universal Action Model](https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/universal-action-model) documentation for more details.", + "Lets a user enter text.": "Lets a user enter text.", + "Allows a user to enter a number.": "Allows a user to enter a number.", + "Lets a user choose a date.": "Lets a user choose a date.", + "Lets a user select a time.": "Lets a user select a time.", + "Lets a user choose between two options.": "Lets a user choose between two options.", + "Allows a user to input a Choice.": "Allows a user to input a Choice.", + "Describes a choice for use in a ChoiceSet.": "Describes a choice for use in a ChoiceSet.", + "Specifies a background image. Acceptable formats are PNG, JPEG, and GIF": "Specifies a background image. Acceptable formats are PNG, JPEG, and GIF", + "Defines how a card can be refreshed by making a request to the target Bot.": "Defines how a card can be refreshed by making a request to the target Bot.", + "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.oauthcard)": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.oauthcard)", + "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.tokenexchangeresource)": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.tokenexchangeresource)", + "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.cardaction).": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.cardaction).", "Yes": "Yes", "Must be `\"%s\"`.": "Must be `\"%s\"`.", - "No, default: %s": "No, default: %s", - "### Inherited properties": "### Inherited properties", - "* %s: %s\n": "* %s: %s\n", - "* %s : %s\n": "* %s : %s\n", - "* %s:": "* %s:", - "\n * %s": "\n * %s", - "%s: %s": "%s: %s", - "Added in version %s.": "Added in version %s.", - "No": "No", - "Property": "Property", - "Type": "Type", - "Required": "Required", - "Description": "Description", - "Version": "Version", "Schema version that this card requires. If a client is **lower** than this version, the `fallbackText` will be rendered. NOTE: Version is not required for cards within an `Action.ShowCard`. However, it *is* required for the top-level card.": "Schema version that this card requires. If a client is **lower** than this version, the `fallbackText` will be rendered. NOTE: Version is not required for cards within an `Action.ShowCard`. However, it *is* required for the top-level card.", + "No": "No", "Defines how the card can be refreshed by making a request to the target Bot.": "Defines how the card can be refreshed by making a request to the target Bot.", "Defines authentication information to enable on-behalf-of single sign on or just-in-time OAuth.": "Defines authentication information to enable on-behalf-of single sign on or just-in-time OAuth.", "The card elements to show in the primary card region.": "The card elements to show in the primary card region.", @@ -29,16 +48,22 @@ "The 2-letter ISO-639-1 language used in the card. Used to localize any date/time functions.": "The 2-letter ISO-639-1 language used in the card. Used to localize any date/time functions.", "Defines how the content should be aligned vertically within the container. Only relevant for fixed-height cards, or cards with a `minHeight` specified.": "Defines how the content should be aligned vertically within the container. Only relevant for fixed-height cards, or cards with a `minHeight` specified.", "The Adaptive Card schema.": "The Adaptive Card schema.", + "Property": "Property", + "Type": "Type", + "Required": "Required", + "Description": "Description", + "Version": "Version", "Text to display. A subset of markdown is supported (https://aka.ms/ACTextFeatures)": "Text to display. A subset of markdown is supported (https://aka.ms/ACTextFeatures)", "Controls the color of `TextBlock` elements.": "Controls the color of `TextBlock` elements.", "Type of font to use for rendering": "Type of font to use for rendering", - "Controls the horizontal text alignment.": "Controls the horizontal text alignment.", + "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", "If `true`, displays text slightly toned down to appear less prominent.": "If `true`, displays text slightly toned down to appear less prominent.", "Specifies the maximum number of lines to display.": "Specifies the maximum number of lines to display.", "Controls size of text.": "Controls size of text.", - "Determines the style of this text block": "Determines the style of this text block", "Controls the weight of `TextBlock` elements.": "Controls the weight of `TextBlock` elements.", "If `true`, allow text to wrap. Otherwise, text is clipped.": "If `true`, allow text to wrap. Otherwise, text is clipped.", + "The style of this TextBlock for accessibility purposes.": "The style of this TextBlock for accessibility purposes.", + "No, default: %s": "No, default: %s", "Describes what to do when an unknown element is encountered or the requires of this or any children can't be met.": "Describes what to do when an unknown element is encountered or the requires of this or any children can't be met.", "Specifies the height of the element.": "Specifies the height of the element.", "When `true`, draw a separating line at the top of the element.": "When `true`, draw a separating line at the top of the element.", @@ -46,15 +71,17 @@ "A unique identifier associated with the item.": "A unique identifier associated with the item.", "If `false`, this item will be removed from the visual tree.": "If `false`, this item will be removed from the visual tree.", "A series of key/value pairs indicating features that the item requires with corresponding minimum version. When a feature is missing or of insufficient version, fallback is triggered.": "A series of key/value pairs indicating features that the item requires with corresponding minimum version. When a feature is missing or of insufficient version, fallback is triggered.", + "### Inherited properties": "### Inherited properties", "The URL to the image. Supports data URI in version 1.2+": "The URL to the image. Supports data URI in version 1.2+", "Alternate text describing the image.": "Alternate text describing the image.", "Applies a background to a transparent image. This property will respect the image style.": "Applies a background to a transparent image. This property will respect the image style.", "The desired height of the image. If specified as a pixel value, ending in 'px', E.g., 50px, the image will distort to fit that exact height. This overrides the `size` property.": "The desired height of the image. If specified as a pixel value, ending in 'px', E.g., 50px, the image will distort to fit that exact height. This overrides the `size` property.", - "Controls how this element is horizontally positioned within its parent.": "Controls how this element is horizontally positioned within its parent.", + "Controls how this element is horizontally positioned within its parent. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls how this element is horizontally positioned within its parent. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", "An Action that will be invoked when the `Image` is tapped or selected. `Action.ShowCard` is not supported.": "An Action that will be invoked when the `Image` is tapped or selected. `Action.ShowCard` is not supported.", "Controls the approximate size of the image. The physical dimensions will vary per host.": "Controls the approximate size of the image. The physical dimensions will vary per host.", "Controls how this `Image` is displayed.": "Controls how this `Image` is displayed.", "The desired on-screen width of the image, ending in 'px'. E.g., 50px. This overrides the `size` property.": "The desired on-screen width of the image, ending in 'px'. E.g., 50px. This overrides the `size` property.", + "**Introduced in version %s**\n\n": "**Introduced in version %s**\n\n", "Array of media sources to attempt to play.": "Array of media sources to attempt to play.", "URL of an image to display before playing. Supports data URI in version 1.2+": "URL of an image to display before playing. Supports data URI in version 1.2+", "Alternate text describing the audio or video.": "Alternate text describing the audio or video.", @@ -74,7 +101,7 @@ "The card elements to render inside the `Container`.": "The card elements to render inside the `Container`.", "An Action that will be invoked when the `Container` is tapped or selected. `Action.ShowCard` is not supported.": "An Action that will be invoked when the `Container` is tapped or selected. `Action.ShowCard` is not supported.", "Style hint for `Container`.": "Style hint for `Container`.", - "Defines how the content should be aligned vertically within the container.": "Defines how the content should be aligned vertically within the container.", + "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.": "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.", "Determines whether the element should bleed through its parent's padding.": "Determines whether the element should bleed through its parent's padding.", "Specifies the background image. Acceptable formats are PNG, JPEG, and GIF": "Specifies the background image. Acceptable formats are PNG, JPEG, and GIF", "Specifies the minimum height of the container in pixels, like `\"80px\"`.": "Specifies the minimum height of the container in pixels, like `\"80px\"`.", @@ -83,7 +110,7 @@ "An Action that will be invoked when the `ColumnSet` is tapped or selected. `Action.ShowCard` is not supported.": "An Action that will be invoked when the `ColumnSet` is tapped or selected. `Action.ShowCard` is not supported.", "Style hint for `ColumnSet`.": "Style hint for `ColumnSet`.", "Specifies the minimum height of the column set in pixels, like `\"80px\"`.": "Specifies the minimum height of the column set in pixels, like `\"80px\"`.", - "Controls the horizontal alignment of the ColumnSet.": "Controls the horizontal alignment of the ColumnSet.", + "Controls the horizontal alignment of the ColumnSet. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls the horizontal alignment of the ColumnSet. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", "The card elements to render inside the `Column`.": "The card elements to render inside the `Column`.", "Determines whether the column should bleed through its parent's padding.": "Determines whether the column should bleed through its parent's padding.", "Describes what to do when an unknown item is encountered or the requires of this or any children can't be met.": "Describes what to do when an unknown item is encountered or the requires of this or any children can't be met.", @@ -92,17 +119,27 @@ "Controls the amount of spacing between this column and the preceding column.": "Controls the amount of spacing between this column and the preceding column.", "An Action that will be invoked when the `Column` is tapped or selected. `Action.ShowCard` is not supported.": "An Action that will be invoked when the `Column` is tapped or selected. `Action.ShowCard` is not supported.", "Style hint for `Column`.": "Style hint for `Column`.", - "Defines how the content should be aligned vertically within the column.": "Defines how the content should be aligned vertically within the column.", + "Defines how the content should be aligned vertically within the column. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.": "Defines how the content should be aligned vertically within the column. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.", "`\"auto\"`, `\"stretch\"`, a number representing relative width of the column in the column group, or in version 1.1 and higher, a specific pixel width, like `\"50px\"`.": "`\"auto\"`, `\"stretch\"`, a number representing relative width of the column in the column group, or in version 1.1 and higher, a specific pixel width, like `\"50px\"`.", "The array of `Fact`'s.": "The array of `Fact`'s.", "The title of the fact.": "The title of the fact.", "The value of the fact.": "The value of the fact.", "The array of `Image` elements to show.": "The array of `Image` elements to show.", "Controls the approximate size of each image. The physical dimensions will vary per host. Auto and stretch are not supported for ImageSet. The size will default to medium if those values are set.": "Controls the approximate size of each image. The physical dimensions will vary per host. Auto and stretch are not supported for ImageSet. The size will default to medium if those values are set.", + "Defines the number of columns in the table, their sizes, and more.": "Defines the number of columns in the table, their sizes, and more.", + "Defines the rows of the table.": "Defines the rows of the table.", + "Specifies whether the first row of the table should be treated as a header row, and be announced as such by accessibility software.": "Specifies whether the first row of the table should be treated as a header row, and be announced as such by accessibility software.", + "Specifies whether grid lines should be displayed.": "Specifies whether grid lines should be displayed.", + "Defines the style of the grid. This property currently only controls the grid's color.": "Defines the style of the grid. This property currently only controls the grid's color.", + "Controls how the content of all cells is horizontally aligned by default. When not specified, horizontal alignment is defined on a per-cell basis.": "Controls how the content of all cells is horizontally aligned by default. When not specified, horizontal alignment is defined on a per-cell basis.", + "Controls how the content of all cells is vertically aligned by default. When not specified, vertical alignment is defined on a per-cell basis.": "Controls how the content of all cells is vertically aligned by default. When not specified, vertical alignment is defined on a per-cell basis.", "The URL to open.": "The URL to open.", "Label for button or link that represents this action.": "Label for button or link that represents this action.", "Optional icon to be shown on the action in conjunction with the title. Supports data URI in version 1.2+": "Optional icon to be shown on the action in conjunction with the title. Supports data URI in version 1.2+", + "A unique identifier associated with this Action.": "A unique identifier associated with this Action.", "Controls the style of an Action, which influences how the action is displayed, spoken, etc.": "Controls the style of an Action, which influences how the action is displayed, spoken, etc.", + "Defines text that should be displayed to the end user as they hover the mouse over the action, and read when using narration software.": "Defines text that should be displayed to the end user as they hover the mouse over the action, and read when using narration software.", + "Determines whether the action should be enabled.": "Determines whether the action should be enabled.", "Initial data that input fields will be combined with. These are essentially ‘hidden’ properties.": "Initial data that input fields will be combined with. These are essentially ‘hidden’ properties.", "Controls which inputs are associated with the submit action.": "Controls which inputs are associated with the submit action.", "The Adaptive Card to show. Inputs in ShowCards will not be submitted if the submit button is located on a parent card. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details.": "The Adaptive Card to show. Inputs in ShowCards will not be submitted if the submit button is located on a parent card. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details.", @@ -159,38 +196,12 @@ "The value associated with the button. The meaning of value depends on the button's type.": "The value associated with the button. The meaning of value depends on the button's type.", "The caption of the button.": "The caption of the button.", "A URL to an image to display alongside the button's caption.": "A URL to an image to display alongside the button's caption.", - "An Adaptive Card, containing a free-form body of card elements, and an optional set of actions.": "An Adaptive Card, containing a free-form body of card elements, and an optional set of actions.", - "Displays text, allowing control over font sizes, weight, and color.": "Displays text, allowing control over font sizes, weight, and color.", - "Displays an image. Acceptable formats are PNG, JPEG, and GIF": "Displays an image. Acceptable formats are PNG, JPEG, and GIF", - "Displays a media player for audio or video content.": "Displays a media player for audio or video content.", - "Defines a source for a Media element": "Defines a source for a Media element", - "Defines an array of inlines, allowing for inline text formatting.": "Defines an array of inlines, allowing for inline text formatting.", - "Defines a single run of formatted text. A TextRun with no properties set can be represented in the json as string containing the text as a shorthand for the json object. These two representations are equivalent.": "Defines a single run of formatted text. A TextRun with no properties set can be represented in the json as string containing the text as a shorthand for the json object. These two representations are equivalent.", - "Displays a set of actions.": "Displays a set of actions.", - "Containers group items together.": "Containers group items together.", - "ColumnSet divides a region into Columns, allowing elements to sit side-by-side.": "ColumnSet divides a region into Columns, allowing elements to sit side-by-side.", - "Defines a container that is part of a ColumnSet.": "Defines a container that is part of a ColumnSet.", - "The FactSet element displays a series of facts (i.e. name/value pairs) in a tabular form.": "The FactSet element displays a series of facts (i.e. name/value pairs) in a tabular form.", - "Describes a Fact in a FactSet as a key/value pair.": "Describes a Fact in a FactSet as a key/value pair.", - "The ImageSet displays a collection of Images similar to a gallery. Acceptable formats are PNG, JPEG, and GIF": "The ImageSet displays a collection of Images similar to a gallery. Acceptable formats are PNG, JPEG, and GIF", - "When invoked, show the given url either by launching it in an external web browser or showing within an embedded web browser.": "When invoked, show the given url either by launching it in an external web browser or showing within an embedded web browser.", - "Gathers input fields, merges with optional data field, and sends an event to the client. It is up to the client to determine how this data is processed. For example: With BotFramework bots, the client would send an activity through the messaging medium to the bot. The inputs that are gathered are those on the current card, and in the case of a show card those on any parent cards. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details.": "Gathers input fields, merges with optional data field, and sends an event to the client. It is up to the client to determine how this data is processed. For example: With BotFramework bots, the client would send an activity through the messaging medium to the bot. The inputs that are gathered are those on the current card, and in the case of a show card those on any parent cards. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details.", - "Defines an AdaptiveCard which is shown to the user when the button or link is clicked.": "Defines an AdaptiveCard which is shown to the user when the button or link is clicked.", - "An action that toggles the visibility of associated card elements.": "An action that toggles the visibility of associated card elements.", - "Represents an entry for Action.ToggleVisibility's targetElements property": "Represents an entry for Action.ToggleVisibility's targetElements property", - "Gathers input fields, merges with optional data field, and sends an event to the client. Clients process the event by sending an Invoke activity of type adaptiveCard/action to the target Bot. The inputs that are gathered are those on the current card, and in the case of a show card those on any parent cards. See [Universal Action Model](https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/universal-action-model) documentation for more details.": "Gathers input fields, merges with optional data field, and sends an event to the client. Clients process the event by sending an Invoke activity of type adaptiveCard/action to the target Bot. The inputs that are gathered are those on the current card, and in the case of a show card those on any parent cards. See [Universal Action Model](https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/universal-action-model) documentation for more details.", - "Lets a user enter text.": "Lets a user enter text.", - "Allows a user to enter a number.": "Allows a user to enter a number.", - "Lets a user choose a date.": "Lets a user choose a date.", - "Lets a user select a time.": "Lets a user select a time.", - "Lets a user choose between two options.": "Lets a user choose between two options.", - "Allows a user to input a Choice.": "Allows a user to input a Choice.", - "Describes a choice for use in a ChoiceSet.": "Describes a choice for use in a ChoiceSet.", - "Specifies a background image. Acceptable formats are PNG, JPEG, and GIF": "Specifies a background image. Acceptable formats are PNG, JPEG, and GIF", - "Defines how a card can be refreshed by making a request to the target Bot.": "Defines how a card can be refreshed by making a request to the target Bot.", - "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#oauth-card)": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#oauth-card)", - "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#TokenExchangeResource)": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#TokenExchangeResource)", - "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-activity.md#card-action).": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-activity.md#card-action).", + "* %s: %s\n": "* %s: %s\n", + "* %s : %s\n": "* %s : %s\n", + "* %s:": "* %s:", + "This is the default style which provide no special styling or behavior.": "This is the default style which provide no special styling or behavior.", + "%s: %s": "%s: %s", + "The TextBlock is a heading. This will apply the heading styling defaults and mark the text block as a heading for accessiblity.": "The TextBlock is a heading. This will apply the heading styling defaults and mark the text block as a heading for accessiblity.", "Causes this element to be dropped immediately when unknown elements are encountered. The unknown element doesn't bubble up any higher.": "Causes this element to be dropped immediately when unknown elements are encountered. The unknown element doesn't bubble up any higher.", "The height of the container will be determined by the height of its contents.": "The height of the container will be determined by the height of its contents.", "The container will stretch its height to the available remaining height of the parent container.": "The container will stretch its height to the available remaining height of the parent container.", @@ -199,26 +210,25 @@ "Image is displayed with a fixed small width, where the width is determined by the host.": "Image is displayed with a fixed small width, where the width is determined by the host.", "Image is displayed with a fixed medium width, where the width is determined by the host.": "Image is displayed with a fixed medium width, where the width is determined by the host.", "Image is displayed with a fixed large width, where the width is determined by the host.": "Image is displayed with a fixed large width, where the width is determined by the host.", + "Added in version %s.": "Added in version %s.", "Action is displayed as normal": "Action is displayed as normal", "Action is displayed with a positive style (typically the button becomes accent color)": "Action is displayed with a positive style (typically the button becomes accent color)", "Action is displayed with a destructive style (typically the button becomes red)": "Action is displayed with a destructive style (typically the button becomes red)", "Inputs on the current card and any parent cards will be validated and submitted for this Action.": "Inputs on the current card and any parent cards will be validated and submitted for this Action.", "None of the inputs will be validated or submitted for this Action.": "None of the inputs will be validated or submitted for this Action.", + "Display input text with password masking.": "Display input text with password masking.", "The background image covers the entire width of the container. Its aspect ratio is preserved. Content may be clipped if the aspect ratio of the image doesn't match the aspect ratio of the container. **verticalAlignment** is respected (**horizontalAlignment** is meaningless since it's stretched width). This is the default mode and is the equivalent to the current model.": "The background image covers the entire width of the container. Its aspect ratio is preserved. Content may be clipped if the aspect ratio of the image doesn't match the aspect ratio of the container. **verticalAlignment** is respected (**horizontalAlignment** is meaningless since it's stretched width). This is the default mode and is the equivalent to the current model.", "The background image isn't stretched. It is repeated in the x axis as many times as necessary to cover the container's width. **verticalAlignment** is honored (default is **top**), **horizontalAlignment** is ignored.": "The background image isn't stretched. It is repeated in the x axis as many times as necessary to cover the container's width. **verticalAlignment** is honored (default is **top**), **horizontalAlignment** is ignored.", "The background image isn't stretched. It is repeated in the y axis as many times as necessary to cover the container's height. **verticalAlignment** is ignored, **horizontalAlignment** is honored (default is **left**).": "The background image isn't stretched. It is repeated in the y axis as many times as necessary to cover the container's height. **verticalAlignment** is ignored, **horizontalAlignment** is honored (default is **left**).", "The background image isn't stretched. It is repeated first in the x axis then in the y axis as many times as necessary to cover the entire container. Both **horizontalAlignment** and **verticalAlignment** are honored (defaults are **left** and **top**).": "The background image isn't stretched. It is repeated first in the x axis then in the y axis as many times as necessary to cover the entire container. Both **horizontalAlignment** and **verticalAlignment** are honored (defaults are **left** and **top**).", - "The style of this TextBlock for accessibility purposes.": "The style of this TextBlock for accessibility purposes.", - "Defines text that should be displayed to the end user as they hover the mouse over the action, and read when using narration software.": "Defines text that should be displayed to the end user as they hover the mouse over the action, and read when using narration software.", - "This is the default style. The TextBlock behaves as standard content and will be read as such by accessibility software.": "This is the default style. The TextBlock behaves as standard content and will be read as such by accessibility software.", - "The TextBlock behaves as a heading which impacts how accessibility software handles navigation and narration.": "The TextBlock behaves as a heading which impacts how accessibility software handles navigation and narration.", - "This is the default style which provide no special styling or behavior.": "This is the default style which provide no special styling or behavior.", - "The TextBlock is a heading. This will apply the heading styling defaults and mark the text block as a heading for accessiblity.": "The TextBlock is a heading. This will apply the heading styling defaults and mark the text block as a heading for accessiblity.", - "A unique identifier associated with this Action.": "A unique identifier associated with this Action.", - "Determines whether the action should be enabled.": "Determines whether the action should be enabled.", - "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", - "Controls how this element is horizontally positioned within its parent. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls how this element is horizontally positioned within its parent. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", - "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.": "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.", - "Controls the horizontal alignment of the ColumnSet. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls the horizontal alignment of the ColumnSet. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", - "Defines how the content should be aligned vertically within the column. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.": "Defines how the content should be aligned vertically within the column. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top." + "Determines whether the action should be displayed as a button or in the overflow menu.": "Determines whether the action should be displayed as a button or in the overflow menu.", + "Action is displayed as a button.": "Action is displayed as a button.", + "Action is placed in an overflow menu (typically a popup menu under a `...` button).": "Action is placed in an overflow menu (typically a popup menu under a `...` button).", + "Represents a cell within a row of a Table element.": "Represents a cell within a row of a Table element.", + "When `true` content in this Adaptive Card should be presented right to left. When 'false' content in this Adaptive Card should be presented left to right. If unset, the default platform behavior will apply.": "When `true` content in this Adaptive Card should be presented right to left. When 'false' content in this Adaptive Card should be presented left to right. If unset, the default platform behavior will apply.", + "When `true` content in this column should be presented right to left. When 'false' content in this column should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.": "When `true` content in this column should be presented right to left. When 'false' content in this column should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.", + "The card elements to render inside the `TableCell`.": "The card elements to render inside the `TableCell`.", + "An Action that will be invoked when the `TableCell` is tapped or selected. `Action.ShowCard` is not supported.": "An Action that will be invoked when the `TableCell` is tapped or selected. `Action.ShowCard` is not supported.", + "Style hint for `TableCell`.": "Style hint for `TableCell`.", + "Allows users to filter choices in a choice set.": "Allows users to filter choices in a choice set." } \ No newline at end of file diff --git a/source/nodejs/ac-typed-schema/src/markdown/languages/sp.json b/source/nodejs/ac-typed-schema/src/markdown/languages/sp.json index 0936ace0b2..f1810d0cb1 100644 --- a/source/nodejs/ac-typed-schema/src/markdown/languages/sp.json +++ b/source/nodejs/ac-typed-schema/src/markdown/languages/sp.json @@ -13,6 +13,7 @@ "The FactSet element displays a series of facts (i.e. name/value pairs) in a tabular form.": "The FactSet element displays a series of facts (i.e. name/value pairs) in a tabular form.", "Describes a Fact in a FactSet as a key/value pair.": "Describes a Fact in a FactSet as a key/value pair.", "The ImageSet displays a collection of Images similar to a gallery. Acceptable formats are PNG, JPEG, and GIF": "The ImageSet displays a collection of Images similar to a gallery. Acceptable formats are PNG, JPEG, and GIF", + "Provides a way to display data in a tabular form.": "Provides a way to display data in a tabular form.", "When invoked, show the given url either by launching it in an external web browser or showing within an embedded web browser.": "When invoked, show the given url either by launching it in an external web browser or showing within an embedded web browser.", "Gathers input fields, merges with optional data field, and sends an event to the client. It is up to the client to determine how this data is processed. For example: With BotFramework bots, the client would send an activity through the messaging medium to the bot. The inputs that are gathered are those on the current card, and in the case of a show card those on any parent cards. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details.": "Gathers input fields, merges with optional data field, and sends an event to the client. It is up to the client to determine how this data is processed. For example: With BotFramework bots, the client would send an activity through the messaging medium to the bot. The inputs that are gathered are those on the current card, and in the case of a show card those on any parent cards. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details.", "Defines an AdaptiveCard which is shown to the user when the button or link is clicked.": "Defines an AdaptiveCard which is shown to the user when the button or link is clicked.", @@ -28,9 +29,9 @@ "Describes a choice for use in a ChoiceSet.": "Describes a choice for use in a ChoiceSet.", "Specifies a background image. Acceptable formats are PNG, JPEG, and GIF": "Specifies a background image. Acceptable formats are PNG, JPEG, and GIF", "Defines how a card can be refreshed by making a request to the target Bot.": "Defines how a card can be refreshed by making a request to the target Bot.", - "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#oauth-card)": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#oauth-card)", - "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#TokenExchangeResource)": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-cards.md#TokenExchangeResource)", - "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-activity.md#card-action).": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://github.com/microsoft/botframework-obi/blob/jeffders/adaptiveCards2/protocols/botframework-activity/botframework-activity.md#card-action).", + "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.oauthcard)": "Defines authentication information associated with a card. This maps to the OAuthCard type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.oauthcard)", + "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.tokenexchangeresource)": "Defines information required to enable on-behalf-of single sign-on user authentication. Maps to the TokenExchangeResource type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.tokenexchangeresource)", + "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.cardaction).": "Defines a button as displayed when prompting a user to authenticate. This maps to the cardAction type defined by the Bot Framework (https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.cardaction).", "Yes": "Yes", "Must be `\"%s\"`.": "Must be `\"%s\"`.", "Schema version that this card requires. If a client is **lower** than this version, the `fallbackText` will be rendered. NOTE: Version is not required for cards within an `Action.ShowCard`. However, it *is* required for the top-level card.": "Schema version that this card requires. If a client is **lower** than this version, the `fallbackText` will be rendered. NOTE: Version is not required for cards within an `Action.ShowCard`. However, it *is* required for the top-level card.", @@ -55,14 +56,14 @@ "Text to display. A subset of markdown is supported (https://aka.ms/ACTextFeatures)": "Text to display. A subset of markdown is supported (https://aka.ms/ACTextFeatures)", "Controls the color of `TextBlock` elements.": "Controls the color of `TextBlock` elements.", "Type of font to use for rendering": "Type of font to use for rendering", - "Controls the horizontal text alignment.": "Controls the horizontal text alignment.", + "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", "If `true`, displays text slightly toned down to appear less prominent.": "If `true`, displays text slightly toned down to appear less prominent.", "Specifies the maximum number of lines to display.": "Specifies the maximum number of lines to display.", "Controls size of text.": "Controls size of text.", - "Determines the style of this text block": "Determines the style of this text block", - "No, default: %s": "No, default: %s", "Controls the weight of `TextBlock` elements.": "Controls the weight of `TextBlock` elements.", "If `true`, allow text to wrap. Otherwise, text is clipped.": "If `true`, allow text to wrap. Otherwise, text is clipped.", + "The style of this TextBlock for accessibility purposes.": "The style of this TextBlock for accessibility purposes.", + "No, default: %s": "No, default: %s", "Describes what to do when an unknown element is encountered or the requires of this or any children can't be met.": "Describes what to do when an unknown element is encountered or the requires of this or any children can't be met.", "Specifies the height of the element.": "Specifies the height of the element.", "When `true`, draw a separating line at the top of the element.": "When `true`, draw a separating line at the top of the element.", @@ -75,7 +76,7 @@ "Alternate text describing the image.": "Alternate text describing the image.", "Applies a background to a transparent image. This property will respect the image style.": "Applies a background to a transparent image. This property will respect the image style.", "The desired height of the image. If specified as a pixel value, ending in 'px', E.g., 50px, the image will distort to fit that exact height. This overrides the `size` property.": "The desired height of the image. If specified as a pixel value, ending in 'px', E.g., 50px, the image will distort to fit that exact height. This overrides the `size` property.", - "Controls how this element is horizontally positioned within its parent.": "Controls how this element is horizontally positioned within its parent.", + "Controls how this element is horizontally positioned within its parent. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls how this element is horizontally positioned within its parent. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", "An Action that will be invoked when the `Image` is tapped or selected. `Action.ShowCard` is not supported.": "An Action that will be invoked when the `Image` is tapped or selected. `Action.ShowCard` is not supported.", "Controls the approximate size of the image. The physical dimensions will vary per host.": "Controls the approximate size of the image. The physical dimensions will vary per host.", "Controls how this `Image` is displayed.": "Controls how this `Image` is displayed.", @@ -100,7 +101,7 @@ "The card elements to render inside the `Container`.": "The card elements to render inside the `Container`.", "An Action that will be invoked when the `Container` is tapped or selected. `Action.ShowCard` is not supported.": "An Action that will be invoked when the `Container` is tapped or selected. `Action.ShowCard` is not supported.", "Style hint for `Container`.": "Style hint for `Container`.", - "Defines how the content should be aligned vertically within the container.": "Defines how the content should be aligned vertically within the container.", + "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.": "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.", "Determines whether the element should bleed through its parent's padding.": "Determines whether the element should bleed through its parent's padding.", "Specifies the background image. Acceptable formats are PNG, JPEG, and GIF": "Specifies the background image. Acceptable formats are PNG, JPEG, and GIF", "Specifies the minimum height of the container in pixels, like `\"80px\"`.": "Specifies the minimum height of the container in pixels, like `\"80px\"`.", @@ -109,7 +110,7 @@ "An Action that will be invoked when the `ColumnSet` is tapped or selected. `Action.ShowCard` is not supported.": "An Action that will be invoked when the `ColumnSet` is tapped or selected. `Action.ShowCard` is not supported.", "Style hint for `ColumnSet`.": "Style hint for `ColumnSet`.", "Specifies the minimum height of the column set in pixels, like `\"80px\"`.": "Specifies the minimum height of the column set in pixels, like `\"80px\"`.", - "Controls the horizontal alignment of the ColumnSet.": "Controls the horizontal alignment of the ColumnSet.", + "Controls the horizontal alignment of the ColumnSet. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls the horizontal alignment of the ColumnSet. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", "The card elements to render inside the `Column`.": "The card elements to render inside the `Column`.", "Determines whether the column should bleed through its parent's padding.": "Determines whether the column should bleed through its parent's padding.", "Describes what to do when an unknown item is encountered or the requires of this or any children can't be met.": "Describes what to do when an unknown item is encountered or the requires of this or any children can't be met.", @@ -118,17 +119,27 @@ "Controls the amount of spacing between this column and the preceding column.": "Controls the amount of spacing between this column and the preceding column.", "An Action that will be invoked when the `Column` is tapped or selected. `Action.ShowCard` is not supported.": "An Action that will be invoked when the `Column` is tapped or selected. `Action.ShowCard` is not supported.", "Style hint for `Column`.": "Style hint for `Column`.", - "Defines how the content should be aligned vertically within the column.": "Defines how the content should be aligned vertically within the column.", + "Defines how the content should be aligned vertically within the column. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.": "Defines how the content should be aligned vertically within the column. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.", "`\"auto\"`, `\"stretch\"`, a number representing relative width of the column in the column group, or in version 1.1 and higher, a specific pixel width, like `\"50px\"`.": "`\"auto\"`, `\"stretch\"`, a number representing relative width of the column in the column group, or in version 1.1 and higher, a specific pixel width, like `\"50px\"`.", "The array of `Fact`'s.": "The array of `Fact`'s.", "The title of the fact.": "The title of the fact.", "The value of the fact.": "The value of the fact.", "The array of `Image` elements to show.": "The array of `Image` elements to show.", "Controls the approximate size of each image. The physical dimensions will vary per host. Auto and stretch are not supported for ImageSet. The size will default to medium if those values are set.": "Controls the approximate size of each image. The physical dimensions will vary per host. Auto and stretch are not supported for ImageSet. The size will default to medium if those values are set.", + "Defines the number of columns in the table, their sizes, and more.": "Defines the number of columns in the table, their sizes, and more.", + "Defines the rows of the table.": "Defines the rows of the table.", + "Specifies whether the first row of the table should be treated as a header row, and be announced as such by accessibility software.": "Specifies whether the first row of the table should be treated as a header row, and be announced as such by accessibility software.", + "Specifies whether grid lines should be displayed.": "Specifies whether grid lines should be displayed.", + "Defines the style of the grid. This property currently only controls the grid's color.": "Defines the style of the grid. This property currently only controls the grid's color.", + "Controls how the content of all cells is horizontally aligned by default. When not specified, horizontal alignment is defined on a per-cell basis.": "Controls how the content of all cells is horizontally aligned by default. When not specified, horizontal alignment is defined on a per-cell basis.", + "Controls how the content of all cells is vertically aligned by default. When not specified, vertical alignment is defined on a per-cell basis.": "Controls how the content of all cells is vertically aligned by default. When not specified, vertical alignment is defined on a per-cell basis.", "The URL to open.": "The URL to open.", "Label for button or link that represents this action.": "Label for button or link that represents this action.", "Optional icon to be shown on the action in conjunction with the title. Supports data URI in version 1.2+": "Optional icon to be shown on the action in conjunction with the title. Supports data URI in version 1.2+", + "A unique identifier associated with this Action.": "A unique identifier associated with this Action.", "Controls the style of an Action, which influences how the action is displayed, spoken, etc.": "Controls the style of an Action, which influences how the action is displayed, spoken, etc.", + "Defines text that should be displayed to the end user as they hover the mouse over the action, and read when using narration software.": "Defines text that should be displayed to the end user as they hover the mouse over the action, and read when using narration software.", + "Determines whether the action should be enabled.": "Determines whether the action should be enabled.", "Initial data that input fields will be combined with. These are essentially ‘hidden’ properties.": "Initial data that input fields will be combined with. These are essentially ‘hidden’ properties.", "Controls which inputs are associated with the submit action.": "Controls which inputs are associated with the submit action.", "The Adaptive Card to show. Inputs in ShowCards will not be submitted if the submit button is located on a parent card. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details.": "The Adaptive Card to show. Inputs in ShowCards will not be submitted if the submit button is located on a parent card. See https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation for more details.", @@ -188,8 +199,10 @@ "* %s: %s\n": "* %s: %s\n", "* %s : %s\n": "* %s : %s\n", "* %s:": "* %s:", - "Causes this element to be dropped immediately when unknown elements are encountered. The unknown element doesn't bubble up any higher.": "Causes this element to be dropped immediately when unknown elements are encountered. The unknown element doesn't bubble up any higher.", + "This is the default style which provide no special styling or behavior.": "This is the default style which provide no special styling or behavior.", "%s: %s": "%s: %s", + "The TextBlock is a heading. This will apply the heading styling defaults and mark the text block as a heading for accessiblity.": "The TextBlock is a heading. This will apply the heading styling defaults and mark the text block as a heading for accessiblity.", + "Causes this element to be dropped immediately when unknown elements are encountered. The unknown element doesn't bubble up any higher.": "Causes this element to be dropped immediately when unknown elements are encountered. The unknown element doesn't bubble up any higher.", "The height of the container will be determined by the height of its contents.": "The height of the container will be determined by the height of its contents.", "The container will stretch its height to the available remaining height of the parent container.": "The container will stretch its height to the available remaining height of the parent container.", "Image will scale down to fit if needed, but will not scale up to fill the area.": "Image will scale down to fit if needed, but will not scale up to fill the area.", @@ -203,21 +216,19 @@ "Action is displayed with a destructive style (typically the button becomes red)": "Action is displayed with a destructive style (typically the button becomes red)", "Inputs on the current card and any parent cards will be validated and submitted for this Action.": "Inputs on the current card and any parent cards will be validated and submitted for this Action.", "None of the inputs will be validated or submitted for this Action.": "None of the inputs will be validated or submitted for this Action.", + "Display input text with password masking.": "Display input text with password masking.", "The background image covers the entire width of the container. Its aspect ratio is preserved. Content may be clipped if the aspect ratio of the image doesn't match the aspect ratio of the container. **verticalAlignment** is respected (**horizontalAlignment** is meaningless since it's stretched width). This is the default mode and is the equivalent to the current model.": "The background image covers the entire width of the container. Its aspect ratio is preserved. Content may be clipped if the aspect ratio of the image doesn't match the aspect ratio of the container. **verticalAlignment** is respected (**horizontalAlignment** is meaningless since it's stretched width). This is the default mode and is the equivalent to the current model.", "The background image isn't stretched. It is repeated in the x axis as many times as necessary to cover the container's width. **verticalAlignment** is honored (default is **top**), **horizontalAlignment** is ignored.": "The background image isn't stretched. It is repeated in the x axis as many times as necessary to cover the container's width. **verticalAlignment** is honored (default is **top**), **horizontalAlignment** is ignored.", "The background image isn't stretched. It is repeated in the y axis as many times as necessary to cover the container's height. **verticalAlignment** is ignored, **horizontalAlignment** is honored (default is **left**).": "The background image isn't stretched. It is repeated in the y axis as many times as necessary to cover the container's height. **verticalAlignment** is ignored, **horizontalAlignment** is honored (default is **left**).", "The background image isn't stretched. It is repeated first in the x axis then in the y axis as many times as necessary to cover the entire container. Both **horizontalAlignment** and **verticalAlignment** are honored (defaults are **left** and **top**).": "The background image isn't stretched. It is repeated first in the x axis then in the y axis as many times as necessary to cover the entire container. Both **horizontalAlignment** and **verticalAlignment** are honored (defaults are **left** and **top**).", - "The style of this TextBlock for accessibility purposes.": "The style of this TextBlock for accessibility purposes.", - "Defines text that should be displayed to the end user as they hover the mouse over the action, and read when using narration software.": "Defines text that should be displayed to the end user as they hover the mouse over the action, and read when using narration software.", - "This is the default style. The TextBlock behaves as standard content and will be read as such by accessibility software.": "This is the default style. The TextBlock behaves as standard content and will be read as such by accessibility software.", - "The TextBlock behaves as a heading which impacts how accessibility software handles navigation and narration.": "The TextBlock behaves as a heading which impacts how accessibility software handles navigation and narration.", - "This is the default style which provide no special styling or behavior.": "This is the default style which provide no special styling or behavior.", - "The TextBlock is a heading. This will apply the heading styling defaults and mark the text block as a heading for accessiblity.": "The TextBlock is a heading. This will apply the heading styling defaults and mark the text block as a heading for accessiblity.", - "A unique identifier associated with this Action.": "A unique identifier associated with this Action.", - "Determines whether the action should be enabled.": "Determines whether the action should be enabled.", - "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls the horizontal text alignment. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", - "Controls how this element is horizontally positioned within its parent. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls how this element is horizontally positioned within its parent. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", - "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.": "Defines how the content should be aligned vertically within the container. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.", - "Controls the horizontal alignment of the ColumnSet. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.": "Controls the horizontal alignment of the ColumnSet. When not specified, the value of horizontalAlignment is inherited from the parent container. If no parent container has horizontalAlignment set, it defaults to Left.", - "Defines how the content should be aligned vertically within the column. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top.": "Defines how the content should be aligned vertically within the column. When not specified, the value of verticalContentAlignment is inherited from the parent container. If no parent container has verticalContentAlignment set, it defaults to Top." + "Determines whether the action should be displayed as a button or in the overflow menu.": "Determines whether the action should be displayed as a button or in the overflow menu.", + "Action is displayed as a button.": "Action is displayed as a button.", + "Action is placed in an overflow menu (typically a popup menu under a `...` button).": "Action is placed in an overflow menu (typically a popup menu under a `...` button).", + "Represents a cell within a row of a Table element.": "Represents a cell within a row of a Table element.", + "When `true` content in this Adaptive Card should be presented right to left. When 'false' content in this Adaptive Card should be presented left to right. If unset, the default platform behavior will apply.": "When `true` content in this Adaptive Card should be presented right to left. When 'false' content in this Adaptive Card should be presented left to right. If unset, the default platform behavior will apply.", + "When `true` content in this column should be presented right to left. When 'false' content in this column should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.": "When `true` content in this column should be presented right to left. When 'false' content in this column should be presented left to right. When unset layout direction will inherit from parent container or column. If unset in all ancestors, the default platform behavior will apply.", + "The card elements to render inside the `TableCell`.": "The card elements to render inside the `TableCell`.", + "An Action that will be invoked when the `TableCell` is tapped or selected. `Action.ShowCard` is not supported.": "An Action that will be invoked when the `TableCell` is tapped or selected. `Action.ShowCard` is not supported.", + "Style hint for `TableCell`.": "Style hint for `TableCell`.", + "Allows users to filter choices in a choice set.": "Allows users to filter choices in a choice set." } \ No newline at end of file diff --git a/source/nodejs/ac-typed-schema/src/markdown/style.ts b/source/nodejs/ac-typed-schema/src/markdown/style.ts index 0ffa0da3ea..0585cc0fc8 100644 --- a/source/nodejs/ac-typed-schema/src/markdown/style.ts +++ b/source/nodejs/ac-typed-schema/src/markdown/style.ts @@ -48,7 +48,7 @@ export function getHeaderMarkdown(content, level) { level = defaultValueHelper(level, 2); var md = ''; - for (var i = 0; i < level; ++i) { + for (let i = 0; i < level; ++i) { md += '#'; } diff --git a/source/nodejs/ac-typed-schema/src/typed-schema.ts b/source/nodejs/ac-typed-schema/src/typed-schema.ts index 59a06071b1..c60a474f49 100644 --- a/source/nodejs/ac-typed-schema/src/typed-schema.ts +++ b/source/nodejs/ac-typed-schema/src/typed-schema.ts @@ -37,7 +37,7 @@ function isObjectEmpty(obj: any) { if (!obj) { return true; } - for (var key in obj) { + for (let key in obj) { return false; } return true; @@ -114,7 +114,7 @@ class Transformer { } if (!isObjectEmpty(this._implementationsOf)) { - for (var key in this._implementationsOf) { + for (let key in this._implementationsOf) { var anyOfValue = []; @@ -136,7 +136,7 @@ class Transformer { } if (!isObjectEmpty(this._extendables)) { - for (var key in this._extendables) { + for (let key in this._extendables) { answer.definitions["Extendable." + key] = this._extendables[key]; } } @@ -358,7 +358,7 @@ class Transformer { private toCaseInsensitiveRegex(enumValue: string) { var answer = ""; - for (var i = 0; i < enumValue.length; i++) { + for (let i = 0; i < enumValue.length; i++) { var c = enumValue.charAt(i); answer += `[${c.toLowerCase()}|${c.toUpperCase()}]`; } diff --git a/source/nodejs/ac-typed-schema/tsconfig.json b/source/nodejs/ac-typed-schema/tsconfig.json index ebc4163305..8c5db870c7 100644 --- a/source/nodejs/ac-typed-schema/tsconfig.json +++ b/source/nodejs/ac-typed-schema/tsconfig.json @@ -5,7 +5,7 @@ "lib": [ "es2015" ], - "outDir": "./lib", + "outDir": "./lib", "moduleResolution": "node", "noImplicitAny": false, "sourceMap": true, diff --git a/source/nodejs/aclint/.eslintignore b/source/nodejs/aclint/.eslintignore deleted file mode 100644 index 4175924eca..0000000000 --- a/source/nodejs/aclint/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -dist - diff --git a/source/nodejs/aclint/.eslintrc b/source/nodejs/aclint/.eslintrc deleted file mode 100644 index 11643ef332..0000000000 --- a/source/nodejs/aclint/.eslintrc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "root": true, - "parser": "@typescript-eslint/parser", - "plugins": [ - "@typescript-eslint" - ], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended" - ] -} diff --git a/source/nodejs/aclint/.vscode/launch.json b/source/nodejs/aclint/.vscode/launch.json deleted file mode 100644 index d366745c15..0000000000 --- a/source/nodejs/aclint/.vscode/launch.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "type": "node", - "request": "launch", - "name": "Launch scenarios", - "skipFiles": [ - "/**" - ], - "program": "${workspaceFolder}\\lib\\src\\index.js", - "args": ["c:\\ac\\samples\\v1.0\\Scenarios"], - "preLaunchTask": "tsc: build - tsconfig.json", - "outFiles": [ - "${workspaceFolder}/lib/**/*.js" - ] - }, - { - "type": "node", - "request": "launch", - "name": "Launch failure", - "skipFiles": [ - "/**" - ], - "program": "${workspaceFolder}\\dist\\src\\index.js", - "args": ["c:\\ac\\samples\\v1.2\\Elements\\Column.Fallback.json"], - "preLaunchTask": "tsc: build - tsconfig.json", - "outFiles": [ - "${workspaceFolder}/lib/**/*.js" - ] - } - ] -} diff --git a/source/nodejs/aclint/package-lock.json b/source/nodejs/aclint/package-lock.json deleted file mode 100644 index 49c268aa3a..0000000000 --- a/source/nodejs/aclint/package-lock.json +++ /dev/null @@ -1,1190 +0,0 @@ -{ - "name": "aclint", - "version": "0.2.1", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", - "dev": true - }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", - "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==", - "dev": true - }, - "@types/node": { - "version": "13.13.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.14.tgz", - "integrity": "sha512-Az3QsOt1U/K1pbCQ0TXGELTuTkPLOiFIQf3ILzbOyo0FqgV9SxRnxbxM5QlAveERZMHpZY+7u3Jz2tKyl+yg6g==" - }, - "@types/yargs": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.6.1.tgz", - "integrity": "sha512-06lfjo76naNeOMDl+mWG9Fh/a0UHKLGhin+mGaIw72FUMbMGBkdi/FEJmgEDzh4eE73KIYzHWvOCYJ0ak7nrJQ==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "3.6.1", - "debug": "^4.1.1", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.6.1.tgz", - "integrity": "sha512-oS+hihzQE5M84ewXrTlVx7eTgc52eu+sVmG7ayLfOhyZmJ8Unvf3osyFQNADHP26yoThFfbxcibbO0d2FjnYhg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/types": "3.6.1", - "@typescript-eslint/typescript-estree": "3.6.1", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.6.1.tgz", - "integrity": "sha512-SLihQU8RMe77YJ/jGTqOt0lMq7k3hlPVfp7v/cxMnXA9T0bQYoMDfTsNgHXpwSJM1Iq2aAJ8WqekxUwGv5F67Q==", - "dev": true, - "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "3.6.1", - "@typescript-eslint/types": "3.6.1", - "@typescript-eslint/typescript-estree": "3.6.1", - "eslint-visitor-keys": "^1.1.0" - } - }, - "@typescript-eslint/types": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.6.1.tgz", - "integrity": "sha512-NPxd5yXG63gx57WDTW1rp0cF3XlNuuFFB5G+Kc48zZ+51ZnQn9yjDEsjTPQ+aWM+V+Z0I4kuTFKjKvgcT1F7xQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.6.1.tgz", - "integrity": "sha512-G4XRe/ZbCZkL1fy09DPN3U0mR6SayIv1zSeBNquRFRk7CnVLgkC2ZPj8llEMJg5Y8dJ3T76SvTGtceytniaztQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "3.6.1", - "@typescript-eslint/visitor-keys": "3.6.1", - "debug": "^4.1.1", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.6.1.tgz", - "integrity": "sha512-qC8Olwz5ZyMTZrh4Wl3K4U6tfms0R/mzU4/5W3XeUZptVraGVmbptJbn6h2Ey6Rb3hOs3zWoAUebZk8t47KGiQ==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "acorn": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", - "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", - "dev": true - }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true - }, - "adaptivecards": { - "version": "1.3.0-alpha1", - "resolved": "https://registry.npmjs.org/adaptivecards/-/adaptivecards-1.3.0-alpha1.tgz", - "integrity": "sha512-V6dOox+Kzpu0NUb14FErW5JGBDLtxL3JimdA9D2scIP5O2g9t5eO/auD2RTFaag2pzBLGKBKbe06koeh1ml9RA==" - }, - "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.4.0.tgz", - "integrity": "sha512-gU+lxhlPHu45H3JkEGgYhWhkR9wLHHEXC9FbWFnTlEkbKyZKWgWRLgf61E8zWmBuI6g5xKBph9ltg3NtZMVF8g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "eslint-scope": "^5.1.0", - "eslint-utils": "^2.0.0", - "eslint-visitor-keys": "^1.2.0", - "espree": "^7.1.0", - "esquery": "^1.2.0", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "eslint-scope": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", - "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "espree": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.1.0.tgz", - "integrity": "sha512-dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw==", - "dev": true, - "requires": { - "acorn": "^7.2.0", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.2.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", - "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true - }, - "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "typescript": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", - "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } -} diff --git a/source/nodejs/aclint/package.json b/source/nodejs/aclint/package.json deleted file mode 100644 index c1e146bd97..0000000000 --- a/source/nodejs/aclint/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "aclint", - "version": "0.2.1", - "description": "Adaptive Cards Linting Tool", - "private": true, - "main": "dist/src/index.js", - "bin": { - "aclint": "./dist/src/index.js" - }, - "scripts": { - "build": "tsc", - "test": "echo \"Error: no test specified\" && exit 1", - "lint": "eslint . --ext ts" - }, - "author": "paulcam", - "license": "MIT", - "dependencies": { - "@types/node": "^13.9.3", - "adaptivecards": "^1.3.0-alpha.4", - "chalk": "^3.0.0", - "yargs": "^15.3.1" - }, - "devDependencies": { - "@types/yargs": "^15.0.4", - "@typescript-eslint/eslint-plugin": "^3.4.0", - "@typescript-eslint/parser": "^3.4.0", - "eslint": "^7.3.1", - "typescript": "^4.2.3" - } -} diff --git a/source/nodejs/aclint/src/index.ts b/source/nodejs/aclint/src/index.ts deleted file mode 100644 index 2a603a3cbf..0000000000 --- a/source/nodejs/aclint/src/index.ts +++ /dev/null @@ -1,256 +0,0 @@ -#!/usr/bin/env node - -import * as yargs from 'yargs'; -import * as fs from 'fs'; -import * as path from 'path'; -import * as ac from 'adaptivecards'; -import * as chalk from 'chalk'; - -const argv = yargs.options({ - v: { type: 'boolean', default: false, alias: "verbose"} -}) - .usage('Usage: $0 [options]') - .help('h') - .alias('h', 'help') - .argv; - -const verbose : boolean = argv.v; - -enum TestState { - Skipped, - Passed, - Mixed, - Failed, - __LENGTH // must be last item in enum -} - -/** -* Generate a reasonable icon to represent a TestState -* @param {TestState} state - State to map to icon. -* @return {string} string containing appropriate icon -*/ -function iconFromTestState(state: TestState) : string { - switch(state) { - case TestState.Passed: { - return "✔"; - } - case TestState.Failed: { - return "❌"; - } - case TestState.Mixed: { - return "〰"; - } - case TestState.Skipped: { - return "⛔"; - } - default: { - throw "Unexpected TestState"; - } - } -} - -class TestResult -{ - constructor(public filename: string, public result: TestState, public validationErrors?: ac.ValidationFailure[], public error? : Error) { - if (error && result != TestState.Failed) { - throw "invalid pass state"; - } - } -} - -/** -* Run tests on supplied filesystem path. -* @summary If supplied item indicates a file, test the file. If item indicates a directory, recursively test items within it. -* @param {string} fsitem - Path to test -* @return {Promise} Promise for results -*/ -async function testFileOrDir(fsitem : string) : Promise { - return new Promise((resolve, reject) => { - setImmediate(() => { - // determine if fsitem is a dir or a file, and test accordingly - fs.promises.stat(fsitem).then(async (fileNode) => { - if (fileNode.isDirectory()) { - if (verbose) console.log(chalk.grey(`${fsitem} is a directory`)); - return testDir(fsitem); - } else { - if (verbose) console.log(chalk.grey(`${fsitem} is a file`)); - return testFile(fsitem); - } - }).then((results) => { - // cast as TestResult[] since testFile returns a scalar - resolve(results as TestResult[]); - }).catch((err) => { - reject(err); - }); - }); - }); -} - -/** -* Run tests on an individual file -* @summary Automatically skips non-json files. Attempts to parse the file and then supplies warnings and errors back out -* @param {string} filename - File to test -* @return {Promise} Promise for file's result -*/ -async function testFile(filename : string) : Promise { - return new Promise((resolve) => { - setImmediate(() => { - // only test files that end in .json - if (path.extname(filename) !== ".json") { - if (verbose) console.log(chalk.grey(`skipping non-card file: ${filename}`)); - resolve(new TestResult(filename, TestState.Skipped)); - return; - } - if (verbose) console.log(chalk.grey(`Testing ${filename}`)); - - // load and test card - fs.promises.readFile(filename).then((cardBuffer) => { - let cardJson = JSON.parse(cardBuffer.toString()); - let testCard = new ac.AdaptiveCard(); - testCard.parse(cardJson); - let validateProperties = testCard.validateProperties(); - return validateProperties.failures; - }).then((validationErrors) => { - // determine pass state from warnings (errors are caught in .catch() below) - let testState : TestState; - if (validationErrors.length === 0) { - testState = TestState.Passed; - } else { - testState = TestState.Mixed; - } - resolve(new TestResult(filename, testState, validationErrors)); - }).catch((err) => { - resolve(new TestResult(filename, TestState.Failed, [], err)); - }); - }); - }); -} - -/** -* Recursively test files within a directory -* @param {string} dirname - Directory to test -* @return {Promise} Promise for results -*/ -async function testDir(dirname : string) : Promise { - return new Promise((resolve, reject) => { - setImmediate(() => { - if (verbose) console.log(chalk.grey(`Testing directory: ${dirname}`)); - - // enumerate items in the supplied directory - fs.promises.readdir(dirname).then((currDir) => { - let futureResults : Promise[] = []; - - // for every item in the current dir - currDir.forEach(item => { - // kick off test of item - let currentItem = path.join(dirname, item); - if (verbose) console.log(chalk.grey(currentItem)); - futureResults.push(testFileOrDir(path.normalize(currentItem))); - }); - return futureResults; - }).then((futureResults) => { - // wait for tests to finish - return Promise.all(futureResults); - }).then((results) => { - // merge result sets - let finalResults : TestResult[] = []; - results.forEach((result) => { - finalResults = finalResults.concat(result); - }); - resolve(finalResults); - }).catch((err) => { - reject(err); - }); - }); - }); -} - -/** -* Extracts work to do from commandline, then kicks off tests -* @return {Promise} Promise for results -*/ -async function testItemsInArgv() : Promise { - return new Promise(resolve => { - setImmediate(() => { - let futureResults : Promise[] = []; - - // iterate through paths passed on commandline - argv._.forEach(fileOrPath => { - // and then kick off tests for same - futureResults.push(testFileOrDir(fileOrPath as string)); - }); - - // once all of the tests have completed, merge the results into a single array - Promise.all(futureResults).then((results) => { - let finalResults : TestResult[] = []; - results.forEach((result) => { - finalResults = finalResults.concat(result); - }); - resolve(finalResults); - }).catch((err) => { - console.log(err.message); - }); - }); - }); -} - -async function main() -{ - return testItemsInArgv(); -} - -main().then((testResults) => { - if (testResults.length === 0) { - console.log("No files were tested."); - } - - // testResultCount tracks count of results per result type - let testResultCount : number[] = []; - for (let i = 0; i < TestState.__LENGTH; ++i) { - testResultCount[i] = 0; - } - - // sort results to put skipped/passed results at the top of output - testResults.sort((left, right) => { - return left.result - right.result; - }); - - for (let testResult of testResults) { - // track result count - testResultCount[testResult.result]++; - - let fileString = `${iconFromTestState(testResult.result)} ${testResult.filename}`; - if (testResult.result === TestState.Passed) { - console.log(chalk.grey(fileString)); - } else { - console.log(fileString); - } - - // print error state for failed tests - if (testResult.error) { - console.log(chalk.red(`▶\tERROR: ${testResult.error.message}`)); - } - - // print any warnings associated with this result - if (testResult.validationErrors?.length) { - testResult.validationErrors.forEach((errorCollections) => { - errorCollections.errors.forEach((error) => { - console.log(chalk.yellow(`▶\twarning: ${error.message}`)); - }); - }); - } - - // newline to make it easier to read non-passing tests - if (testResult.result !== TestState.Passed) { - console.log(); - } - } - - // finally, print summary - for (let i = 0; i < TestState.__LENGTH; ++i) { - console.log(`${TestState[i]} ${iconFromTestState(i as TestState)}:\t${testResultCount[i]}`); - } - console.log(`Total ⬡:\t${testResults.length}`); -}).catch((err) => { - console.log(chalk.red("Unhandled error: " + err)); -}); diff --git a/source/nodejs/aclint/tsconfig.json b/source/nodejs/aclint/tsconfig.json deleted file mode 100644 index e8cc49875d..0000000000 --- a/source/nodejs/aclint/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "alwaysStrict": true, - "strict": true, - "composite": true, - "outDir": "./dist", - "target": "ES6", - "module": "commonjs" - }, - "files": ["./src/index.ts" ] -} diff --git a/source/nodejs/adaptivecards-aaf-testapp/package-lock.json b/source/nodejs/adaptivecards-aaf-testapp/package-lock.json index 4807091fbc..04040b9605 100644 --- a/source/nodejs/adaptivecards-aaf-testapp/package-lock.json +++ b/source/nodejs/adaptivecards-aaf-testapp/package-lock.json @@ -1,8 +1,6496 @@ { "name": "adaptivecards-aaf-testapp", - "version": "0.1.1", - "lockfileVersion": 1, + "version": "0.2.0-alpha.0", + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "adaptivecards-aaf-testapp", + "version": "0.2.0-alpha.0", + "license": "MIT", + "devDependencies": { + "html-webpack-plugin": "^5.3.2", + "markdown-it": "^8.4.0", + "mini-css-extract-plugin": "^2.1.0", + "rimraf": "^2.6.2", + "typescript": "^4.2.3", + "webpack": "^5.47.0", + "webpack-cli": "^4.7.2", + "webpack-dev-server": "^3.11.2" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz", + "integrity": "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@types/eslint": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", + "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, + "node_modules/@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", + "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz", + "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "14.14.35", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", + "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.4.tgz", + "integrity": "sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==", + "dev": true, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.3.0.tgz", + "integrity": "sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w==", + "dev": true, + "dependencies": { + "envinfo": "^7.7.3" + }, + "peerDependencies": { + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.1.tgz", + "integrity": "sha512-4vSVUiOPJLmr45S8rMGy7WDvpWxfFxfP/Qx/cxZFCfvoypTYpPPL1X8VIZMe0WTA+Jr7blUxwUSEZNkjoMTgSw==", + "dev": true, + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true, + "peerDependencies": { + "ajv": ">=5.0.0" + } + }, + "node_modules/ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001247", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001247.tgz", + "integrity": "sha512-4rS7co+7+AoOSPRPOPUt5/GdaqZc0EsUpWk66ofE3HJTAajUK2Ss2VwoNzVN69ghg8lYYlh0an0Iy4LIHHo9UQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/css-select": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", + "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^5.0.0", + "domhandler": "^4.2.0", + "domutils": "^2.6.0", + "nth-check": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", + "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "dependencies": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "node_modules/detect-node": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.5.tgz", + "integrity": "sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==", + "dev": true + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "node_modules/dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "dev": true, + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", + "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", + "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.3.789", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.789.tgz", + "integrity": "sha512-lK4xn6C6ZF1kgLaC/EhOtC1MSKENExj3rMwGVnBTfHW81Z/Hb1Rge5YaWawN/YOXy3xCaESuE4KWSD50kOZ9rQ==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", + "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enhanced-resolve/node_modules/graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/es-module-lexer": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", + "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", + "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", + "dev": true, + "dependencies": { + "original": "^1.0.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, + "node_modules/faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/follow-redirects": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", + "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "bundleDependencies": [ + "node-pre-gyp" + ], + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/fsevents/node_modules/abbrev": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/ansi-regex": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/are-we-there-yet": { + "version": "1.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/fsevents/node_modules/balanced-match": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/fsevents/node_modules/chownr": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/code-point-at": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/console-control-strings": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/core-util-is": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/debug": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/fsevents/node_modules/deep-extend": { + "version": "0.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/fsevents/node_modules/delegates": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/detect-libc": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/fsevents/node_modules/fs-minipass": { + "version": "1.2.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "minipass": "^2.2.1" + } + }, + "node_modules/fsevents/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/gauge": { + "version": "2.7.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/fsevents/node_modules/glob": { + "version": "7.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/fsevents/node_modules/has-unicode": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/iconv-lite": { + "version": "0.4.24", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/ignore-walk": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/fsevents/node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/fsevents/node_modules/inherits": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/ini": { + "version": "1.3.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/fsevents/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/minimatch": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/fsevents/node_modules/minimist": { + "version": "0.0.8", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/minipass": { + "version": "2.3.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/fsevents/node_modules/minizlib": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "minipass": "^2.2.1" + } + }, + "node_modules/fsevents/node_modules/mkdirp": { + "version": "0.5.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/fsevents/node_modules/ms": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/needle": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/fsevents/node_modules/node-pre-gyp": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/fsevents/node_modules/nopt": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/fsevents/node_modules/npm-bundled": { + "version": "1.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/npm-packlist": { + "version": "1.4.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "node_modules/fsevents/node_modules/npmlog": { + "version": "4.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/fsevents/node_modules/number-is-nan": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/object-assign": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/once": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/fsevents/node_modules/os-homedir": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/os-tmpdir": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/osenv": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/fsevents/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/process-nextick-args": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/rc": { + "version": "1.2.8", + "dev": true, + "inBundle": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "optional": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/fsevents/node_modules/rc/node_modules/minimist": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/fsevents/node_modules/rimraf": { + "version": "2.6.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/fsevents/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/sax": { + "version": "1.2.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/semver": { + "version": "5.7.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/fsevents/node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/signal-exit": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/fsevents/node_modules/string-width": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/strip-ansi": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/strip-json-comments": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fsevents/node_modules/tar": { + "version": "4.4.8", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/fsevents/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/fsevents/node_modules/wide-align": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/fsevents/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/fsevents/node_modules/yallist": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "optional": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", + "dev": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "node_modules/html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/html-minifier-terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/html-minifier-terser/node_modules/terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/html-minifier-terser/node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/html-webpack-plugin": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.3.2.tgz", + "integrity": "sha512-HvB33boVNCz2lTyBsSiMffsJ+m0YLIQ+pskblXgN9fnjS1BgEcuAfdInfXfGrkdXV406k9FiDi86eVCDBgJOyQ==", + "dev": true, + "dependencies": { + "@types/html-minifier-terser": "^5.0.0", + "html-minifier-terser": "^5.0.1", + "lodash": "^4.17.21", + "pretty-error": "^3.0.4", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "webpack": "^5.20.0" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/http-parser-js": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", + "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "dependencies": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "dependencies": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "dependencies": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", + "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-worker": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz", + "integrity": "sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "node_modules/killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/markdown-it": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", + "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "entities": "~1.1.1", + "linkify-it": "^2.0.0", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", + "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", + "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "dev": true, + "dependencies": { + "mime-db": "1.46.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.1.0.tgz", + "integrity": "sha512-SV1GgjMcfqy6hW07rAniUbQE4qS3inh3v4rZEUySkPRWy3vMbS3jUCjMOvNI4lUnDlQYJEmuUqKktTCNY5koFQ==", + "dev": true, + "dependencies": { + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "node_modules/nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true, + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/node-releases": { + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nth-check": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", + "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "dependencies": { + "url-parse": "^1.4.3" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", + "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "dependencies": { + "retry": "^0.12.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pretty-error": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-3.0.4.tgz", + "integrity": "sha512-ytLFLfv1So4AO1UkoBF6GXQgJRaKbiSiGFICaOPNwQ3CMvBvXpLRubeQWyPGnsbV/t9ml9qto6IeCsho0aEvwQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^2.0.6" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "node_modules/renderkid": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "dev": true, + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" + } + }, + "node_modules/renderkid/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/renderkid/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "node_modules/selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "dev": true, + "dependencies": { + "node-forge": "^0.10.0" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", + "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^3.4.0", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/sockjs-client": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz", + "integrity": "sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==", + "dev": true, + "dependencies": { + "debug": "^3.2.6", + "eventsource": "^1.0.7", + "faye-websocket": "^0.11.3", + "inherits": "^2.0.4", + "json3": "^3.3.3", + "url-parse": "^1.4.7" + } + }, + "node_modules/sockjs-client/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/sockjs-client/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "dependencies": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/spdy-transport/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/spdy-transport/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/spdy/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/spdy/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tapable": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", + "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", + "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz", + "integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==", + "dev": true, + "dependencies": { + "jest-worker": "^27.0.2", + "p-limit": "^3.1.0", + "schema-utils": "^3.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", + "dev": true + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", + "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", + "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/watchpack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", + "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webpack": { + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.47.0.tgz", + "integrity": "sha512-soKLGwcUM1R3YEbJhJNiZzy7T43TnI7ENda/ywfDp9G1mDlDTpO+qfc8I5b0AzMr9xM3jyvQ0n7ctJyiXuXW6Q==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.50", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.8.0", + "es-module-lexer": "^0.7.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.4", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.2.0", + "webpack-sources": "^3.0.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.2.tgz", + "integrity": "sha512-mEoLmnmOIZQNiRl0ebnjzQ74Hk0iKS5SiEEnpq3dRezoyR3yPaeQZCMCe+db4524pj1Pd5ghZXjT41KLzIhSLw==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.0.4", + "@webpack-cli/info": "^1.3.0", + "@webpack-cli/serve": "^1.5.1", + "colorette": "^1.2.1", + "commander": "^7.0.0", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "v8-compile-cache": "^2.2.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-cli/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/webpack-cli/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/webpack-cli/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-cli/node_modules/import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-cli/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "node_modules/webpack-cli/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "dev": true, + "dependencies": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", + "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", + "dev": true, + "dependencies": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.8", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "sockjs-client": "^1.5.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 6.11.5" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/webpack-dev-server/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "dependencies": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.0.1.tgz", + "integrity": "sha512-LkBxiXJ3tTuhLaS5gz6D6l77Et8mPWlghAe7bbnmi2PyN1CtkiL/YitR+I0pn9PtBC88Irqgg6F9dBJh8+sJRQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/webpack/node_modules/graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/ws": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, "dependencies": { "@discoveryjs/json-ext": { "version": "0.5.3", @@ -220,7 +6708,8 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.4.tgz", "integrity": "sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==", - "dev": true + "dev": true, + "requires": {} }, "@webpack-cli/info": { "version": "1.3.0", @@ -235,7 +6724,8 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.1.tgz", "integrity": "sha512-4vSVUiOPJLmr45S8rMGy7WDvpWxfFxfP/Qx/cxZFCfvoypTYpPPL1X8VIZMe0WTA+Jr7blUxwUSEZNkjoMTgSw==", - "dev": true + "dev": true, + "requires": {} }, "@xtuc/ieee754": { "version": "1.2.0", @@ -281,13 +6771,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true + "dev": true, + "requires": {} }, "ajv-keywords": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", - "dev": true + "dev": true, + "requires": {} }, "ansi-colors": { "version": "3.2.4", @@ -2031,24 +8523,24 @@ "dev": true, "optional": true }, - "string-width": { - "version": "1.0.2", + "string_decoder": { + "version": "1.1.1", "bundled": true, "dev": true, "optional": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "safe-buffer": "~5.1.0" } }, - "string_decoder": { - "version": "1.1.1", + "string-width": { + "version": "1.0.2", "bundled": true, "dev": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-ansi": { @@ -2986,7 +9478,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "fast-deep-equal": { "version": "3.1.3", @@ -4276,6 +10769,15 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -4287,15 +10789,6 @@ "strip-ansi": "^5.1.0" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", @@ -4381,7 +10874,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "fast-deep-equal": { "version": "3.1.3", @@ -4597,9 +11091,9 @@ } }, "url-parse": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", - "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", + "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", "dev": true, "requires": { "querystringify": "^2.1.1", @@ -4714,7 +11208,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "fast-deep-equal": { "version": "3.1.3", @@ -5123,9 +11618,9 @@ "dev": true }, "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", "dev": true, "requires": { "async-limiter": "~1.0.0" diff --git a/source/nodejs/adaptivecards-aaf-testapp/package.json b/source/nodejs/adaptivecards-aaf-testapp/package.json index 0f2d86f054..d67a25bc8b 100644 --- a/source/nodejs/adaptivecards-aaf-testapp/package.json +++ b/source/nodejs/adaptivecards-aaf-testapp/package.json @@ -1,6 +1,6 @@ { "name": "adaptivecards-aaf-testapp", - "version": "0.1.1", + "version": "0.2.0-alpha.0", "description": "AAF JavaScript Runtime test application", "author": "AdaptiveCards", "license": "MIT", @@ -11,17 +11,7 @@ "start": "webpack-dev-server --open", "release": "npm run build" }, - "devDependencies": { - "html-webpack-plugin": "^5.3.2", - "markdown-it": "^8.4.0", - "mini-css-extract-plugin": "^2.1.0", - "rimraf": "^2.6.2", - "typescript": "^4.2.3", - "webpack": "^5.47.0", - "webpack-cli": "^4.7.2", - "webpack-dev-server": "^3.11.2" - }, "dependencies": { - "adaptivecards": "^2.10.0-beta.1" + "adaptivecards": "^3.0.0-beta.1" } } diff --git a/source/nodejs/adaptivecards-controls/package-lock.json b/source/nodejs/adaptivecards-controls/package-lock.json index f3073d2f5d..7333b55fdb 100644 --- a/source/nodejs/adaptivecards-controls/package-lock.json +++ b/source/nodejs/adaptivecards-controls/package-lock.json @@ -1,8 +1,5615 @@ { "name": "adaptivecards-controls", - "version": "0.9.0-beta.1", - "lockfileVersion": 1, + "version": "0.10.0-alpha.0", + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "adaptivecards-controls", + "version": "0.10.0-alpha.0", + "license": "MIT", + "devDependencies": { + "dts-generator": "^3.0.0", + "rimraf": "^3.0.2", + "ts-loader": "^7.0.5", + "typescript": "^4.2.3", + "webpack": "^5.47.0", + "webpack-cli": "^4.7.2", + "webpack-dev-server": "^3.11.2" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz", + "integrity": "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@types/eslint": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", + "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, + "node_modules/@types/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz", + "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.4.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.4.tgz", + "integrity": "sha512-BH/jX0HjzElFCQdAwaEMwuGBQwm6ViDZ00X6LKdnRRmGWOzkWugEH4+7a0BwfHQ8DfPPCSd/mdsm3Nu8FKFu0w==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.4.tgz", + "integrity": "sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==", + "dev": true, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.3.0.tgz", + "integrity": "sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w==", + "dev": true, + "dependencies": { + "envinfo": "^7.7.3" + }, + "peerDependencies": { + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.1.tgz", + "integrity": "sha512-4vSVUiOPJLmr45S8rMGy7WDvpWxfFxfP/Qx/cxZFCfvoypTYpPPL1X8VIZMe0WTA+Jr7blUxwUSEZNkjoMTgSw==", + "dev": true, + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true, + "peerDependencies": { + "ajv": ">=5.0.0" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001247", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001247.tgz", + "integrity": "sha512-4rS7co+7+AoOSPRPOPUt5/GdaqZc0EsUpWk66ofE3HJTAajUK2Ss2VwoNzVN69ghg8lYYlh0an0Iy4LIHHo9UQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "dependencies": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "node_modules/dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "dev": true, + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/dts-generator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dts-generator/-/dts-generator-3.0.0.tgz", + "integrity": "sha512-IrFP0TUGnBOxr8Lth0hLh/iM9odZTRGYyr4Y46IRxyw1SGO1Vvf30+x4npck9yP4FbaRXbB0Zh7gvmiqUta7mg==", + "dev": true, + "dependencies": { + "glob": "^7.1.3", + "mkdirp": "^0.5.1" + }, + "bin": { + "dts-generator": "bin/dts-generator" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.3.789", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.789.tgz", + "integrity": "sha512-lK4xn6C6ZF1kgLaC/EhOtC1MSKENExj3rMwGVnBTfHW81Z/Hb1Rge5YaWawN/YOXy3xCaESuE4KWSD50kOZ9rQ==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/es-module-lexer": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", + "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", + "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", + "dev": true, + "dependencies": { + "original": "^1.0.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/follow-redirects": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/http-parser-js": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", + "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "dependencies": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "dependencies": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "dependencies": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", + "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", + "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-worker": { + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz", + "integrity": "sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "dev": true, + "dependencies": { + "mime-db": "1.49.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "node_modules/nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "dev": true, + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/node-releases": { + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "dependencies": { + "url-parse": "^1.4.3" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "dependencies": { + "retry": "^0.12.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "node_modules/selfsigned": { + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", + "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", + "dev": true, + "dependencies": { + "node-forge": "^0.10.0" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", + "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^3.4.0", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/sockjs-client": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz", + "integrity": "sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==", + "dev": true, + "dependencies": { + "debug": "^3.2.6", + "eventsource": "^1.0.7", + "faye-websocket": "^0.11.3", + "inherits": "^2.0.4", + "json3": "^3.3.3", + "url-parse": "^1.5.1" + } + }, + "node_modules/sockjs-client/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/sockjs-client/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/spdy-transport/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/spdy-transport/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/spdy/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/spdy/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", + "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz", + "integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==", + "dev": true, + "dependencies": { + "jest-worker": "^27.0.2", + "p-limit": "^3.1.0", + "schema-utils": "^3.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ts-loader": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-7.0.5.tgz", + "integrity": "sha512-zXypEIT6k3oTc+OZNx/cqElrsbBtYqDknf48OZos0NQ3RTt045fBIU8RRSu+suObBzYB355aIPGOe/3kj9h7Ig==", + "dev": true, + "dependencies": { + "chalk": "^2.3.0", + "enhanced-resolve": "^4.0.0", + "loader-utils": "^1.0.2", + "micromatch": "^4.0.0", + "semver": "^6.0.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", + "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", + "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/watchpack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", + "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webpack": { + "version": "5.47.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.47.0.tgz", + "integrity": "sha512-soKLGwcUM1R3YEbJhJNiZzy7T43TnI7ENda/ywfDp9G1mDlDTpO+qfc8I5b0AzMr9xM3jyvQ0n7ctJyiXuXW6Q==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.50", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.8.0", + "es-module-lexer": "^0.7.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.4", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.2.0", + "webpack-sources": "^3.0.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.2.tgz", + "integrity": "sha512-mEoLmnmOIZQNiRl0ebnjzQ74Hk0iKS5SiEEnpq3dRezoyR3yPaeQZCMCe+db4524pj1Pd5ghZXjT41KLzIhSLw==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.0.4", + "@webpack-cli/info": "^1.3.0", + "@webpack-cli/serve": "^1.5.1", + "colorette": "^1.2.1", + "commander": "^7.0.0", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "v8-compile-cache": "^2.2.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-cli/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/webpack-cli/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/webpack-cli/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-cli/node_modules/import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-cli/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-cli/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "dev": true, + "dependencies": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", + "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", + "dev": true, + "dependencies": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.8", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "sockjs-client": "^1.5.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 6.11.5" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/webpack-dev-server/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/webpack-dev-server/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "dependencies": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.0.1.tgz", + "integrity": "sha512-LkBxiXJ3tTuhLaS5gz6D6l77Et8mPWlghAe7bbnmi2PyN1CtkiL/YitR+I0pn9PtBC88Irqgg6F9dBJh8+sJRQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/enhanced-resolve": { + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", + "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack/node_modules/tapable": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", + "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/ws": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, "dependencies": { "@discoveryjs/json-ext": { "version": "0.5.3", @@ -214,7 +5821,8 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.4.tgz", "integrity": "sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==", - "dev": true + "dev": true, + "requires": {} }, "@webpack-cli/info": { "version": "1.3.0", @@ -229,7 +5837,8 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.1.tgz", "integrity": "sha512-4vSVUiOPJLmr45S8rMGy7WDvpWxfFxfP/Qx/cxZFCfvoypTYpPPL1X8VIZMe0WTA+Jr7blUxwUSEZNkjoMTgSw==", - "dev": true + "dev": true, + "requires": {} }, "@xtuc/ieee754": { "version": "1.2.0", @@ -275,13 +5884,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true + "dev": true, + "requires": {} }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "ansi-colors": { "version": "3.2.4", @@ -3402,6 +9013,15 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -3413,15 +9033,6 @@ "strip-ansi": "^5.1.0" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", diff --git a/source/nodejs/adaptivecards-controls/package.json b/source/nodejs/adaptivecards-controls/package.json index 1c71e1a27e..9df8377b89 100644 --- a/source/nodejs/adaptivecards-controls/package.json +++ b/source/nodejs/adaptivecards-controls/package.json @@ -1,6 +1,6 @@ { "name": "adaptivecards-controls", - "version": "0.9.0-beta.1", + "version": "0.10.0-alpha.0", "description": "A library of pure JS/HTML controls designed for use with Adaptive Cards.", "author": "Microsoft", "license": "MIT", @@ -20,14 +20,5 @@ "lint": "eslint src/*.ts", "dts": "dts-generator --prefix adaptivecards-controls --project . --out dist/adaptivecards-controls.d.ts", "release": "npm run clean && npm run build && webpack --mode=production && npm run dts" - }, - "devDependencies": { - "dts-generator": "^3.0.0", - "rimraf": "^3.0.2", - "ts-loader": "^7.0.5", - "typescript": "^4.2.3", - "webpack": "^5.47.0", - "webpack-cli": "^4.7.2", - "webpack-dev-server": "^3.11.2" } } diff --git a/source/nodejs/adaptivecards-controls/src/calendar.ts b/source/nodejs/adaptivecards-controls/src/calendar.ts index 0a62d600b7..d149f5fec9 100644 --- a/source/nodejs/adaptivecards-controls/src/calendar.ts +++ b/source/nodejs/adaptivecards-controls/src/calendar.ts @@ -147,7 +147,7 @@ export class Calendar extends InputControl { private initializeSelection() { if (this._date) { - for (var i = 0; i < this._days.length; i++) { + for (let i = 0; i < this._days.length; i++) { if (Utils.areDatesEqual(this._days[i].date, this.date)) { this.selectedDayCell = this._days[i]; @@ -173,7 +173,7 @@ export class Calendar extends InputControl { var dayIndex = Utils.CalendarSettings.firstDayOfWeek; - for (var i = 0; i < Utils.CalendarSettings.daysInWeek; i++) { + for (let i = 0; i < Utils.CalendarSettings.daysInWeek; i++) { var cell = document.createElement("td"); cell.className = "ms-ctrl ms-ctrl-calendarDayHeader"; cell.innerText = Utils.CalendarSettings.getInitialDayName(dayIndex); @@ -189,7 +189,7 @@ export class Calendar extends InputControl { this._miniCalendarElement.appendChild(row); - for (var i = 0; i < this._days.length; i++) { + for (let i = 0; i < this._days.length; i++) { if (i % 7 == 0) { row = document.createElement("tr"); this._miniCalendarElement.appendChild(row); diff --git a/source/nodejs/adaptivecards-controls/src/dropdown.ts b/source/nodejs/adaptivecards-controls/src/dropdown.ts index 6277e09c5f..18c18d61ab 100644 --- a/source/nodejs/adaptivecards-controls/src/dropdown.ts +++ b/source/nodejs/adaptivecards-controls/src/dropdown.ts @@ -77,7 +77,7 @@ export class DropDownPopupControl extends PopupControl { var selectedIndex = this._owner.selectedIndex; - for (var i = 0; i < this._owner.items.length; i++) { + for (let i = 0; i < this._owner.items.length; i++) { var renderedItem = this._owner.items.get(i).render(); renderedItem.tabIndex = 0; @@ -212,7 +212,7 @@ export class DropDown extends InputWithPopup attach(rootElement: HTMLElement) { super.attach(rootElement); - for (var i = 0; i < this.rootElement.children.length; i++) { + for (let i = 0; i < this.rootElement.children.length; i++) { var childElement = this.rootElement.children[i]; if (childElement.tagName.toLowerCase() == "ms-dropdown-item") { diff --git a/source/nodejs/adaptivecards-controls/src/popupmenu.ts b/source/nodejs/adaptivecards-controls/src/popupmenu.ts index e2a2382569..4eef2b54eb 100644 --- a/source/nodejs/adaptivecards-controls/src/popupmenu.ts +++ b/source/nodejs/adaptivecards-controls/src/popupmenu.ts @@ -19,7 +19,7 @@ export class PopupMenu extends PopupControl { element.className = "ms-ctrl ms-popup"; element.setAttribute("role", "listbox"); - for (var i = 0; i < this._items.length; i++) { + for (let i = 0; i < this._items.length; i++) { var renderedItem = this._items.get(i).render(); renderedItem.tabIndex = 0; diff --git a/source/nodejs/adaptivecards-controls/webpack.config.js b/source/nodejs/adaptivecards-controls/webpack.config.js index bad88d4a40..8b1b3a5b28 100644 --- a/source/nodejs/adaptivecards-controls/webpack.config.js +++ b/source/nodejs/adaptivecards-controls/webpack.config.js @@ -50,13 +50,11 @@ module.exports = (env, argv) => { new CopyWebpackPlugin({ patterns: [{ from: 'src/adaptivecards-controls.css', - to: '../lib/', - flatten:true + to: '../lib/[name][ext]' }, { from: 'src/adaptivecards-controls.css', - to: '../dist/', - flatten:true + to: '../dist/[name][ext]' }], options: { concurrency: 8 diff --git a/source/nodejs/adaptivecards-designer-app/dist/containers/bf-image-container.css b/source/nodejs/adaptivecards-designer-app/dist/containers/bf-image-container.css deleted file mode 100644 index f63d1f2937..0000000000 --- a/source/nodejs/adaptivecards-designer-app/dist/containers/bf-image-container.css +++ /dev/null @@ -1,301 +0,0 @@ -.ac-image.ac-selectable { - cursor: pointer; -} - -.ac-container.ac-selectable { - padding: 5px; -} - -.ac-container.ac-selectable:hover { - background-color: rgba(0, 0, 0, 0.1); -} - -.ac-container.ac-selectable:active { - background-color: rgba(0, 0, 0, 0.15); -} - -.ac-pushButton { - font-family: "Segoe UI", sans-serif; - font-size: 14px; - font-weight: 600; - overflow: hidden; - text-overflow: ellipsis; - border: none; - padding: 4px 10px 5px 10px; - text-align: center; - vertical-align: middle; - cursor: pointer; - background-color: #0078d7; - color: white; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.ac-pushButton-disabled { - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Calibri", sans-serif; - font-size: 14px; - font-weight: 600; - padding: 10px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: 1px solid #EEEEEE; - background-color: #EEEEEE; - color: #666666; -} - -.ac-pushButton:hover { - background-color: #005a9e; -} - -.ac-pushButton:active { - background-color: #004d84; -} - -.ac-linkButton { - font-family: "Segoe UI", sans-serif; - font-size: 14px; - font-weight: 600; - overflow: hidden; - text-overflow: ellipsis; - cursor: pointer; - border: none; - padding: 0; - color: #0078d7; - background-color: transparent; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.ac-linkButton:hover { - color: #005a9e; -} - -.ac-linkButton:active { - color: #004d84; -} - -.ac-linkButton.ac-subdued { - color: #666666; - font-weight: 500; -} - -.ac-linkButton.ac-subdued:hover { - color: #005a9e; -} - -.ac-linkButton.ac-subdued:active { - color: #004d84; -} - -.ac-input { - font-family: "Segoe UI", sans-serif; - font-size: 14px; - color: black; -} - -.ac-input.ac-input-required { -} - -.ac-input.ac-textInput.ac-input-validation-failed, -.ac-input.ac-numberInput.ac-input-validation-failed, -.ac-input.ac-dateInput.ac-input-validation-failed, -.ac-input.ac-timeInput.ac-input-validation-failed, -.ac-input.ac-multichoiceInput.ac-choiceSetInput-compact.ac-input-validation-failed { - border: 1px solid red !important; -} - -.ac-input.ac-toggleInput.ac-input-validation-failed, -.ac-input.ac-choiceSetInput-expanded.ac-input-validation-failed, -.ac-input.ac-choiceSetInput-multiSelect.ac-input-validation-failed { - outline: 1px solid red; -} - -.ac-input.ac-textInput { - height: 30px; - resize: none; -} - -.ac-input.ac-textInput.ac-multiline { - height: 72px; -} - -.ac-input.ac-textInput, .ac-input.ac-numberInput, .ac-input.ac-dateInput, .ac-input.ac-timeInput, .ac-input.ac-multichoiceInput { - border: 1px solid #dddddd; - padding: 4px 8px 4px 8px; -} - -.kikOuterContainer { - border: 1px solid #dddddd; -} - -/* ac-inlineActionButton should set height to the same as ac-input.ac-textInput */ - -.ac-inlineActionButton { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: none; - background-color: transparent; - height: 30px; -} - -.ac-inlineActionButton.textOnly { - padding: 0 8px; -} - -.ac-inlineActionButton.iconOnly { - padding: 0; -} - -.ac-inlineActionButton:hover { - background-color: #EEEEEE; -} - -.ac-inlineActionButton:active { - background-color: #CCCCCC; -} - -.ac-inlineActionButton-disabled { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: none; - background-color: transparent; - height: 31px; -} - -/* Popup menu */ - -.ac-ctrl-overlay { - position: absolute; - left: 0; - top: 0; - z-index: 10000; -} - -@keyframes fadeIn { - 0% { - opacity: 0; - } -} - -@keyframes slideTopToBottom { - 0% { - transform: translate(0, -20px); - } -} - -@keyframes slideBottomToTop { - 0% { - transform: translate(0, 20px); - } -} - -@keyframes slideLeftToRight { - 0% { - transform: translate(-20px, 0); - } -} - -@keyframes slideRightToLeft { - 0% { - transform: translate(20px, 0); - } -} - -.ac-ctrl-slide { - animation-duration: 0.5s; - animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1); -} - -.ac-ctrl-slide.ac-ctrl-slideTopToBottom { - animation-name: fadeIn, slideTopToBottom; -} - -.ac-ctrl-slide.ac-ctrl-slideBottomToTop { - animation-name: fadeIn, slideBottomToTop; -} - -.ac-ctrl-slide.ac-ctrl-slideLeftToRight { - animation-name: fadeIn, slideLeftToRight; -} - -.ac-ctrl-slide.ac-ctrl-slideRightToLeft { - animation-name: fadeIn, slideRightToLeft; -} - -.ac-ctrl { - box-sizing: border-box; - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; - font-size: 14px; - font-weight: normal; -} - -.ac-ctrl-dropdown-item { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; -} - -.ac-ctrl-dropdown-item-disabled { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; - color: #666666; -} - -.ac-ctrl-dropdown-item:hover { - background-color: #EEEEEE; -} - -.ac-ctrl-dropdown-item:focus { - outline: 0; - background-color: #CCCCCC; -} - -.ac-ctrl-popup-container { - border: 1px solid #EEEEEE; - background-color: white; - position: absolute; - box-shadow: 0 0 15px -5px rgba(0, 0, 0, 0.4); - overflow-y: auto; -} - -.ac-ctrl-popup-container:focus { - outline: 0; -} diff --git a/source/nodejs/adaptivecards-designer-app/dist/containers/bot-framework.png b/source/nodejs/adaptivecards-designer-app/dist/containers/bot-framework.png deleted file mode 100644 index ee6710585d..0000000000 Binary files a/source/nodejs/adaptivecards-designer-app/dist/containers/bot-framework.png and /dev/null differ diff --git a/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-bottomleft.png b/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-bottomleft.png deleted file mode 100644 index a1baa79ef3..0000000000 Binary files a/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-bottomleft.png and /dev/null differ diff --git a/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-container.css b/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-container.css deleted file mode 100644 index 51fe21e3eb..0000000000 --- a/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-container.css +++ /dev/null @@ -1,426 +0,0 @@ -.cortana-outer-frame { - display: flex; -} - -.cortana-frame { - display: flex; - background-color: black; - box-shadow: 0 0 15px -5px rgba(0, 0, 0, 0.4); -} - -.cortana-leftside { - display: flex; - flex-direction: column; - flex: 0 0 auto; - background-color: #002D4F; -} - -.cortana-rightside { - display: flex; - flex-direction: column; - flex: 1 1 100%; -} - -.cortana-topleft { - background: url('cortana-topleft.png'); - background-size: cover; - width: 48px; - flex: 0 0 193px; -} - -.cortana-middleleft { - flex: 1 1 100%; -} - -.cortana-bottomleft { - background: url('cortana-bottomleft.png'); - background-size: cover; - width: 48px; - flex: 0 0 126px; -} - -.cortana-header { - background: url('cortana-face.png'); - background-size: contain; - background-position: center; - background-color: black; - background-repeat: no-repeat; - margin: 20px 0px; - height: 52px; - width: 100%; -} - -.cortana-card { - width: 344px; -} - -.cortana-searchbox { - flex: 0 0 40px; - background-color: white; - display: flex; -} - -.cortana-searchbox-magnifyingglass { - background: url('cortana-magnifyingglass.png'); - background-size: cover; - height: 40px; - flex: 0 0 40px; -} - -.cortana-searchbox-middle { - flex: 1 1 100%; - background-color: #F2F4F6; -} - -.cortana-searchbox-microphone { - background: url('cortana-microphone.png'); - background-size: cover; - height: 40px; - flex: 0 0 40px; -} - -.cortanaFrame { - background: url('cortana-frame.png'); - width: 393px; - height: 595px; - border: solid 1px black; -} - -.cardWrapper { - padding-left: 50px; - padding-top: 80px; - overflow-y: auto; - max-height: 555px; -} - -.ac-media-poster {} - -.ac-media-poster.empty { - height: 200px; - background-color: #F2F2F2; -} - -.ac-media-playButton { - width: 56px; - height: 56px; - border: 1px solid #EEEEEE; - border-radius: 28px; - box-shadow: 0px 0px 10px #EEEEEE; - background-color: rgba(255, 255, 255, 0.9); - color: black; - cursor: pointer; -} - -.ac-media-playButton-arrow { - color: black; -} - -.ac-media-playButton:hover { - background-color: white; -} - -.ac-input, .ac-input.ac-textInput.ac-multiline { - box-sizing: border-box; - margin-bottom: 0; - padding: 4px 8px; - font-size: 15px; -} - -.ac-image.ac-selectable { - cursor: pointer; -} - -a.ac-anchor { - text-decoration: none; -} - -a.ac-anchor:link { - color: #005A9E; -} - -a.ac-anchor:visited { - color: #005A9E; -} - -a.ac-anchor:link:active { - color: #004D84; -} - -a.ac-anchor:visited:active { - color: #004D84; -} - -.ac-container.ac-selectable, .ac-columnSet.ac-selectable { - padding: 0px; -} - -.ac-container.ac-selectable:hover, .ac-columnSet.ac-selectable:hover { - background-color: rgba(0, 0, 0, 0.1) !important; -} - -.ac-container.ac-selectable:active, .ac-columnSet.ac-selectable:active { - background-color: rgba(0, 0, 0, 0.15) !important; -} - -.ac-pushButton { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 15px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - height: 31px; - background-color: rgba(255, 255, 255, 0.2); - color: white; - border: 2px solid transparent; -} - -.ac-pushButton-disabled { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - padding: 4px 10px 5px 10px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - height: 32px; - border: 4px solid #EDEBE9; - background-color: #EDEBE9; - color: #C8C6C4; - border-radius: 4px; -} - -.ac-pushButton:hover { - border: 2px solid rgba(255, 255, 255, 0.6); -} - -.ac-pushButton:active { - background-color: rgba(255, 255, 255, 0.4); -} - -.ac-input { - font-family: "Segoe UI", sans-serif; - font-size: 14px; - color: white; -} - -.ac-input.ac-input-required { -} - -.ac-input.ac-textInput.ac-input-validation-failed, -.ac-input.ac-numberInput.ac-input-validation-failed, -.ac-input.ac-dateInput.ac-input-validation-failed, -.ac-input.ac-timeInput.ac-input-validation-failed, -.ac-input.ac-multichoiceInput.ac-choiceSetInput-compact.ac-input-validation-failed { - border: 1px solid red !important; -} - -.ac-input.ac-toggleInput.ac-input-validation-failed, -.ac-input.ac-choiceSetInput-expanded.ac-input-validation-failed, -.ac-input.ac-choiceSetInput-multiSelect.ac-input-validation-failed { - outline: 1px solid red; -} - -.ac-input.ac-textInput { - resize: none; -} - -.ac-input.ac-textInput.ac-multiline { - height: 72px; -} - -.ac-input.ac-textInput, .ac-input.ac-numberInput, .ac-input.ac-dateInput, .ac-input.ac-timeInput { - height: 31px; -} - -.ac-input.ac-textInput, .ac-input.ac-numberInput, .ac-input.ac-dateInput, .ac-input.ac-timeInput, .ac-input.ac-multichoiceInput { - border: 2px solid #797979; - padding: 4px 8px 4px 8px; - background-color: #0C0C0C; -} - -.ac-input.ac-textInput:hover, .ac-input.ac-numberInput:hover, .ac-input.ac-dateInput:hover, .ac-input.ac-timeInput:hover, .ac-input.ac-multichoiceInput:hover { - border: 2px solid #A5A5A5; - background-color: #0C0C0C; -} - -/* ac-inlineActionButton should set height to the same as ac-input.ac-textInput */ - -.ac-inlineActionButton { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: none; - background-color: transparent; - height: 31px; -} - -.ac-inlineActionButton.textOnly { - padding: 0 8px; -} - -.ac-inlineActionButton.iconOnly { - padding: 0; -} - -.ac-inlineActionButton:hover { - background-color: #EEEEEE; -} - -.ac-inlineActionButton:active { - background-color: #CCCCCC; -} - -.ac-inlineActionButton-disabled { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: none; - background-color: transparent; - height: 31px; -} - -.ac-inlineActionButton-disabled.textOnly { - padding: 0 8px; -} - -.ac-inlineActionButton-disabled.iconOnly { - padding: 0; -} - -/* Popup menu */ - -.ac-ctrl-overlay { - position: absolute; - left: 0; - top: 0; - z-index: 10000; -} - -@keyframes fadeIn { - 0% { - opacity: 0; - } -} - -@keyframes slideTopToBottom { - 0% { - transform: translate(0, -20px); - } -} - -@keyframes slideBottomToTop { - 0% { - transform: translate(0, 20px); - } -} - -@keyframes slideLeftToRight { - 0% { - transform: translate(-20px, 0); - } -} - -@keyframes slideRightToLeft { - 0% { - transform: translate(20px, 0); - } -} - -.ac-ctrl-slide { - animation-duration: 0.5s; - animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1); -} - -.ac-ctrl-slide.ac-ctrl-slideTopToBottom { - animation-name: fadeIn, slideTopToBottom; -} - -.ac-ctrl-slide.ac-ctrl-slideBottomToTop { - animation-name: fadeIn, slideBottomToTop; -} - -.ac-ctrl-slide.ac-ctrl-slideLeftToRight { - animation-name: fadeIn, slideLeftToRight; -} - -.ac-ctrl-slide.ac-ctrl-slideRightToLeft { - animation-name: fadeIn, slideRightToLeft; -} - -.ac-ctrl { - box-sizing: border-box; - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; - font-size: 14px; - font-weight: normal; -} - -.ac-ctrl-dropdown-item { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; -} - -.ac-ctrl-dropdown-item-disabled { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; - color: #666666; -} - -.ac-ctrl-dropdown-item:hover { - background-color: #EEEEEE; -} - -.ac-ctrl-dropdown-item:focus { - outline: 0; - background-color: #CCCCCC; -} - -.ac-ctrl-popup-container { - border: 1px solid #EEEEEE; - background-color: white; - position: absolute; - box-shadow: 0 0 15px -5px rgba(0, 0, 0, 0.4); - overflow-y: auto; -} - -.ac-ctrl-popup-container:focus { - outline: 0; -} diff --git a/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-face.png b/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-face.png deleted file mode 100644 index beadc5b86d..0000000000 Binary files a/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-face.png and /dev/null differ diff --git a/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-frame.png b/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-frame.png deleted file mode 100644 index 231c7c0e40..0000000000 Binary files a/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-frame.png and /dev/null differ diff --git a/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-magnifyingglass.png b/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-magnifyingglass.png deleted file mode 100644 index e9732e6f1e..0000000000 Binary files a/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-magnifyingglass.png and /dev/null differ diff --git a/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-microphone.png b/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-microphone.png deleted file mode 100644 index e314860c46..0000000000 Binary files a/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-microphone.png and /dev/null differ diff --git a/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-topleft.png b/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-topleft.png deleted file mode 100644 index 0605d6175f..0000000000 Binary files a/source/nodejs/adaptivecards-designer-app/dist/containers/cortana-topleft.png and /dev/null differ diff --git a/source/nodejs/adaptivecards-designer-app/dist/containers/outlook-container.css b/source/nodejs/adaptivecards-designer-app/dist/containers/outlook-container.css deleted file mode 100644 index e60addb59d..0000000000 --- a/source/nodejs/adaptivecards-designer-app/dist/containers/outlook-container.css +++ /dev/null @@ -1,394 +0,0 @@ -.outlook-frame { - border: 1px solid #F1F1F1; - box-shadow: 0 0 15px -5px rgba(0, 0, 0, 0.4); -} - -.ac-media-poster {} - -.ac-media-poster.empty { - height: 200px; - background-color: #F2F2F2; -} - -.ac-media-playButton { - width: 56px; - height: 56px; - border: 1px solid #EEEEEE; - border-radius: 28px; - box-shadow: 0px 0px 10px #EEEEEE; - background-color: rgba(255, 255, 255, 0.9); - color: black; - cursor: pointer; -} - -.ac-media-playButton-arrow { - color: black; -} - -.ac-media-playButton:hover { - background-color: white; -} - -.ac-image.ac-selectable { - cursor: pointer; -} - -a.ac-anchor { - text-decoration: none; -} - -a.ac-anchor:link { - color: #005A9E; -} - -a.ac-anchor:visited { - color: #005A9E; -} - -a.ac-anchor:link:active { - color: #004D84; -} - -a.ac-anchor:visited:active { - color: #004D84; -} - -.ac-container.ac-selectable, .ac-columnSet.ac-selectable { - padding: 0px; -} - -.ac-container.ac-selectable:hover, .ac-columnSet.ac-selectable:hover { - background-color: rgba(0, 0, 0, 0.1) !important; -} - -.ac-container.ac-selectable:active, .ac-columnSet.ac-selectable:active { - background-color: rgba(0, 0, 0, 0.15) !important; -} - -.ac-pushButton { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - font-weight: 600; - padding: 4px 10px 5px 10px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - height: 31px; - background-color: white; - color: #0079db; - border: 1px solid #6290FF; -} - -.ac-pushButton-disabled { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - font-weight: 600; - padding: 4px 10px 5px 10px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - height: 31px; - border: 1px solid #EEEEEE; - background-color: #EEEEEE; - color: #666666; -} - -.ac-pushButton:hover { - background-color: #0078D7; - color: white; - border: 1px solid #73C1FD; -} - -.ac-pushButton:active { - background-color: #464B93; - color: white; - border: 1px solid #464B93; -} - -.ac-pushButton.style-positive { - background-color: #0078D7; - color: white; - border: 1px solid #0078D7; -} - -.ac-pushButton.style-positive:hover, .ac-pushButton.style-positive:active { - background-color: #006ABC; - border: 1px solid #006ABC; -} - -.ac-pushButton.style-destructive { - background-color: #E50000; - color: white; - border: 1px solid #E50000; -} - -.ac-pushButton.style-destructive:hover, .ac-pushButton.style-destructive:active { - background-color: #BF0000; - border: 1px solid #BF0000; -} - -.ac-pushButton.subdued { - color: #666666; - border: 1px solid #EEEEEE; -} - -.ac-pushButton.subdued:hover { - background-color: #0078D7; - color: white; - border: 1px solid #0078D7; -} - -@media (forced-colors: none) { - .ac-pushButton.expanded { - background-color: #0078D7; - color: white; - border: 1px solid #0078D7; - } -} - -@media (forced-colors: active) { - .ac-pushButton.expanded { - background-color: highlight; - color: highlightText; - forced-color-adjust: none; - } -} - -.ac-pushButton.expandable:after { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - display: inline-block; - font-family: 'FabricMDL2Icons'; - font-size: 10px; - font-style: normal; - font-weight: 900; - margin: auto 0px auto 6px; - content: '\E70D'; -} - -.ac-pushButton.expandable.expanded:after { - content: '\E70E'; -} - -.ac-input { - font-family: "Segoe UI", sans-serif; - font-size: 14px; - color: black; -} - -.ac-input.ac-input-required { -} - -.ac-input.ac-textInput.ac-input-validation-failed, -.ac-input.ac-numberInput.ac-input-validation-failed, -.ac-input.ac-dateInput.ac-input-validation-failed, -.ac-input.ac-timeInput.ac-input-validation-failed, -.ac-input.ac-multichoiceInput.ac-choiceSetInput-compact.ac-input-validation-failed { - border: 1px solid red !important; -} - -.ac-input.ac-toggleInput.ac-input-validation-failed, -.ac-input.ac-choiceSetInput-expanded.ac-input-validation-failed, -.ac-input.ac-choiceSetInput-multiSelect.ac-input-validation-failed { - outline: 1px solid red; -} - -.ac-input.ac-textInput { - resize: none; -} - -.ac-input.ac-textInput.ac-multiline { - height: 72px; -} - -.ac-input.ac-textInput, .ac-input.ac-numberInput, .ac-input.ac-dateInput, .ac-input.ac-timeInput { - height: 31px; -} - -.ac-input.ac-textInput, .ac-input.ac-numberInput, .ac-input.ac-dateInput, .ac-input.ac-timeInput, .ac-input.ac-multichoiceInput { - border: 1px solid #DDDDDD; - padding: 4px 8px 4px 8px; -} - -/* ac-inlineActionButton should set height to the same as ac-input.ac-textInput */ - -.ac-inlineActionButton { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: none; - background-color: transparent; - height: 31px; -} - -.ac-inlineActionButton.textOnly { - padding: 0 8px; -} - -.ac-inlineActionButton.iconOnly { - padding: 0; -} - -.ac-inlineActionButton:hover { - background-color: #EEEEEE; -} - -.ac-inlineActionButton:active { - background-color: #CCCCCC; -} - -.ac-inlineActionButton-disabled { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: none; - background-color: transparent; - height: 31px; -} - -.ac-inlineActionButton-disabled.textOnly { - padding: 0 8px; -} - -.ac-inlineActionButton-disabled.iconOnly { - padding: 0; -} - -/* Popup menu */ - -.ac-ctrl-overlay { - position: absolute; - left: 0; - top: 0; - z-index: 10000; -} - -@keyframes fadeIn { - 0% { - opacity: 0; - } -} - -@keyframes slideTopToBottom { - 0% { - transform: translate(0, -20px); - } -} - -@keyframes slideBottomToTop { - 0% { - transform: translate(0, 20px); - } -} - -@keyframes slideLeftToRight { - 0% { - transform: translate(-20px, 0); - } -} - -@keyframes slideRightToLeft { - 0% { - transform: translate(20px, 0); - } -} - -.ac-ctrl-slide { - animation-duration: 0.5s; - animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1); -} - -.ac-ctrl-slide.ac-ctrl-slideTopToBottom { - animation-name: fadeIn, slideTopToBottom; -} - -.ac-ctrl-slide.ac-ctrl-slideBottomToTop { - animation-name: fadeIn, slideBottomToTop; -} - -.ac-ctrl-slide.ac-ctrl-slideLeftToRight { - animation-name: fadeIn, slideLeftToRight; -} - -.ac-ctrl-slide.ac-ctrl-slideRightToLeft { - animation-name: fadeIn, slideRightToLeft; -} - -.ac-ctrl { - box-sizing: border-box; - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; - font-size: 14px; - font-weight: normal; -} - -.ac-ctrl-dropdown-item { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; -} - -.ac-ctrl-dropdown-item-disabled { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; - color: #666666; -} - -.ac-ctrl-dropdown-item:hover { - background-color: #EEEEEE; -} - -.ac-ctrl-dropdown-item:focus { - outline: 0; - background-color: #CCCCCC; -} - -.ac-ctrl-popup-container { - border: 1px solid #EEEEEE; - background-color: white; - position: absolute; - box-shadow: 0 0 15px -5px rgba(0, 0, 0, 0.4); - overflow-y: auto; -} - -.ac-ctrl-popup-container:focus { - outline: 0; -} diff --git a/source/nodejs/adaptivecards-designer-app/dist/containers/skype-container.css b/source/nodejs/adaptivecards-designer-app/dist/containers/skype-container.css deleted file mode 100644 index 793738fda1..0000000000 --- a/source/nodejs/adaptivecards-designer-app/dist/containers/skype-container.css +++ /dev/null @@ -1,320 +0,0 @@ -.skype-frame { - display: flex; -} - -.skype-hexagon-outer { - overflow: hidden; - transform: rotate(120deg); - flex: 0 0 50px; - height: 40px; - margin-right: 6px; -} - -.skype-hexagon-inner { - overflow: hidden; - width: 100%; - height: 100%; - transform: rotate(-60deg); -} - -.skype-bot-logo { - width: 100%; - height: 100%; - background-repeat: no-repeat; - background-position: 50%; - background-image: url(./bot-framework.png); - background-size: 50px 50px; - visibility: visible; - transform: rotate(-60deg); -} - -.skype-card { - width: 396px; -} - -.ac-media-poster {} - -.ac-media-poster.empty { - height: 200px; - background-color: #F2F2F2; -} - -.ac-media-playButton { - width: 56px; - height: 56px; - border: 1px solid #EEEEEE; - border-radius: 28px; - box-shadow: 0px 0px 10px #EEEEEE; - background-color: rgba(255, 255, 255, 0.9); - color: black; - cursor: pointer; -} - -.ac-media-playButton-arrow { - color: black; -} - -.ac-media-playButton:hover { - background-color: white; -} - -.ac-image.ac-selectable { - cursor: pointer; -} - -.ac-image.ac-selectable:hover { - background-color: rgba(0, 0, 0, 0.1); -} - -.ac-image.ac-selectable:active { - background-color: rgba(0, 0, 0, 0.15); -} - -a.ac-anchor { - text-decoration: none; -} - -a.ac-anchor:link { - color: #005A9E; -} - -a.ac-anchor:visited { - color: #005A9E; -} - -a.ac-anchor:link:active { - color: #004D84; -} - -a.ac-anchor:visited:active { - color: #004D84; -} - -.ac-container.ac-selectable, .ac-columnSet.ac-selectable { - padding: 0px; -} - -.ac-container.ac-selectable:hover, .ac-columnSet.ac-selectable:hover { - background-color: rgba(0, 0, 0, 0.1) !important; -} - -.ac-container.ac-selectable:active, .ac-columnSet.ac-selectable:active { - background-color: rgba(0, 0, 0, 0.15) !important; -} - -.ac-pushButton { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - font-weight: 400; - padding: 4px 10px 6px 10px; - height: 31px; - background-color: white; - color: #0078d7; -} - -.ac-pushButton:hover { - background-color: #0078d7; - color: #fff; -} - -.ac-pushButton:active { - background-color: #0078d7; - color: #fff; -} - -.ac-pushButton { - border: 2px solid #dcdcdc; - border-radius: 20px; - line-height: 20px; -} - -.ac-input { - font-family: "Segoe UI", sans-serif; - font-size: 14px; - color: black; -} - -.ac-input.ac-input-required { -} - -.ac-input.ac-textInput.ac-input-validation-failed, -.ac-input.ac-numberInput.ac-input-validation-failed, -.ac-input.ac-dateInput.ac-input-validation-failed, -.ac-input.ac-timeInput.ac-input-validation-failed, -.ac-input.ac-multichoiceInput.ac-choiceSetInput-compact.ac-input-validation-failed { - border: 1px solid red !important; -} - -.ac-input.ac-toggleInput.ac-input-validation-failed, -.ac-input.ac-choiceSetInput-expanded.ac-input-validation-failed, -.ac-input.ac-choiceSetInput-multiSelect.ac-input-validation-failed { - outline: 1px solid red; -} - -.ac-input.ac-textInput { - resize: none; -} - -.ac-input.ac-textInput.ac-multiline { - height: 72px; -} - -.ac-input.ac-textInput, .ac-input.ac-numberInput, .ac-input.ac-dateInput, .ac-input.ac-timeInput { - height: 31px; -} - -.ac-input.ac-textInput, .ac-input.ac-numberInput, .ac-input.ac-dateInput, .ac-input.ac-timeInput, .ac-input.ac-multichoiceInput { - border: 1px solid #DDDDDD; - padding: 4px 8px 4px 8px; -} - -/* ac-inlineActionButton should set height to the same as ac-input.ac-textInput */ - -.ac-inlineActionButton { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: none; - background-color: transparent; - height: 31px; -} - -.ac-inlineActionButton.textOnly { - padding: 0 8px; -} - -.ac-inlineActionButton.iconOnly { - padding: 0; -} - -.ac-inlineActionButton:hover { - background-color: #EEEEEE; -} - -.ac-inlineActionButton:active { - background-color: #CCCCCC; -} - -/* Popup menu */ - -.ac-ctrl-overlay { - position: absolute; - left: 0; - top: 0; - z-index: 10000; -} - -@keyframes fadeIn { - 0% { - opacity: 0; - } -} - -@keyframes slideTopToBottom { - 0% { - transform: translate(0, -20px); - } -} - -@keyframes slideBottomToTop { - 0% { - transform: translate(0, 20px); - } -} - -@keyframes slideLeftToRight { - 0% { - transform: translate(-20px, 0); - } -} - -@keyframes slideRightToLeft { - 0% { - transform: translate(20px, 0); - } -} - -.ac-ctrl-slide { - animation-duration: 0.5s; - animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1); -} - -.ac-ctrl-slide.ac-ctrl-slideTopToBottom { - animation-name: fadeIn, slideTopToBottom; -} - -.ac-ctrl-slide.ac-ctrl-slideBottomToTop { - animation-name: fadeIn, slideBottomToTop; -} - -.ac-ctrl-slide.ac-ctrl-slideLeftToRight { - animation-name: fadeIn, slideLeftToRight; -} - -.ac-ctrl-slide.ac-ctrl-slideRightToLeft { - animation-name: fadeIn, slideRightToLeft; -} - -.ac-ctrl { - box-sizing: border-box; - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; - font-size: 14px; - font-weight: normal; -} - -.ac-ctrl-dropdown-item { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; -} - -.ac-ctrl-dropdown-item-disabled { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; - color: #666666; -} - -.ac-ctrl-dropdown-item:hover { - background-color: #EEEEEE; -} - -.ac-ctrl-dropdown-item:focus { - outline: 0; - background-color: #CCCCCC; -} - -.ac-ctrl-popup-container { - border: 1px solid #EEEEEE; - background-color: white; - position: absolute; - box-shadow: 0 0 15px -5px rgba(0, 0, 0, 0.4); - overflow-y: auto; -} - -.ac-ctrl-popup-container:focus { - outline: 0; -} diff --git a/source/nodejs/adaptivecards-designer-app/dist/containers/teams-container-dark.css b/source/nodejs/adaptivecards-designer-app/dist/containers/teams-container-dark.css deleted file mode 100644 index b7f97afae3..0000000000 --- a/source/nodejs/adaptivecards-designer-app/dist/containers/teams-container-dark.css +++ /dev/null @@ -1,406 +0,0 @@ -.teams-frame { - display: flex; -} - -.teams-botNameAndTime { - color: #EEEEEE; - margin-bottom: 12px; -} - -.teams-hexagon-outer { - overflow: hidden; - transform: rotate(120deg); - flex: 0 0 50px; - height: 40px; - margin-right: 6px; -} - -.teams-hexagon-inner { - overflow: hidden; - width: 100%; - height: 100%; - transform: rotate(-60deg); -} - -.teams-bot-logo { - width: 100%; - height: 100%; - background-repeat: no-repeat; - background-position: 50%; - background-image: url(bot-framework.png); - background-size: 50px 50px; - visibility: visible; - transform: rotate(-60deg); -} - -.teams-inner-frame { - background-color: #2D2B2C; - border-radius: 4px; - padding: 24px; - min-width: 400px; - max-width: 726px; -} - -.teams-card { - border: 2px solid #393738; - border-top-color: #ACCEEF; - border-radius: 4px; -} - -.ac-media-poster {} - -.ac-media-poster.empty { - height: 200px; - background-color: #F2F2F2; -} - -.ac-media-playButton { - width: 56px; - height: 56px; - border: 1px solid #EEEEEE; - border-radius: 28px; - box-shadow: 0px 0px 10px #EEEEEE; - background-color: rgba(255, 255, 255, 0.9); - color: black; - cursor: pointer; -} - -.ac-media-playButton-arrow { - color: black; -} - -.ac-media-playButton:hover { - background-color: white; -} - -.ac-image.ac-selectable { - cursor: pointer; -} - -.ac-image.ac-selectable:hover { - background-color: rgba(0, 0, 0, 0.1); -} - -.ac-image.ac-selectable:active { - background-color: rgba(0, 0, 0, 0.15); -} - -a.ac-anchor { - text-decoration: none; -} - -a.ac-anchor:link { - color: #6264A7; -} - -a.ac-anchor:visited { - color: #6264A7; -} - -a.ac-anchor:link:active { - color: #6264A7; -} - -a.ac-anchor:visited:active { - color: #6264A7; -} - -.ac-container.ac-selectable, .ac-columnSet.ac-selectable { - padding: 0px; -} - -.ac-container.ac-selectable:hover, .ac-columnSet.ac-selectable:hover { - background-color: rgba(0, 0, 0, 0.1) !important; -} - -.ac-container.ac-selectable:active, .ac-columnSet.ac-selectable:active { - background-color: rgba(0, 0, 0, 0.15) !important; -} - -.ac-pushButton { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - padding: 4px 10px 5px 10px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - height: 34px; - background-color: transparent; - color: white; - border: 2px solid #6165A4; - border-radius: 4px; -} - -.ac-pushButton:hover { - background-color: #6165A4; - border: 2px solid #A7A8DA; - color: black; -} - -.ac-pushButton:active { - background-color: #6165A4; - border: 2px solid #A7A8DA; - color: black; -} - -.ac-pushButton-disabled { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - padding: 4px 10px 5px 10px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - height: 34px; - border: 4px solid #3D3D3D; - background-color: #3D3D3D; - color: #666666; - border-radius: 4px; -} - -@media (forced-colors: none) { - .ac-pushButton.expanded { - background-color: #6165A4; - border: 2px solid #A7A8DA; - color: black; - } -} - -@media (forced-colors: active) { - .ac-pushButton.expanded { - background-color: highlight; - color: highlightText; - forced-color-adjust: none; - } -} - -.ac-pushButton.style-emphasis { - background-color: #6264A7; - border: 2px solid #6264A7; - color: white; -} - -.ac-input { - font-family: "Segoe UI", sans-serif; - font-size: 14px; - color: #EEEEEE; -} - -.ac-input.ac-input-required { -} - -.ac-input.ac-textInput.ac-input-validation-failed, -.ac-input.ac-numberInput.ac-input-validation-failed, -.ac-input.ac-dateInput.ac-input-validation-failed, -.ac-input.ac-timeInput.ac-input-validation-failed, -.ac-input.ac-multichoiceInput.ac-choiceSetInput-compact.ac-input-validation-failed { - border: 1px solid red !important; -} - -.ac-input.ac-toggleInput.ac-input-validation-failed, -.ac-input.ac-choiceSetInput-expanded.ac-input-validation-failed, -.ac-input.ac-choiceSetInput-multiSelect.ac-input-validation-failed { - outline: 1px solid red; -} - -.ac-input.ac-textInput { - resize: none; -} - -.ac-input.ac-textInput.ac-multiline { - height: 72px; -} - -.ac-input.ac-textInput, .ac-input.ac-numberInput, .ac-input.ac-dateInput, .ac-input.ac-timeInput { - height: 31px; -} - -.ac-input.ac-textInput, .ac-input.ac-numberInput, .ac-input.ac-dateInput, .ac-input.ac-timeInput, .ac-input.ac-multichoiceInput { - background-color: #201E1F; - border: 1px solid #201E1F; - border-radius: 4px; - padding: 4px 8px 4px 8px; -} - -/* ac-inlineActionButton should set height to the same as ac-input.ac-textInput */ - -.ac-inlineActionButton { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: none; - background-color: transparent; - height: 31px; -} - -.ac-inlineActionButton.textOnly { - padding: 0 8px; -} - -.ac-inlineActionButton.iconOnly { - padding: 0; -} - -.ac-inlineActionButton:hover { - background-color: #EEEEEE; -} - -.ac-inlineActionButton:active { - background-color: #CCCCCC; -} - -.ac-inlineActionButton-disabled { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: none; - background-color: transparent; - height: 31px; - color: #777777; -} - -.ac-inlineActionButton-disabled.textOnly { - padding: 0 8px; -} - -.ac-inlineActionButton-disabled.iconOnly { - padding: 0; -} - -/* Popup menu */ - -.ac-ctrl-overlay { - position: absolute; - left: 0; - top: 0; - z-index: 10000; -} - -@keyframes fadeIn { - 0% { - opacity: 0; - } -} - -@keyframes slideTopToBottom { - 0% { - transform: translate(0, -20px); - } -} - -@keyframes slideBottomToTop { - 0% { - transform: translate(0, 20px); - } -} - -@keyframes slideLeftToRight { - 0% { - transform: translate(-20px, 0); - } -} - -@keyframes slideRightToLeft { - 0% { - transform: translate(20px, 0); - } -} - -.ac-ctrl-slide { - animation-duration: 0.5s; - animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1); -} - -.ac-ctrl-slide.ac-ctrl-slideTopToBottom { - animation-name: fadeIn, slideTopToBottom; -} - -.ac-ctrl-slide.ac-ctrl-slideBottomToTop { - animation-name: fadeIn, slideBottomToTop; -} - -.ac-ctrl-slide.ac-ctrl-slideLeftToRight { - animation-name: fadeIn, slideLeftToRight; -} - -.ac-ctrl-slide.ac-ctrl-slideRightToLeft { - animation-name: fadeIn, slideRightToLeft; -} - -.ac-ctrl { - box-sizing: border-box; - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; - font-size: 14px; - font-weight: normal; -} - -.ac-ctrl-dropdown-item { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; -} - -.ac-ctrl-dropdown-item-disabled { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; - color: #666666; -} - -.ac-ctrl-dropdown-item:hover { - background-color: #EEEEEE; -} - -.ac-ctrl-dropdown-item:focus { - outline: 0; - background-color: #CCCCCC; -} - -.ac-ctrl-popup-container { - border: 1px solid #EEEEEE; - background-color: white; - position: absolute; - box-shadow: 0 0 15px -5px rgba(0, 0, 0, 0.4); - overflow-y: auto; -} - -.ac-ctrl-popup-container:focus { - outline: 0; -} diff --git a/source/nodejs/adaptivecards-designer-app/dist/containers/teams-container-light.css b/source/nodejs/adaptivecards-designer-app/dist/containers/teams-container-light.css deleted file mode 100644 index 9379bb445e..0000000000 --- a/source/nodejs/adaptivecards-designer-app/dist/containers/teams-container-light.css +++ /dev/null @@ -1,406 +0,0 @@ -.teams-frame { - display: flex; -} - -.teams-botNameAndTime { - color: black; - margin-bottom: 12px; -} - -.teams-hexagon-outer { - overflow: hidden; - transform: rotate(120deg); - flex: 0 0 50px; - height: 40px; - margin-right: 6px; -} - -.teams-hexagon-inner { - overflow: hidden; - width: 100%; - height: 100%; - transform: rotate(-60deg); -} - -.teams-bot-logo { - width: 100%; - height: 100%; - background-repeat: no-repeat; - background-position: 50%; - background-image: url(bot-framework.png); - background-size: 50px 50px; - visibility: visible; - transform: rotate(-60deg); -} - -.teams-inner-frame { - background-color: white; - border-radius: 4px; - padding: 24px; - min-width: 400px; - max-width: 726px; -} - -.teams-card { - border: 2px solid #F1F0EF; - border-top-color: #ACCEEF; - border-radius: 4px; -} - -.ac-media-poster {} - -.ac-media-poster.empty { - height: 200px; - background-color: #F2F2F2; -} - -.ac-media-playButton { - width: 56px; - height: 56px; - border: 1px solid #EEEEEE; - border-radius: 28px; - box-shadow: 0px 0px 10px #EEEEEE; - background-color: rgba(255, 255, 255, 0.9); - color: black; - cursor: pointer; -} - -.ac-media-playButton-arrow { - color: black; -} - -.ac-media-playButton:hover { - background-color: white; -} - -.ac-image.ac-selectable { - cursor: pointer; -} - -.ac-image.ac-selectable:hover { - background-color: rgba(0, 0, 0, 0.1); -} - -.ac-image.ac-selectable:active { - background-color: rgba(0, 0, 0, 0.15); -} - -a.ac-anchor { - text-decoration: none; -} - -a.ac-anchor:link { - color: #6264A7; -} - -a.ac-anchor:visited { - color: #6264A7; -} - -a.ac-anchor:link:active { - color: #6264A7; -} - -a.ac-anchor:visited:active { - color: #6264A7; -} - -.ac-container.ac-selectable, .ac-columnSet.ac-selectable { - padding: 0px; -} - -.ac-container.ac-selectable:hover, .ac-columnSet.ac-selectable:hover { - background-color: rgba(0, 0, 0, 0.1) !important; -} - -.ac-container.ac-selectable:active, .ac-columnSet.ac-selectable:active { - background-color: rgba(0, 0, 0, 0.15) !important; -} - -.ac-pushButton { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - padding: 4px 10px 5px 10px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - height: 32px; - background-color: white; - color: #6264A7; - border: 2px solid #BFC0DA; - border-radius: 4px; -} - -.ac-pushButton:hover { - background-color: #6264A7; - border: 2px solid #6264A7; - color: white; -} - -.ac-pushButton:active { - background-color: #6264A7; - border: 2px solid #6264A7; - color: white; -} - -.ac-pushButton-disabled { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - padding: 4px 10px 5px 10px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - height: 32px; - border: 4px solid #EDEBE9; - background-color: #EDEBE9; - color: #C8C6C4; - border-radius: 4px; -} - -@media (forced-colors: none) { - .ac-pushButton.expanded { - background-color: #6264A7; - border: 2px solid #6264A7; - color: white; - } -} - -@media (forced-colors: active) { - .ac-pushButton.expanded { - background-color: highlight; - color: highlightText; - forced-color-adjust: none; - } -} - -.ac-pushButton.style-emphasis { - background-color: #6264A7; - border: 2px solid #6264A7; - color: white; -} - -.ac-input { - font-family: "Segoe UI", sans-serif; - font-size: 14px; - color: black; -} - -.ac-input.ac-input-required { -} - -.ac-input.ac-textInput.ac-input-validation-failed, -.ac-input.ac-numberInput.ac-input-validation-failed, -.ac-input.ac-dateInput.ac-input-validation-failed, -.ac-input.ac-timeInput.ac-input-validation-failed, -.ac-input.ac-multichoiceInput.ac-choiceSetInput-compact.ac-input-validation-failed { - border: 1px solid red !important; -} - -.ac-input.ac-toggleInput.ac-input-validation-failed, -.ac-input.ac-choiceSetInput-expanded.ac-input-validation-failed, -.ac-input.ac-choiceSetInput-multiSelect.ac-input-validation-failed { - outline: 1px solid red; -} - -.ac-input.ac-textInput { - resize: none; -} - -.ac-input.ac-textInput.ac-multiline { - height: 72px; -} - -.ac-input.ac-textInput, .ac-input.ac-numberInput, .ac-input.ac-dateInput, .ac-input.ac-timeInput { - height: 31px; -} - -.ac-input.ac-textInput, .ac-input.ac-numberInput, .ac-input.ac-dateInput, .ac-input.ac-timeInput, .ac-input.ac-multichoiceInput { - background-color: #F3F2F1; - border: 1px solid #F3F2F1; - border-radius: 4px; - padding: 4px 8px 4px 8px; -} - -/* ac-inlineActionButton should set height to the same as ac-input.ac-textInput */ - -.ac-inlineActionButton { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: none; - background-color: transparent; - height: 31px; -} - -.ac-inlineActionButton.textOnly { - padding: 0 8px; -} - -.ac-inlineActionButton.iconOnly { - padding: 0; -} - -.ac-inlineActionButton:hover { - background-color: #EEEEEE; -} - -.ac-inlineActionButton:active { - background-color: #CCCCCC; -} - -.ac-inlineActionButton-disabled { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: none; - background-color: transparent; - height: 31px; - color: #999999; -} - -.ac-inlineActionButton-disabled.textOnly { - padding: 0 8px; -} - -.ac-inlineActionButton-disabled.iconOnly { - padding: 0; -} - -/* Popup menu */ - -.ac-ctrl-overlay { - position: absolute; - left: 0; - top: 0; - z-index: 10000; -} - -@keyframes fadeIn { - 0% { - opacity: 0; - } -} - -@keyframes slideTopToBottom { - 0% { - transform: translate(0, -20px); - } -} - -@keyframes slideBottomToTop { - 0% { - transform: translate(0, 20px); - } -} - -@keyframes slideLeftToRight { - 0% { - transform: translate(-20px, 0); - } -} - -@keyframes slideRightToLeft { - 0% { - transform: translate(20px, 0); - } -} - -.ac-ctrl-slide { - animation-duration: 0.5s; - animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1); -} - -.ac-ctrl-slide.ac-ctrl-slideTopToBottom { - animation-name: fadeIn, slideTopToBottom; -} - -.ac-ctrl-slide.ac-ctrl-slideBottomToTop { - animation-name: fadeIn, slideBottomToTop; -} - -.ac-ctrl-slide.ac-ctrl-slideLeftToRight { - animation-name: fadeIn, slideLeftToRight; -} - -.ac-ctrl-slide.ac-ctrl-slideRightToLeft { - animation-name: fadeIn, slideRightToLeft; -} - -.ac-ctrl { - box-sizing: border-box; - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; - font-size: 14px; - font-weight: normal; -} - -.ac-ctrl-dropdown-item { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; -} - -.ac-ctrl-dropdown-item-disabled { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; - color: #666666; -} - -.ac-ctrl-dropdown-item:hover { - background-color: #EEEEEE; -} - -.ac-ctrl-dropdown-item:focus { - outline: 0; - background-color: #CCCCCC; -} - -.ac-ctrl-popup-container { - border: 1px solid #EEEEEE; - background-color: white; - position: absolute; - box-shadow: 0 0 15px -5px rgba(0, 0, 0, 0.4); - overflow-y: auto; -} - -.ac-ctrl-popup-container:focus { - outline: 0; -} diff --git a/source/nodejs/adaptivecards-designer-app/dist/containers/timeline-container.css b/source/nodejs/adaptivecards-designer-app/dist/containers/timeline-container.css deleted file mode 100644 index 9b27d93911..0000000000 --- a/source/nodejs/adaptivecards-designer-app/dist/containers/timeline-container.css +++ /dev/null @@ -1,125 +0,0 @@ -.timeline-frame { - background: url('timeline.jpg'); - height: 400px; - background-repeat: no-repeat; -} - -.timeline-card { - overflow: hidden; - position: relative; - left: 48px; - top: 158px; - width: 328px; - height: 178px; -} - -/* Popup menu */ - -.ac-ctrl-overlay { - position: absolute; - left: 0; - top: 0; - z-index: 10000; -} - -@keyframes fadeIn { - 0% { - opacity: 0; - } -} - -@keyframes slideTopToBottom { - 0% { - transform: translate(0, -20px); - } -} - -@keyframes slideBottomToTop { - 0% { - transform: translate(0, 20px); - } -} - -@keyframes slideLeftToRight { - 0% { - transform: translate(-20px, 0); - } -} - -@keyframes slideRightToLeft { - 0% { - transform: translate(20px, 0); - } -} - -.ac-ctrl-slide { - animation-duration: 0.5s; - animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1); -} - -.ac-ctrl-slide.ac-ctrl-slideTopToBottom { - animation-name: fadeIn, slideTopToBottom; -} - -.ac-ctrl-slide.ac-ctrl-slideBottomToTop { - animation-name: fadeIn, slideBottomToTop; -} - -.ac-ctrl-slide.ac-ctrl-slideLeftToRight { - animation-name: fadeIn, slideLeftToRight; -} - -.ac-ctrl-slide.ac-ctrl-slideRightToLeft { - animation-name: fadeIn, slideRightToLeft; -} - -.ac-ctrl { - box-sizing: border-box; - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; - font-size: 14px; - font-weight: normal; -} - -.ac-ctrl-dropdown-item { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; -} - -.ac-ctrl-dropdown-item-disabled { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; - color: #666666; -} - -.ac-ctrl-dropdown-item:hover { - background-color: #EEEEEE; -} - -.ac-ctrl-dropdown-item:focus { - outline: 0; - background-color: #CCCCCC; -} - -.ac-ctrl-popup-container { - border: 1px solid #EEEEEE; - background-color: white; - position: absolute; - box-shadow: 0 0 15px -5px rgba(0, 0, 0, 0.4); - overflow-y: auto; -} - -.ac-ctrl-popup-container:focus { - outline: 0; -} diff --git a/source/nodejs/adaptivecards-designer-app/dist/containers/timeline.jpg b/source/nodejs/adaptivecards-designer-app/dist/containers/timeline.jpg deleted file mode 100644 index 492d7063d6..0000000000 Binary files a/source/nodejs/adaptivecards-designer-app/dist/containers/timeline.jpg and /dev/null differ diff --git a/source/nodejs/adaptivecards-designer-app/dist/containers/toast-container.css b/source/nodejs/adaptivecards-designer-app/dist/containers/toast-container.css deleted file mode 100644 index f4dc3106c1..0000000000 --- a/source/nodejs/adaptivecards-designer-app/dist/containers/toast-container.css +++ /dev/null @@ -1,294 +0,0 @@ -.ac-media-poster {} - -.ac-media-poster.empty { - height: 200px; - background-color: #F2F2F2; -} - -.ac-media-playButton { - width: 56px; - height: 56px; - border: 1px solid #EEEEEE; - border-radius: 28px; - box-shadow: 0px 0px 10px #EEEEEE; - background-color: rgba(255, 255, 255, 0.9); - color: black; - cursor: pointer; -} - -.ac-media-playButton-arrow { - color: black; -} - -.ac-media-playButton:hover { - background-color: white; -} - -.ac-image.ac-selectable { - cursor: pointer; -} - -.ac-image.ac-selectable:hover { - background-color: rgba(0, 0, 0, 0.1); -} - -.ac-image.ac-selectable:active { - background-color: rgba(0, 0, 0, 0.15); -} - -a.ac-anchor { - text-decoration: none; -} - -a.ac-anchor:link { - color: #005A9E; -} - -a.ac-anchor:visited { - color: #005A9E; -} - -a.ac-anchor:link:active { - color: #004D84; -} - -a.ac-anchor:visited:active { - color: #004D84; -} - -.ac-container.ac-selectable, .ac-columnSet.ac-selectable { - padding: 0; -} - -.ac-container.ac-selectable:hover, .ac-columnSet.ac-selectable:hover { - background-color: rgba(0, 0, 0, 0.1) !important; -} - -.ac-container.ac-selectable:active, .ac-columnSet.ac-selectable:active { - background-color: rgba(0, 0, 0, 0.15) !important; -} - -.toast-card>div { - border: 1px solid rgb(71, 71, 71); - width: 362px !important; - overflow: hidden; -} - -.ac-pushButton { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 15px; - font-weight: 500; - padding: 4px 10px 5px 10px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-color: rgba(255, 255, 255, 0.2); - color: white; - border: 2px solid transparent; -} - -.ac-pushButton:hover { - border: 2px solid rgba(255, 255, 255, 0.6); -} - -.ac-pushButton:active { - background-color: rgba(255, 255, 255, 0.4); -} - -.ac-input { - font-family: "Segoe UI", sans-serif; - font-size: 14px; - color: white; -} - -.ac-input.ac-input-required { -} - -.ac-input.ac-textInput.ac-input-validation-failed, -.ac-input.ac-numberInput.ac-input-validation-failed, -.ac-input.ac-dateInput.ac-input-validation-failed, -.ac-input.ac-timeInput.ac-input-validation-failed, -.ac-input.ac-multichoiceInput.ac-choiceSetInput-compact.ac-input-validation-failed { - border: 1px solid red !important; -} - -.ac-input.ac-toggleInput.ac-input-validation-failed, -.ac-input.ac-choiceSetInput-expanded.ac-input-validation-failed, -.ac-input.ac-choiceSetInput-multiSelect.ac-input-validation-failed { - outline: 1px solid red; -} - -.ac-input.ac-textInput { - resize: none; -} - -.ac-input.ac-textInput.ac-multiline { - height: 72px; -} - -.ac-input.ac-textInput, .ac-input.ac-numberInput, .ac-input.ac-dateInput, .ac-input.ac-timeInput { - height: 31px; -} - -.ac-input.ac-textInput, .ac-input.ac-numberInput, .ac-input.ac-dateInput, .ac-input.ac-timeInput, .ac-input.ac-multichoiceInput { - border: 2px solid #797979; - padding: 4px 8px 4px 8px; - background-color: #0C0C0C; -} - -.ac-input.ac-textInput:hover, .ac-input.ac-numberInput:hover, .ac-input.ac-dateInput:hover, .ac-input.ac-timeInput:hover, .ac-input.ac-multichoiceInput:hover { - border: 2px solid #A5A5A5; - background-color: #0C0C0C; -} - -/* ac-inlineActionButton should set height to the same as ac-input.ac-textInput */ - -.ac-inlineActionButton { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Segoe UI", sans-serif; - font-size: 14px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: none; - background-color: transparent; - height: 31px; -} - -.ac-inlineActionButton.textOnly { - padding: 0 8px; -} - -.ac-inlineActionButton.iconOnly { - padding: 0; -} - -.ac-inlineActionButton:hover { - background-color: #EEEEEE; -} - -.ac-inlineActionButton:active { - background-color: #CCCCCC; -} - -/* Popup menu */ - -.ac-ctrl-overlay { - position: absolute; - left: 0; - top: 0; - z-index: 10000; -} - -@keyframes fadeIn { - 0% { - opacity: 0; - } -} - -@keyframes slideTopToBottom { - 0% { - transform: translate(0, -20px); - } -} - -@keyframes slideBottomToTop { - 0% { - transform: translate(0, 20px); - } -} - -@keyframes slideLeftToRight { - 0% { - transform: translate(-20px, 0); - } -} - -@keyframes slideRightToLeft { - 0% { - transform: translate(20px, 0); - } -} - -.ac-ctrl-slide { - animation-duration: 0.5s; - animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1); -} - -.ac-ctrl-slide.ac-ctrl-slideTopToBottom { - animation-name: fadeIn, slideTopToBottom; -} - -.ac-ctrl-slide.ac-ctrl-slideBottomToTop { - animation-name: fadeIn, slideBottomToTop; -} - -.ac-ctrl-slide.ac-ctrl-slideLeftToRight { - animation-name: fadeIn, slideLeftToRight; -} - -.ac-ctrl-slide.ac-ctrl-slideRightToLeft { - animation-name: fadeIn, slideRightToLeft; -} - -.ac-ctrl { - box-sizing: border-box; - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; - font-size: 14px; - font-weight: normal; -} - -.ac-ctrl-dropdown-item { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; -} - -.ac-ctrl-dropdown-item-disabled { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; - color: #666666; -} - -.ac-ctrl-dropdown-item:hover { - background-color: #EEEEEE; -} - -.ac-ctrl-dropdown-item:focus { - outline: 0; - background-color: #CCCCCC; -} - -.ac-ctrl-popup-container { - border: 1px solid #EEEEEE; - background-color: white; - position: absolute; - box-shadow: 0 0 15px -5px rgba(0, 0, 0, 0.4); - overflow-y: auto; -} - -.ac-ctrl-popup-container:focus { - outline: 0; -} diff --git a/source/nodejs/adaptivecards-designer-app/dist/containers/webchat-container.css b/source/nodejs/adaptivecards-designer-app/dist/containers/webchat-container.css deleted file mode 100644 index 749317931a..0000000000 --- a/source/nodejs/adaptivecards-designer-app/dist/containers/webchat-container.css +++ /dev/null @@ -1,367 +0,0 @@ -.ac-media-poster {} - -.ac-media-poster.empty { - height: 200px; - background-color: #F2F2F2; -} - -.ac-media-playButton { - width: 56px; - height: 56px; - border: 1px solid #EEEEEE; - border-radius: 28px; - box-shadow: 0px 0px 10px #EEEEEE; - background-color: rgba(255, 255, 255, 0.9); - color: black; - cursor: pointer; -} - -.ac-media-playButton-arrow { - color: black; -} - -.ac-media-playButton:hover { - background-color: white; -} - -.ac-image.ac-selectable { - cursor: pointer; -} - -.ac-image.ac-selectable:hover { - background-color: rgba(0, 0, 0, 0.1); -} - -.ac-image.ac-selectable:active { - background-color: rgba(0, 0, 0, 0.15); -} - -a.ac-anchor { - text-decoration: none; -} - -a.ac-anchor:link { - color: #005a9e; -} - -a.ac-anchor:visited { - color: #005a9e; -} - -a.ac-anchor:link:active { - color: #004d84; -} - -a.ac-anchor:visited:active { - color: #004d84; -} - -.ac-container.ac-selectable, .ac-columnSet.ac-selectable { - padding: 0px; -} - -.ac-container.ac-selectable:hover, .ac-columnSet.ac-selectable:hover { - background-color: rgba(0, 0, 0, 0.1) !important; -} - -.ac-container.ac-selectable:active, .ac-columnSet.ac-selectable:active { - background-color: rgba(0, 0, 0, 0.15) !important; -} - -.ac-pushButton { - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Calibri", sans-serif; - font-size: 14px; - font-weight: 600; - padding: 10px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: 1px solid #DDDDDD; - background-color: #FFFFFF; - color: #0063B1; -} - -.ac-pushButton:hover, -.ac-pushButton:focus { - border-color: #0063B1; -} - -.ac-pushButton.style-positive { - background-color: #0078D7; - color: white; -} - -.ac-pushButton.style-positive:hover, .ac-pushButton.style-positive:active { - background-color: #006ABC; -} - -.ac-pushButton.style-destructive { - background-color: #E50000; - color: white; -} - -.ac-pushButton.style-destructive:hover, .ac-pushButton.style-destructive:active { - background-color: #BF0000; -} - -.ac-pushButton-disabled { - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Calibri", sans-serif; - font-size: 14px; - font-weight: 600; - padding: 10px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: 1px solid #EEEEEE; - background-color: #EEEEEE; - color: #666666; -} - -.ac-quickActionButton { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Calibri", sans-serif; - font-size: 14px; - font-weight: 600; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: none; - background-color: #DDDDDD; -} - -.ac-input { - font-family: "Calibri", sans-serif; - font-size: 14px; - color: black; -} - -.ac-input.ac-input-required { -} - -.ac-input.ac-textInput.ac-input-validation-failed, -.ac-input.ac-numberInput.ac-input-validation-failed, -.ac-input.ac-dateInput.ac-input-validation-failed, -.ac-input.ac-timeInput.ac-input-validation-failed, -.ac-input.ac-multichoiceInput.ac-choiceSetInput-compact.ac-input-validation-failed { - border: 1px solid red !important; -} - -.ac-input.ac-toggleInput.ac-input-validation-failed, -.ac-input.ac-choiceSetInput-expanded.ac-input-validation-failed, -.ac-input.ac-choiceSetInput-multiSelect.ac-input-validation-failed { - outline: 1px solid red; -} - -.ac-input-container { - display: flex; - align-items: flex-end; -} - -.ac-input.ac-textInput { - resize: none; -} - -.ac-input.ac-textInput.ac-multiline { - height: 72px; -} - -.ac-input.ac-textInput, .ac-input.ac-numberInput, .ac-input.ac-dateInput, .ac-input.ac-timeInput { - height: 31px; -} - -.ac-input.ac-textInput, .ac-input.ac-numberInput, .ac-input.ac-dateInput, .ac-input.ac-timeInput, .ac-input.ac-multichoiceInput { - border: 1px solid #dddddd; - padding: 4px 8px 4px 8px; -} - -/* ac-inlineActionButton should set height to the same as ac-input.ac-textInput */ - -.ac-inlineActionButton { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Calibri", sans-serif; - font-size: 13.3px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: none; - background-color: transparent; - height: 31px; -} - -.ac-inlineActionButton.textOnly { - padding: 0 8px; -} - -.ac-inlineActionButton.iconOnly { - padding: 0; -} - -.ac-inlineActionButton:hover { - background-color: #EEEEEE; -} - -.ac-inlineActionButton:active { - background-color: #CCCCCC; -} - -.ac-inlineActionButton-disabled { - overflow: hidden; - text-overflow: ellipsis; - text-align: center; - vertical-align: middle; - cursor: pointer; - font-family: "Calibri", sans-serif; - font-size: 13.3px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - border: none; - background-color: transparent; - height: 31px; -} - -.ac-inlineActionButton-disabled.textOnly { - padding: 0 8px; -} - -.ac-inlineActionButton-disabled.iconOnly { - padding: 0; -} - -.webChatOuterContainer { - background-color: #eceff1; - border: 1px solid #e6e6e6; - padding: 8px; - width: 416px; - border-radius: 4px; -} - -/* Popup menu */ - -.ac-ctrl-overlay { - position: absolute; - left: 0; - top: 0; - z-index: 10000; -} - -@keyframes fadeIn { - 0% { - opacity: 0; - } -} - -@keyframes slideTopToBottom { - 0% { - transform: translate(0, -20px); - } -} - -@keyframes slideBottomToTop { - 0% { - transform: translate(0, 20px); - } -} - -@keyframes slideLeftToRight { - 0% { - transform: translate(-20px, 0); - } -} - -@keyframes slideRightToLeft { - 0% { - transform: translate(20px, 0); - } -} - -.ac-ctrl-slide { - animation-duration: 0.5s; - animation-timing-function: cubic-bezier(0.1, 0.9, 0.2, 1); -} - -.ac-ctrl-slide.ac-ctrl-slideTopToBottom { - animation-name: fadeIn, slideTopToBottom; -} - -.ac-ctrl-slide.ac-ctrl-slideBottomToTop { - animation-name: fadeIn, slideBottomToTop; -} - -.ac-ctrl-slide.ac-ctrl-slideLeftToRight { - animation-name: fadeIn, slideLeftToRight; -} - -.ac-ctrl-slide.ac-ctrl-slideRightToLeft { - animation-name: fadeIn, slideRightToLeft; -} - -.ac-ctrl { - box-sizing: border-box; - font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; - font-size: 14px; - font-weight: normal; -} - -.ac-ctrl-dropdown-item { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; -} - -.ac-ctrl-dropdown-item-disabled { - width: 100%; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - display: block; - padding: 0px 12px 0px 12px; - line-height: 30px; - cursor: pointer; - color: #666666; -} - -.ac-ctrl-dropdown-item:hover { - background-color: #EEEEEE; -} - -.ac-ctrl-dropdown-item:focus { - outline: 0; - background-color: #CCCCCC; -} - -.ac-ctrl-popup-container { - border: 1px solid #EEEEEE; - background-color: white; - position: absolute; - box-shadow: 0 0 15px -5px rgba(0, 0, 0, 0.4); - overflow-y: auto; -} - -.ac-ctrl-popup-container:focus { - outline: 0; -} diff --git a/source/nodejs/adaptivecards-designer-app/package-lock.json b/source/nodejs/adaptivecards-designer-app/package-lock.json index 5e00aef83d..a2f946538f 100644 --- a/source/nodejs/adaptivecards-designer-app/package-lock.json +++ b/source/nodejs/adaptivecards-designer-app/package-lock.json @@ -1,436 +1,203 @@ { "name": "adaptivecards-designer-app", - "version": "0.5.2", - "lockfileVersion": 1, + "version": "0.6.0-alpha.0", + "lockfileVersion": 2, "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", - "dev": true - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, + "packages": { + "": { + "name": "adaptivecards-designer-app", + "version": "0.6.0-alpha.0", + "license": "MIT", "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - } - } - }, - "@discoveryjs/json-ext": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz", - "integrity": "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - } - }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", - "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", - "dev": true - }, - "@types/eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", - "dev": true - }, - "@types/estree": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", - "dev": true - }, - "@types/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" + "monaco-editor": "^0.29.1" + }, + "devDependencies": { + "file-loader": "^6.0.0", + "monaco-editor-webpack-plugin": "^5.0.0" } }, - "@types/html-minifier-terser": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", - "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", - "dev": true - }, - "@types/json-schema": { + "node_modules/@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "@types/node": { - "version": "16.6.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.1.tgz", - "integrity": "sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw==", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.10.1.tgz", - "integrity": "sha512-PQg0emRtzZFWq6PxBcdxRH3QIQiyFO3WCVpRL3fgj5oQS3CDs3AeAKfv4DxNhzn8ITdNJGJ4D3Qw8eAJf3lXeQ==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "3.10.1", - "debug": "^4.1.1", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz", - "integrity": "sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/typescript-estree": "3.10.1", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.10.1.tgz", - "integrity": "sha512-Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw==", + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "3.10.1", - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/typescript-estree": "3.10.1", - "eslint-visitor-keys": "^1.1.0" + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "@typescript-eslint/types": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz", - "integrity": "sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz", - "integrity": "sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==", + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, - "requires": { - "@typescript-eslint/types": "3.10.1", - "@typescript-eslint/visitor-keys": "3.10.1", - "debug": "^4.1.1", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "peerDependencies": { + "ajv": "^6.9.1" } }, - "@typescript-eslint/visitor-keys": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz", - "integrity": "sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==", + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" + "engines": { + "node": "*" } }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "engines": { + "node": ">= 4" } }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" } }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "node_modules/loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", "dev": true, - "requires": { - "@xtuc/long": "4.2.2" + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" } }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } + "node_modules/monaco-editor": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.29.1.tgz", + "integrity": "sha512-rguaEG/zrPQSaKzQB7IfX/PpNa0qxF1FY8ZXRkN4WIl8qZdTQRSRJCtRto7IMcSgrU6H53RXI+fTcywOBC4aVw==" }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "node_modules/monaco-editor-webpack-plugin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-5.0.0.tgz", + "integrity": "sha512-KrUUTmMO3lDCNK4honZ6rrrKjOI7FFLeyCktPetIo5HlRqr5dfE6ewaA9qNLH96XY7CekE3Z+v/+I6ufAs3ObA==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "dependencies": { + "loader-utils": "^2.0.0" + }, + "peerDependencies": { + "monaco-editor": "0.29.x", + "webpack": "^4.5.0 || 5.x" } }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" + "engines": { + "node": ">=6" } }, - "@webpack-cli/configtest": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.4.tgz", - "integrity": "sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==", - "dev": true - }, - "@webpack-cli/info": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.3.0.tgz", - "integrity": "sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w==", + "node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, - "requires": { - "envinfo": "^7.7.3" + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "@webpack-cli/serve": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.2.tgz", - "integrity": "sha512-vgJ5OLWadI8aKjDlOH3rb+dYyPd2GTZuQC/Tihjct6F9GpXGZINo3Y/IVuZVTM1eDQB+/AOsjPUWH/WySDaXvw==", - "dev": true - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "dependencies": { + "punycode": "^2.1.0" } - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-import-assertions": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz", - "integrity": "sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + } + }, + "dependencies": { + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, "ajv": { @@ -445,4562 +212,110 @@ "uri-js": "^4.2.2" } }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true - }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" } }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } + "minimist": "^1.2.5" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true + "monaco-editor": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.29.1.tgz", + "integrity": "sha512-rguaEG/zrPQSaKzQB7IfX/PpNa0qxF1FY8ZXRkN4WIl8qZdTQRSRJCtRto7IMcSgrU6H53RXI+fTcywOBC4aVw==" }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "monaco-editor-webpack-plugin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-5.0.0.tgz", + "integrity": "sha512-KrUUTmMO3lDCNK4honZ6rrrKjOI7FFLeyCktPetIo5HlRqr5dfE6ewaA9qNLH96XY7CekE3Z+v/+I6ufAs3ObA==", "dev": true, "requires": { - "array-uniq": "^1.0.1" + "loader-utils": "^2.0.0" } }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "requires": { - "lodash": "^4.17.14" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "browserslist": { - "version": "4.16.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.7.tgz", - "integrity": "sha512-7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001248", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.793", - "escalade": "^3.1.1", - "node-releases": "^1.1.73" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - } - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001251", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz", - "integrity": "sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "dependencies": { - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - } - } - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "clean-css": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", - "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "colorette": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz", - "integrity": "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==", - "dev": true - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" - } - }, - "css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==", - "dev": true - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "dev": true, - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "requires": { - "utila": "~0.4" - } - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - }, - "domhandler": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", - "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", - "dev": true, - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", - "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==", - "dev": true, - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - } - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.808", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.808.tgz", - "integrity": "sha512-espnsbWTuUw0a2jMwfabCc09py2ujB+FZZE1hZWn5yYijEmxzEhdhTLKUfZGjynHvdIMQ4X/Pr/t8s4eiyH/QQ==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", - "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "es-module-lexer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", - "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "eventsource": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", - "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", - "dev": true, - "requires": { - "original": "^1.0.0" - } - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", - "dev": true - }, - "follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "globals": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", - "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", - "dev": true - }, - "html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", - "dev": true, - "requires": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", - "he": "^1.2.0", - "param-case": "^3.0.3", - "relateurl": "^0.2.7", - "terser": "^4.6.3" - } - }, - "html-webpack-plugin": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.3.2.tgz", - "integrity": "sha512-HvB33boVNCz2lTyBsSiMffsJ+m0YLIQ+pskblXgN9fnjS1BgEcuAfdInfXfGrkdXV406k9FiDi86eVCDBgJOyQ==", - "dev": true, - "requires": { - "@types/html-minifier-terser": "^5.0.0", - "html-minifier-terser": "^5.0.1", - "lodash": "^4.17.21", - "pretty-error": "^3.0.4", - "tapable": "^2.0.0" - } - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", - "dev": true - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", - "dev": true, - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-core-module": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "requires": { - "is-path-inside": "^2.1.0" - } - }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "jest-worker": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz", - "integrity": "sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" - } - }, - "loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "dev": true - }, - "loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", - "dev": true - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "requires": { - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - } - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "markdown-it": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", - "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - } - } - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "dev": true - }, - "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "dev": true, - "requires": { - "mime-db": "1.49.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "monaco-editor": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.20.0.tgz", - "integrity": "sha512-hkvf4EtPJRMQlPC3UbMoRs0vTAFAYdzFQ+gpMb8A+9znae1c43q8Mab9iVsgTcg/4PNiLGGn3SlDIa8uvK1FIQ==", - "dev": true - }, - "monaco-editor-webpack-plugin": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-1.9.1.tgz", - "integrity": "sha512-x7fx1w3i/uwZERIgztHAAK3VQMsL8+ku0lFXXbO81hKDg8IieACqjGEa2mqEueg0c/fX+wd0oI+75wB19KJAsA==", - "dev": true, - "requires": { - "loader-utils": "^1.2.3" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - } - } - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true - }, - "node-releases": { - "version": "1.1.74", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.74.tgz", - "integrity": "sha512-caJBVempXZPepZoZAPCWRTNxYQ+xtG/KAi4ozTA5A+nJ7IU+kLQCbqaUjb5Rwy14M9upBWiQ4NutcmW04LJSRw==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "nth-check": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", - "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", - "dev": true, - "requires": { - "boolbase": "^1.0.0" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dev": true, - "requires": { - "url-parse": "^1.4.3" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dev": true, - "requires": { - "retry": "^0.12.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - } - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true - } - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "pretty-error": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-3.0.4.tgz", - "integrity": "sha512-ytLFLfv1So4AO1UkoBF6GXQgJRaKbiSiGFICaOPNwQ3CMvBvXpLRubeQWyPGnsbV/t9ml9qto6IeCsho0aEvwQ==", - "dev": true, - "requires": { - "lodash": "^4.17.20", - "renderkid": "^2.0.6" - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - } - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "requires": { - "resolve": "^1.9.0" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "renderkid": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", - "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", - "dev": true, - "requires": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selfsigned": { - "version": "1.10.11", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", - "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", - "dev": true, - "requires": { - "node-forge": "^0.10.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", - "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", - "dev": true, - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", - "websocket-driver": "^0.7.4" - } - }, - "sockjs-client": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz", - "integrity": "sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==", - "dev": true, - "requires": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.5.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "table": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", - "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", - "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", - "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "tapable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", - "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", - "dev": true - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, - "terser-webpack-plugin": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz", - "integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==", - "dev": true, - "requires": { - "jest-worker": "^27.0.2", - "p-limit": "^3.1.0", - "schema-utils": "^3.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.0" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "terser": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", - "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typescript": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", - "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", - "dev": true - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true - }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -5009,625 +324,6 @@ "requires": { "punycode": "^2.1.0" } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-parse": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", - "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "watchpack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", - "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "webpack": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.50.0.tgz", - "integrity": "sha512-hqxI7t/KVygs0WRv/kTgUW8Kl3YC81uyWQSo/7WUs5LsuRw0htH/fCwbVBGCuiX/t4s7qzjXFcf41O8Reiypag==", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.50", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.7.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.4", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.2.0", - "webpack-sources": "^3.2.0" - }, - "dependencies": { - "acorn": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", - "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", - "dev": true - } - } - }, - "webpack-cli": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.8.0.tgz", - "integrity": "sha512-+iBSWsX16uVna5aAYN6/wjhJy1q/GKk4KjKvfg90/6hykCTSgozbfz5iRgDTSJt/LgSbYxdBX3KBHeobIs+ZEw==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.0.4", - "@webpack-cli/info": "^1.3.0", - "@webpack-cli/serve": "^1.5.2", - "colorette": "^1.2.1", - "commander": "^7.0.0", - "execa": "^5.0.0", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "v8-compile-cache": "^2.2.0", - "webpack-merge": "^5.7.3" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - } - } - }, - "webpack-dev-middleware": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", - "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", - "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "dev": true - } - } - }, - "webpack-dev-server": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", - "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.8", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dev": true, - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true - } - } - }, - "webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - } - }, - "webpack-sources": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.0.tgz", - "integrity": "sha512-fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw==", - "dev": true - }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true } } } diff --git a/source/nodejs/adaptivecards-designer-app/package.json b/source/nodejs/adaptivecards-designer-app/package.json index 8a803854ba..9ea3e458e0 100644 --- a/source/nodejs/adaptivecards-designer-app/package.json +++ b/source/nodejs/adaptivecards-designer-app/package.json @@ -1,38 +1,26 @@ { "name": "adaptivecards-designer-app", - "version": "0.5.2", + "version": "0.6.0-alpha.0", "description": "Adaptive Card designer app", "author": "AdaptiveCards", "license": "MIT", "private": true, "scripts": { "build": "webpack", + "clean": "rimraf lib dist", "watch": "webpack --watch", "start": "webpack-dev-server --open", "lint": "eslint src/*.ts", - "release": "npm run build" + "release": "npm run clean && webpack --mode=production" }, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^3.4.0", - "@typescript-eslint/parser": "^3.4.0", - "adaptivecards": "^2.10.0-beta.1", - "adaptivecards-designer": "^2.3.0-beta.1", - "adaptivecards-templating": "^2.2.0-beta.1", - "eslint": "^7.3.1", "file-loader": "^6.0.0", - "html-webpack-plugin": "^5.3.2", - "markdown-it": "^8.4.0", - "monaco-editor": "^0.20.0", - "monaco-editor-webpack-plugin": "^1.9.0", - "rimraf": "^3.0.2", - "typescript": "^4.2.3", - "webpack": "^5.47.0", - "webpack-cli": "^4.7.2", - "webpack-dev-server": "^3.11.2" + "monaco-editor-webpack-plugin": "^5.0.0" }, "dependencies": { - "adaptivecards": "^2.10.0-beta.1", - "adaptivecards-designer": "^2.3.0-beta.1", - "adaptivecards-templating": "^2.2.0-beta.1" + "adaptivecards": "^3.0.0-beta.1", + "adaptivecards-designer": "^2.4.0-alpha.0", + "adaptivecards-templating": "^2.3.0-alpha.0", + "monaco-editor": "^0.29.1" } } diff --git a/source/nodejs/adaptivecards-designer-app/webpack.config.js b/source/nodejs/adaptivecards-designer-app/webpack.config.js index c960b7003b..5f399d8f97 100644 --- a/source/nodejs/adaptivecards-designer-app/webpack.config.js +++ b/source/nodejs/adaptivecards-designer-app/webpack.config.js @@ -1,7 +1,6 @@ const path = require("path"); const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const HtmlWebpackPlugin = require('html-webpack-plugin'); -const CleanWebpackPlugin = require('clean-webpack-plugin'); const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin'); const CopyWebpackPlugin = require('copy-webpack-plugin'); @@ -37,21 +36,26 @@ module.exports = (env, argv) => { { test: /\.css$/, use: [ - 'style-loader', - //MiniCssExtractPlugin.loader, + devMode ? 'style-loader' : MiniCssExtractPlugin.loader, 'css-loader' ] } ] }, plugins: [ - //new CleanWebpackPlugin(['dist']), new CopyWebpackPlugin({ - patterns: [{ - from: 'node_modules/adaptivecards-designer/src/containers/*', - to: 'containers/', - flatten: true - }] + patterns: [ + { + from: 'node_modules/adaptivecards-designer/src/containers/*', + to: 'containers/[name][ext]' + }, + { + // the designer expects to find its CSS here. an alternative for a consumer would + // be to make sure they load it themselves. + from: 'node_modules/adaptivecards-designer/dist/adaptivecards-designer.css', + to: 'adaptivecards-designer.css' + } + ] }), new HtmlWebpackPlugin({ title: "Adaptive Cards Designer", diff --git a/source/nodejs/adaptivecards-designer/README.md b/source/nodejs/adaptivecards-designer/README.md index 6424d48ef3..b671d3ee4f 100644 --- a/source/nodejs/adaptivecards-designer/README.md +++ b/source/nodejs/adaptivecards-designer/README.md @@ -47,9 +47,6 @@ To load the designer component you have 2 options: - - - @@ -60,6 +57,9 @@ To load the designer component you have 2 options: --> + + + - - - - - - - - - - - - - - - -
-
-

Adaptive Cards 💙 Fabric

- -

To run:

- -
$ npm install
-
$ npm start
-
- -

A Fabric-enhanced card should render below...

- -
-
-
- - - - - - - - - - -
-
- - - diff --git a/source/nodejs/adaptivecards-fabric/package-lock.json b/source/nodejs/adaptivecards-fabric/package-lock.json deleted file mode 100644 index 9e582d3c5a..0000000000 --- a/source/nodejs/adaptivecards-fabric/package-lock.json +++ /dev/null @@ -1,10276 +0,0 @@ -{ - "name": "adaptivecards-fabric", - "version": "1.1.2", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", - "dev": true - }, - "@babel/core": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.0.tgz", - "integrity": "sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.0", - "@babel/helper-module-transforms": "^7.15.0", - "@babel/helpers": "^7.14.8", - "@babel/parser": "^7.15.0", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", - "dev": true - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/generator": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", - "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", - "dev": true, - "requires": { - "@babel/types": "^7.15.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz", - "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-function-name": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", - "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.14.5", - "@babel/template": "^7.14.5", - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", - "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", - "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", - "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", - "dev": true, - "requires": { - "@babel/types": "^7.15.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", - "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz", - "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.15.0", - "@babel/helper-simple-access": "^7.14.8", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.9", - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", - "dev": true - } - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", - "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", - "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.15.0", - "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0" - } - }, - "@babel/helper-simple-access": { - "version": "7.14.8", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", - "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", - "dev": true, - "requires": { - "@babel/types": "^7.14.8" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", - "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", - "dev": true, - "requires": { - "@babel/types": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true - }, - "@babel/helpers": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.3.tgz", - "integrity": "sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g==", - "dev": true, - "requires": { - "@babel/template": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0" - } - }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.15.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.3.tgz", - "integrity": "sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/template": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", - "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.14.5", - "@babel/types": "^7.14.5" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", - "dev": true - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/traverse": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", - "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.0", - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-hoist-variables": "^7.14.5", - "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.15.0", - "@babel/types": "^7.15.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", - "dev": true - }, - "@babel/highlight": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.14.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", - "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", - "dev": true - } - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dev": true, - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, - "@discoveryjs/json-ext": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz", - "integrity": "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==", - "dev": true - }, - "@fluentui/date-time-utilities": { - "version": "7.9.1", - "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-7.9.1.tgz", - "integrity": "sha512-o8iU1VIY+QsqVRWARKiky29fh4KR1xaKSgMClXIi65qkt8EDDhjmlzL0KVDEoDA2GWukwb/1PpaVCWDg4v3cUQ==", - "dev": true, - "requires": { - "@uifabric/set-version": "^7.0.24", - "tslib": "^1.10.0" - } - }, - "@fluentui/dom-utilities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-1.1.2.tgz", - "integrity": "sha512-XqPS7l3YoMwxdNlaYF6S2Mp0K3FmVIOIy2K3YkMc+eRxu9wFK6emr2Q/3rBhtG5u/On37NExRT7/5CTLnoi9gw==", - "dev": true, - "requires": { - "@uifabric/set-version": "^7.0.24", - "tslib": "^1.10.0" - } - }, - "@fluentui/keyboard-key": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.2.17.tgz", - "integrity": "sha512-iT1bU56rKrKEOfODoW6fScY11qj3iaYrZ+z11T6fo5+TDm84UGkkXjLXJTE57ZJzg0/gbccHQWYv+chY7bJN8Q==", - "dev": true, - "requires": { - "tslib": "^1.10.0" - } - }, - "@fluentui/react": { - "version": "7.174.0", - "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-7.174.0.tgz", - "integrity": "sha512-nPng19/ncq34ZwbHMa26US3Fu+7Q3GBo7DDcGnj5+csvw+XaGkJ+OeKDx0PyulkI5WM+hkR358VwxDJ87jlH1A==", - "dev": true, - "requires": { - "@uifabric/set-version": "^7.0.24", - "office-ui-fabric-react": "^7.174.0", - "tslib": "^1.10.0" - } - }, - "@fluentui/react-focus": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-7.17.6.tgz", - "integrity": "sha512-JkLWNDe567lhvbnIhbYv9nUWYDIVN06utc3krs0UZBI+A0YZtQmftBtY0ghXo4PSjgozZocdu9sYkkgZOgyRLg==", - "dev": true, - "requires": { - "@fluentui/keyboard-key": "^0.2.12", - "@uifabric/merge-styles": "^7.19.2", - "@uifabric/set-version": "^7.0.24", - "@uifabric/styling": "^7.19.0", - "@uifabric/utilities": "^7.33.5", - "tslib": "^1.10.0" - } - }, - "@fluentui/react-window-provider": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-1.0.2.tgz", - "integrity": "sha512-fGSgL3Vp/+6t1Ysfz21FWZmqsU+iFVxOigvHnm5uKVyyRPwtaabv/F6kQ2y5isLMI2YmJaUd2i0cDJKu8ggrvw==", - "dev": true, - "requires": { - "@uifabric/set-version": "^7.0.24", - "tslib": "^1.10.0" - } - }, - "@fluentui/theme": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-1.7.4.tgz", - "integrity": "sha512-o4eo7lstLxxXl1g2RR9yz18Yt8yjQO/LbQuZjsiAfv/4Bf0CRnb+3j1F7gxIdBWAchKj9gzaMpIFijfI98pvYQ==", - "dev": true, - "requires": { - "@uifabric/merge-styles": "^7.19.2", - "@uifabric/set-version": "^7.0.24", - "@uifabric/utilities": "^7.33.5", - "tslib": "^1.10.0" - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "node-notifier": "^8.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" - } - }, - "@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/types": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^15.0.0", - "chalk": "^3.0.0" - } - }, - "@microsoft/load-themed-styles": { - "version": "1.10.198", - "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.198.tgz", - "integrity": "sha512-nqIXXJ2ZJy6gtB0T8qluL+yaupGxMe1nj2ZBymtH93hqy09jDXeXW2Y+1ggGn2CHjUHi09YUgOpoEO2m5Tx/kw==", - "dev": true - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "@types/babel__core": { - "version": "7.1.15", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.15.tgz", - "integrity": "sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", - "dev": true - }, - "@types/estree": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", - "dev": true - }, - "@types/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/html-minifier-terser": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", - "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", - "dev": true - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "26.0.4", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.4.tgz", - "integrity": "sha512-4fQNItvelbNA9+sFgU+fhJo8ZFF+AS4Egk3GWwCW2jFtViukXbnztccafAdLhzE/0EiCogljtQQXP8aQ9J7sFg==", - "dev": true, - "requires": { - "jest-diff": "^25.2.1", - "pretty-format": "^25.2.1" - } - }, - "@types/json-schema": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", - "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "@types/node": { - "version": "16.4.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.4.4.tgz", - "integrity": "sha512-BH/jX0HjzElFCQdAwaEMwuGBQwm6ViDZ00X6LKdnRRmGWOzkWugEH4+7a0BwfHQ8DfPPCSd/mdsm3Nu8FKFu0w==", - "dev": true - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "@types/prettier": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.2.tgz", - "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==", - "dev": true - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", - "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", - "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.6.1.tgz", - "integrity": "sha512-06lfjo76naNeOMDl+mWG9Fh/a0UHKLGhin+mGaIw72FUMbMGBkdi/FEJmgEDzh4eE73KIYzHWvOCYJ0ak7nrJQ==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "3.6.1", - "debug": "^4.1.1", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.6.1.tgz", - "integrity": "sha512-oS+hihzQE5M84ewXrTlVx7eTgc52eu+sVmG7ayLfOhyZmJ8Unvf3osyFQNADHP26yoThFfbxcibbO0d2FjnYhg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/types": "3.6.1", - "@typescript-eslint/typescript-estree": "3.6.1", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.6.1.tgz", - "integrity": "sha512-SLihQU8RMe77YJ/jGTqOt0lMq7k3hlPVfp7v/cxMnXA9T0bQYoMDfTsNgHXpwSJM1Iq2aAJ8WqekxUwGv5F67Q==", - "dev": true, - "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "3.6.1", - "@typescript-eslint/types": "3.6.1", - "@typescript-eslint/typescript-estree": "3.6.1", - "eslint-visitor-keys": "^1.1.0" - } - }, - "@typescript-eslint/types": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.6.1.tgz", - "integrity": "sha512-NPxd5yXG63gx57WDTW1rp0cF3XlNuuFFB5G+Kc48zZ+51ZnQn9yjDEsjTPQ+aWM+V+Z0I4kuTFKjKvgcT1F7xQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.6.1.tgz", - "integrity": "sha512-G4XRe/ZbCZkL1fy09DPN3U0mR6SayIv1zSeBNquRFRk7CnVLgkC2ZPj8llEMJg5Y8dJ3T76SvTGtceytniaztQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "3.6.1", - "@typescript-eslint/visitor-keys": "3.6.1", - "debug": "^4.1.1", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.6.1.tgz", - "integrity": "sha512-qC8Olwz5ZyMTZrh4Wl3K4U6tfms0R/mzU4/5W3XeUZptVraGVmbptJbn6h2Ey6Rb3hOs3zWoAUebZk8t47KGiQ==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "@uifabric/foundation": { - "version": "7.9.26", - "resolved": "https://registry.npmjs.org/@uifabric/foundation/-/foundation-7.9.26.tgz", - "integrity": "sha512-1FLTb+jlH/Tuel2L9wT/zLl5ZW6W4Lbjrs5VUVjv81vWxzznvPnTf8+Ew0qkzaH7xDuMNMl7okswhV0IfJyheg==", - "dev": true, - "requires": { - "@uifabric/merge-styles": "^7.19.2", - "@uifabric/set-version": "^7.0.24", - "@uifabric/styling": "^7.19.0", - "@uifabric/utilities": "^7.33.5", - "tslib": "^1.10.0" - } - }, - "@uifabric/icons": { - "version": "7.5.23", - "resolved": "https://registry.npmjs.org/@uifabric/icons/-/icons-7.5.23.tgz", - "integrity": "sha512-eIvUbH0EWgFgdfgFfINgqS2ZVZTyJ/9n5nR4bmcyAe75wsKxm4ser4WIT9IvaBF6+HFVfjUF/v6+VMD7y2LBng==", - "dev": true, - "requires": { - "@uifabric/set-version": "^7.0.24", - "@uifabric/styling": "^7.19.0", - "tslib": "^1.10.0" - } - }, - "@uifabric/merge-styles": { - "version": "7.19.2", - "resolved": "https://registry.npmjs.org/@uifabric/merge-styles/-/merge-styles-7.19.2.tgz", - "integrity": "sha512-kTlhwglDqwVgIaJq+0yXgzi65plGhmFcPrfme/rXUGMJZoU+qlGT5jXj5d3kuI59p6VB8jWEg9DAxHozhYeu0g==", - "dev": true, - "requires": { - "@uifabric/set-version": "^7.0.24", - "tslib": "^1.10.0" - } - }, - "@uifabric/react-hooks": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@uifabric/react-hooks/-/react-hooks-7.14.0.tgz", - "integrity": "sha512-Ndu/DEKHF4gFXEZa2AGgSkdWaj+njVrsSyXbkWRh2UZReFWnH1LMko9p/ZCwk1i9kAd5CUmyIfURUzIEya9YCg==", - "dev": true, - "requires": { - "@fluentui/react-window-provider": "^1.0.2", - "@uifabric/set-version": "^7.0.24", - "@uifabric/utilities": "^7.33.5", - "tslib": "^1.10.0" - } - }, - "@uifabric/set-version": { - "version": "7.0.24", - "resolved": "https://registry.npmjs.org/@uifabric/set-version/-/set-version-7.0.24.tgz", - "integrity": "sha512-t0Pt21dRqdC707/ConVJC0WvcQ/KF7tKLU8AZY7YdjgJpMHi1c0C427DB4jfUY19I92f60LOQyhJ4efH+KpFEg==", - "dev": true, - "requires": { - "tslib": "^1.10.0" - } - }, - "@uifabric/styling": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@uifabric/styling/-/styling-7.19.0.tgz", - "integrity": "sha512-fXComDtGV7dHF4rP4cLHwI6fC+1f/nvPavpMBz4IQdySwixta9TVMKbzt0OA6i0mJztqZCVAd27F/sl9R/JmcQ==", - "dev": true, - "requires": { - "@fluentui/theme": "^1.7.4", - "@microsoft/load-themed-styles": "^1.10.26", - "@uifabric/merge-styles": "^7.19.2", - "@uifabric/set-version": "^7.0.24", - "@uifabric/utilities": "^7.33.5", - "tslib": "^1.10.0" - } - }, - "@uifabric/utilities": { - "version": "7.33.5", - "resolved": "https://registry.npmjs.org/@uifabric/utilities/-/utilities-7.33.5.tgz", - "integrity": "sha512-I+Oi0deD/xltSluFY8l2EVd/J4mvOaMljxKO2knSD9/KoGDlo/o5GN4gbnVo8nIt76HWHLAk3KtlJKJm6BhbIQ==", - "dev": true, - "requires": { - "@fluentui/dom-utilities": "^1.1.2", - "@uifabric/merge-styles": "^7.19.2", - "@uifabric/set-version": "^7.0.24", - "prop-types": "^15.7.2", - "tslib": "^1.10.0" - } - }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webpack-cli/configtest": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.4.tgz", - "integrity": "sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==", - "dev": true - }, - "@webpack-cli/info": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.3.0.tgz", - "integrity": "sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w==", - "dev": true, - "requires": { - "envinfo": "^7.7.3" - } - }, - "@webpack-cli/serve": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.1.tgz", - "integrity": "sha512-4vSVUiOPJLmr45S8rMGy7WDvpWxfFxfP/Qx/cxZFCfvoypTYpPPL1X8VIZMe0WTA+Jr7blUxwUSEZNkjoMTgSw==", - "dev": true - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", - "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", - "dev": true - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "adaptivecards": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/adaptivecards/-/adaptivecards-1.2.6.tgz", - "integrity": "sha512-/l34rvdRzQ20QdGLk+awRUotexu3N4Ih3O0qR8cM+2wWe0pggvWhmFdwVFmM+YgIS5pWtl2u7XAJynUaFIQAIw==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", - "dev": true, - "requires": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", - "dev": true - } - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001247", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001247.tgz", - "integrity": "sha512-4rS7co+7+AoOSPRPOPUt5/GdaqZc0EsUpWk66ofE3HJTAajUK2Ss2VwoNzVN69ghg8lYYlh0an0Iy4LIHHo9UQ==", - "dev": true - }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "requires": { - "rsvp": "^4.8.4" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "clean-css": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", - "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "css-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.2.0.tgz", - "integrity": "sha512-/rvHfYRjIpymZblf49w8jYcRo2y9gj6rV8UroHGmBxKrIyGLokpycyKzp9OkitvqT29ZSpzJ0Ic7SpnJX3sC8g==", - "dev": true, - "requires": { - "icss-utils": "^5.1.0", - "postcss": "^8.2.15", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.1.0", - "semver": "^7.3.5" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" - } - }, - "css-what": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz", - "integrity": "sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "diff-sequences": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", - "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", - "dev": true - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "dev": true, - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "requires": { - "utila": "~0.4" - } - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } - } - }, - "domhandler": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", - "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", - "dev": true, - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz", - "integrity": "sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==", - "dev": true, - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", - "dev": true - } - } - }, - "dts-generator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dts-generator/-/dts-generator-3.0.0.tgz", - "integrity": "sha512-IrFP0TUGnBOxr8Lth0hLh/iM9odZTRGYyr4Y46IRxyw1SGO1Vvf30+x4npck9yP4FbaRXbB0Zh7gvmiqUta7mg==", - "dev": true, - "requires": { - "glob": "^7.1.3", - "mkdirp": "^0.5.1" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.789", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.789.tgz", - "integrity": "sha512-lK4xn6C6ZF1kgLaC/EhOtC1MSKENExj3rMwGVnBTfHW81Z/Hb1Rge5YaWawN/YOXy3xCaESuE4KWSD50kOZ9rQ==", - "dev": true - }, - "emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", - "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-module-lexer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", - "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, - "eslint": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.4.0.tgz", - "integrity": "sha512-gU+lxhlPHu45H3JkEGgYhWhkR9wLHHEXC9FbWFnTlEkbKyZKWgWRLgf61E8zWmBuI6g5xKBph9ltg3NtZMVF8g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "eslint-scope": "^5.1.0", - "eslint-utils": "^2.0.0", - "eslint-visitor-keys": "^1.2.0", - "espree": "^7.1.0", - "esquery": "^1.2.0", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "eslint-scope": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", - "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "espree": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.1.0.tgz", - "integrity": "sha512-dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw==", - "dev": true, - "requires": { - "acorn": "^7.2.0", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.2.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", - "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "dev": true, - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "eventsource": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", - "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", - "dev": true, - "requires": { - "original": "^1.0.0" - } - }, - "exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", - "dev": true - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - } - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", - "dev": true - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", - "dev": true, - "requires": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", - "he": "^1.2.0", - "param-case": "^3.0.3", - "relateurl": "^0.2.7", - "terser": "^4.6.3" - }, - "dependencies": { - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - } - } - }, - "html-webpack-plugin": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.3.2.tgz", - "integrity": "sha512-HvB33boVNCz2lTyBsSiMffsJ+m0YLIQ+pskblXgN9fnjS1BgEcuAfdInfXfGrkdXV406k9FiDi86eVCDBgJOyQ==", - "dev": true, - "requires": { - "@types/html-minifier-terser": "^5.0.0", - "html-minifier-terser": "^5.0.1", - "lodash": "^4.17.21", - "pretty-error": "^3.0.4", - "tapable": "^2.0.0" - } - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", - "dev": true - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", - "dev": true, - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", - "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "optional": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "requires": { - "is-path-inside": "^2.1.0" - } - }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "optional": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "import-local": "^3.0.2", - "jest-cli": "^26.6.3" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - } - } - } - }, - "jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - } - } - }, - "jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, - "jest-diff": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", - "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", - "dev": true, - "requires": { - "chalk": "^3.0.0", - "diff-sequences": "^25.2.6", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" - } - }, - "jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, - "jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", - "dev": true - }, - "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, - "jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", - "dev": true, - "requires": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true - }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, - "jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, - "jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true - }, - "jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", - "dev": true - }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true - }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, - "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "leven": "^3.1.0", - "pretty-format": "^26.6.2" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "dev": true - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" - }, - "dependencies": { - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", - "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", - "dev": true - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "klona": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", - "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", - "dev": true - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "requires": { - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", - "dev": true - } - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "dev": true, - "requires": { - "tmpl": "1.0.x" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "dev": true - }, - "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "dev": true, - "requires": { - "mime-db": "1.49.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "dev": true, - "optional": true - }, - "nanoid": { - "version": "3.1.23", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", - "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", - "dev": true - } - } - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-notifier": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", - "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", - "dev": true, - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - } - }, - "node-releases": { - "version": "1.1.73", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", - "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - }, - "dependencies": { - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - } - } - }, - "nth-check": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", - "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", - "dev": true, - "requires": { - "boolbase": "^1.0.0" - } - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "office-ui-fabric-react": { - "version": "7.174.0", - "resolved": "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.174.0.tgz", - "integrity": "sha512-hnuISSifwA7nSihuxpdNlh5plAmaPJqcDZUdhswak964Kb/8/ckMz/7BRQf+u9pGNs6LR14iDfRF/4RjLLzs6g==", - "dev": true, - "requires": { - "@fluentui/date-time-utilities": "^7.9.1", - "@fluentui/react-focus": "^7.17.6", - "@fluentui/react-window-provider": "^1.0.2", - "@microsoft/load-themed-styles": "^1.10.26", - "@uifabric/foundation": "^7.9.26", - "@uifabric/icons": "^7.5.23", - "@uifabric/merge-styles": "^7.19.2", - "@uifabric/react-hooks": "^7.14.0", - "@uifabric/set-version": "^7.0.24", - "@uifabric/styling": "^7.19.0", - "@uifabric/utilities": "^7.33.5", - "prop-types": "^15.7.2", - "tslib": "^1.10.0" - } - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - }, - "dependencies": { - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - } - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dev": true, - "requires": { - "url-parse": "^1.4.3" - } - }, - "p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dev": true, - "requires": { - "retry": "^0.12.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", - "dev": true - } - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", - "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", - "dev": true - } - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", - "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", - "dev": true, - "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", - "source-map-js": "^0.6.2" - } - }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true - }, - "postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "dev": true, - "requires": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "requires": { - "icss-utils": "^5.0.0" - } - }, - "postcss-selector-parser": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", - "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "pretty-error": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-3.0.4.tgz", - "integrity": "sha512-ytLFLfv1So4AO1UkoBF6GXQgJRaKbiSiGFICaOPNwQ3CMvBvXpLRubeQWyPGnsbV/t9ml9qto6IeCsho0aEvwQ==", - "dev": true, - "requires": { - "lodash": "^4.17.20", - "renderkid": "^2.0.6" - } - }, - "pretty-format": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", - "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", - "dev": true, - "requires": { - "@jest/types": "^25.5.0", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^16.12.0" - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dev": true, - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - } - } - }, - "react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - }, - "react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "requires": { - "resolve": "^1.9.0" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", - "dev": true - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "renderkid": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", - "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", - "dev": true, - "requires": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "dev": true, - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "sass-loader": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.1.0.tgz", - "integrity": "sha512-FVJZ9kxVRYNZTIe2xhw93n3xJNYZADr+q69/s98l9nTCrWASo+DR2Ot0s5xTKQDDEosUkatsGeHxcH4QBp5bSg==", - "dev": true, - "requires": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - } - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "dependencies": { - "@types/json-schema": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz", - "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - } - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selfsigned": { - "version": "1.10.11", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", - "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", - "dev": true, - "requires": { - "node-forge": "^0.10.0" - } - }, - "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - } - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", - "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", - "dev": true, - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", - "websocket-driver": "^0.7.4" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "sockjs-client": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz", - "integrity": "sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==", - "dev": true, - "requires": { - "debug": "^3.2.6", - "eventsource": "^1.0.7", - "faye-websocket": "^0.11.3", - "inherits": "^2.0.4", - "json3": "^3.3.3", - "url-parse": "^1.5.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", - "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz", - "integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==", - "dev": true - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "style-loader": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.2.1.tgz", - "integrity": "sha512-1k9ZosJCRFaRbY6hH49JFlRB0fVSbmnyq1iTPjNxUmGVjBNEmwrrHPenhlp+Lgo51BojHSf6pl2FcqYaN3PfVg==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - } - }, - "tapable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", - "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", - "dev": true - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "terser": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", - "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "terser-webpack-plugin": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz", - "integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==", - "dev": true, - "requires": { - "jest-worker": "^27.0.2", - "p-limit": "^3.1.0", - "schema-utils": "^3.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.0" - }, - "dependencies": { - "jest-worker": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz", - "integrity": "sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", - "dev": true - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true - }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - } - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "ts-jest": { - "version": "26.5.6", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.6.tgz", - "integrity": "sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA==", - "dev": true, - "requires": { - "bs-logger": "0.x", - "buffer-from": "1.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^26.1.0", - "json5": "2.x", - "lodash": "4.x", - "make-error": "1.x", - "mkdirp": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - } - } - }, - "ts-loader": { - "version": "9.2.4", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.2.4.tgz", - "integrity": "sha512-Ats2BCqPFBkgsoZUmmYMjuQu+iBNExt4o3QDsJqRMuPdStWlnOthdqX/GHHJnxSSgw7Gu6Hll/MD5b4usgKFOg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4" - }, - "dependencies": { - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "enhanced-resolve": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", - "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "tapable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", - "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true - }, - "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", - "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "url-parse": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", - "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true - }, - "v8-compile-cache": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", - "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", - "dev": true - }, - "v8-to-istanbul": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", - "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dev": true, - "requires": { - "makeerror": "1.0.x" - } - }, - "watchpack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", - "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "webpack": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.47.0.tgz", - "integrity": "sha512-soKLGwcUM1R3YEbJhJNiZzy7T43TnI7ENda/ywfDp9G1mDlDTpO+qfc8I5b0AzMr9xM3jyvQ0n7ctJyiXuXW6Q==", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.50", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.7.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.4", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.2.0", - "webpack-sources": "^3.0.1" - }, - "dependencies": { - "acorn": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", - "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", - "dev": true - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - } - } - }, - "webpack-cli": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.2.tgz", - "integrity": "sha512-mEoLmnmOIZQNiRl0ebnjzQ74Hk0iKS5SiEEnpq3dRezoyR3yPaeQZCMCe+db4524pj1Pd5ghZXjT41KLzIhSLw==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.0.4", - "@webpack-cli/info": "^1.3.0", - "@webpack-cli/serve": "^1.5.1", - "colorette": "^1.2.1", - "commander": "^7.0.0", - "execa": "^5.0.0", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "v8-compile-cache": "^2.2.0", - "webpack-merge": "^5.7.3" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - } - } - }, - "webpack-dev-middleware": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", - "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", - "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "dev": true - } - } - }, - "webpack-dev-server": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", - "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.8", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "sockjs-client": "^1.5.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dev": true, - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - } - }, - "webpack-sources": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.0.1.tgz", - "integrity": "sha512-LkBxiXJ3tTuhLaS5gz6D6l77Et8mPWlghAe7bbnmi2PyN1CtkiL/YitR+I0pn9PtBC88Irqgg6F9dBJh8+sJRQ==", - "dev": true - }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", - "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", - "dev": true - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } - } -} diff --git a/source/nodejs/adaptivecards-fabric/package.json b/source/nodejs/adaptivecards-fabric/package.json deleted file mode 100644 index d2beba76c2..0000000000 --- a/source/nodejs/adaptivecards-fabric/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "adaptivecards-fabric", - "version": "1.1.2", - "description": "Adaptive Cards Office Fabric based extension", - "author": "AdaptiveCards", - "license": "MIT", - "homepage": "https://adaptivecards.io", - "keywords": [ - "adaptivecards", - "adaptive", - "cards", - "microsoft", - "bot" - ], - "main": "lib/index.js", - "types": "lib/index.d.ts", - "files": [ - "lib", - "dist", - "src" - ], - "scripts": { - "test": "jest --detectOpenHandles", - "clean": "rimraf build lib dist", - "prebuild": "tsc", - "build": "webpack", - "watch": "webpack --watch", - "start": "webpack-dev-server --open --local", - "dts": "dts-generator --prefix adaptivecards-fabric --project . --out dist/adaptivecards-fabric.d.ts", - "lint": "eslint src/*.ts src/actions/**/*.ts* src/components/**/*.ts* src/utils/**/*.ts*", - "release": "npm run clean && npm run build && npm test && webpack --mode=production && npm run dts" - }, - "repository": { - "type": "git", - "url": "git://git@github.com/microsoft/AdaptiveCards.git" - }, - "peerDependencies": { - "@fluentui/react": "^7.121.2", - "adaptivecards": "^1.1.0", - "react": "^16.8.6", - "react-dom": "^16.8.6" - }, - "devDependencies": { - "@fluentui/react": "^7.121.2", - "@types/jest": "^26.0.3", - "@typescript-eslint/eslint-plugin": "^3.4.0", - "@typescript-eslint/parser": "^3.4.0", - "adaptivecards": "^1.2.0", - "css-loader": "^6.2.0", - "dts-generator": "^3.0.0", - "eslint": "^7.3.1", - "html-webpack-plugin": "^5.3.2", - "jest": "^26.1.0", - "react": "^16.8.6", - "react-dom": "^16.8.6", - "rimraf": "^3.0.2", - "sass-loader": "^12.1.0", - "style-loader": "^3.2.1", - "ts-jest": "^26.1.1", - "ts-loader": "^9.2.4", - "typescript": "^4.2.3", - "webpack": "^5.47.0", - "webpack-cli": "^4.7.2", - "webpack-dev-server": "^3.11.2" - }, - "jest": { - "rootDir": "src", - "transform": { - "^.+\\.tsx?$": "ts-jest" - }, - "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$", - "moduleFileExtensions": [ - "ts", - "tsx", - "js", - "jsx", - "json" - ], - "modulePathIgnorePatterns": [ - "TestUtils" - ] - } -} diff --git a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/InputChoiceSetFabric.test.tsx b/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/InputChoiceSetFabric.test.tsx deleted file mode 100644 index b042a5d8e8..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/InputChoiceSetFabric.test.tsx +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import { renderFabricComponent } from "../../TestUtils"; -import { InputChoiceSetFabric } from "../../../components/inputs/InputChoiceSetFabric"; -import { initializeIcons } from "@fluentui/react"; - -initializeIcons(); - -const inputChoiceProps = [ - { - "type": "Input.ChoiceSet", - "title": "Red", - "value": "1", - }, - { - "type": "Input.ChoiceSet", - "title": "Green", - "value": "2", - }, - { - "type": "Input.ChoiceSet", - "title": "Blue", - "value": "3", - }, -]; -const inputChoiceSetComboBox = { - "type": "Input.ChoiceSet", - "isMultiSelect": false, - "style": "compact", - "value": "1", - "choices": inputChoiceProps, -}; -const inputChoiceSetChoiceGroup = { - "type": "Input.ChoiceSet", - "isMultiSelect": false, - "style": "expanded", - "value": "1", - "choices": inputChoiceProps, -}; -const inputChoiceSetComboBoxMultiSelect = { - "type": "Input.ChoiceSet", - "isMultiSelect": true, - "style": "compact", - "value": "1, 2", - "choices": inputChoiceProps, -}; -const inputChoiceSetCheckboxMultiSelect = { - "type": "Input.ChoiceSet", - "isMultiSelect": true, - "style": "expanded", - "value": "1,3", - "choices": inputChoiceProps, -}; - -describe("InputChoiceSet", () => { - it("inputChoiceSetComboBox should be rendered correctly", () => { - let el = renderFabricComponent(InputChoiceSetFabric, inputChoiceSetComboBox); - expect(el).toMatchSnapshot(); - }); - - it("inputChoiceSetChoiceGroup should be rendered correctly", () => { - let el = renderFabricComponent(InputChoiceSetFabric, inputChoiceSetChoiceGroup); - expect(el).toMatchSnapshot(); - }); - - it("inputChoiceSetComboBoxMultiSelect should be rendered correctly", () => { - let el = renderFabricComponent(InputChoiceSetFabric, inputChoiceSetComboBoxMultiSelect); - expect(el).toMatchSnapshot(); - }); - - it("inputChoiceSetCheckboxMultiSelect should be rendered correctly", () => { - let el = renderFabricComponent(InputChoiceSetFabric, inputChoiceSetCheckboxMultiSelect); - expect(el).toMatchSnapshot(); - }); - - it("can get json name", () => { - expect(new InputChoiceSetFabric().getJsonTypeName()).toBe("Input.ChoiceSet"); - }); - - it("generates json correctly", () => { - const element = new InputChoiceSetFabric(); - element.parse(inputChoiceSetComboBox); - - const json = element.toJSON(); - expect(json).toBeDefined(); - expect(json.type).toEqual("Input.ChoiceSet"); - expect(json.value).toEqual("1"); - expect(json.choices).toBeDefined(); - }); -}); diff --git a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/InputDateFabric.test.tsx b/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/InputDateFabric.test.tsx deleted file mode 100644 index 1a3126136f..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/InputDateFabric.test.tsx +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import { InputDateFabric } from "../../../components/inputs/InputDateFabric"; -import { initializeIcons } from "@fluentui/react"; -import * as TestUtils from "../../TestUtils"; - -initializeIcons(); - -describe("InputDateExtended", () => { - it("should be rendered successfully", () => { - let input = new InputDateFabric(); - - expect(input).toBeDefined(); - expect(input.render()).toBeDefined(); - }); - - it("renders component correctly", () => { - let input = TestUtils.renderFabricComponent(InputDateFabric, { - type: "Input.Date", - id: "date", - spacing: "none", - value: "5/14/2019", - placeholder: "Enter a date", - max: "1/1/2020", - min: "1/1/2010", - }); - - expect(input).toMatchSnapshot(); - }); - - it("can get json name", () => { - expect(new InputDateFabric().getJsonTypeName()).toBe("Input.Date"); - }); - - it("generates json correctly", () => { - const element = new InputDateFabric(); - element.parse({ - type: "Input.Date", - id: "date", - spacing: "none", - value: "5/14/2019", - placeholder: "Enter a date", - max: "1/1/2020", - min: "1/1/2010", - }); - - const json = element.toJSON(); - expect(json).toBeDefined(); - expect(json.type).toEqual("Input.Date"); - expect(json.placeholder).toEqual("Enter a date"); - expect(new Date(json.min)).toEqual(new Date("1/1/2010")); - expect(new Date(json.max)).toEqual(new Date("1/1/2020")); - expect(new Date(json.value)).toEqual(new Date("5/14/2019")); - }); -}); diff --git a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/InputTextFabric.test.tsx b/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/InputTextFabric.test.tsx deleted file mode 100644 index fa6ec6ef11..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/InputTextFabric.test.tsx +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import { InputTextFabric } from "../../../components/inputs/InputTextFabric"; -import * as TestUtils from "../../TestUtils"; -import { initializeIcons } from "@fluentui/react"; - -initializeIcons(); - -describe("InputTextExtended", () => { - it("should be rendered successfully", () => { - let input = new InputTextFabric(); - - expect(input).toBeDefined(); - expect(input.render()).toBeDefined(); - }); - - it("renders int text multiline correctly", () => { - let input = TestUtils.renderFabricComponent(InputTextFabric, { - "type": "Input.Text", - "id": "input3", - "placeholder": "enter comment", - "maxLength": 500, - "isMultiline": true, - "value": "This value was pre-filled", - }); - - expect(input).toMatchSnapshot(); - }); - - it("renders int text single line correctly", () => { - let input = TestUtils.renderFabricComponent(InputTextFabric, { - "type": "Input.Text", - "id": "input3", - "placeholder": "enter comment", - "maxLength": 500, - "isMultiline": false, - "value": "This value was pre-filled", - }); - - expect(input).toMatchSnapshot(); - }); - - it("can serialize inline action", () => { - let input = new InputTextFabric(); - input.parse({ - "type": "Input.Text", - "id": "input1", - "inlineAction": { - "type": "Action.Submit", - "iconUrl": "http://adaptivecards.io/content/cats/1.png", - "title": "Reply", - }, - }); - - let json = input.toJSON(); - - expect(json).toBeDefined(); - expect(json.inlineAction).toBeDefined(); - }); - - it("renders text box with inline action correctly", () => { - let input = TestUtils.renderFabricComponent(InputTextFabric, { - "type": "Input.Text", - "id": "input3", - "placeholder": "enter comment", - "maxLength": 500, - "isMultiline": false, - "value": "This value was pre-filled", - }); - - expect(input).toMatchSnapshot(); - }); - - it("can set initial value", () => { - let el = TestUtils.renderFabricComponent(InputTextFabric, { - "type": "Input.Text", - "id": "input3", - "placeholder": "enter comment", - "maxLength": 500, - "value": "This value was pre-filled", - }); - - expect(el).toBeDefined(); - let inputElement = el.querySelector("input"); - expect(inputElement).not.toBe(null); - expect(inputElement.getAttribute("value")).toBe("This value was pre-filled"); - }); - - it("can render placeholder", () => { - let el = TestUtils.renderFabricComponent(InputTextFabric, { - "type": "Input.Text", - "id": "blah", - "placeholder": "enter comment", - }); - - expect(el).toBeDefined(); - let inputElement = el.querySelector("input"); - expect(inputElement).not.toBe(null); - expect(inputElement.getAttribute("placeholder")).toBe("enter comment"); - }); - - it("can get json name", () => { - expect(new InputTextFabric().getJsonTypeName()).toBe("Input.Text"); - }); - - it("generates json correctly", () => { - const element = new InputTextFabric(); - element.parse({ - "type": "Input.Text", - "id": "blah", - "placeholder": "enter comment", - "style": "url" - }); - - const json = element.toJSON(); - expect(json).toBeDefined(); - expect(json.type).toEqual("Input.Text"); - expect(json.placeholder).toEqual("enter comment"); - expect(json.style).toEqual("Url"); - }); -}); diff --git a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/InputTimeFabric.test.tsx b/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/InputTimeFabric.test.tsx deleted file mode 100644 index f975c88181..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/InputTimeFabric.test.tsx +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import { InputTimeFabric } from "../../../components/inputs/InputTimeFabric"; -import * as TestUtils from "../../TestUtils"; -import { initializeIcons } from "@fluentui/react"; - -initializeIcons(); - -describe("InputTimeExtended", () => { - it("should be rendered successfully", () => { - let input = new InputTimeFabric(); - - expect(input).toBeDefined(); - expect(input.render()).toBeDefined(); - }); - - it("should render input time correctly", () => { - let input = TestUtils.renderFabricComponent(InputTimeFabric, { - "type": "Input.Time", - "id": "time", - "min": "09:00", - "max": "17:00", - "value": "15:30", - }); - - expect(input).toBeDefined(); - expect(input).toMatchSnapshot(); - }); - - it("can get json name", () => { - expect(new InputTimeFabric().getJsonTypeName()).toBe("Input.Time"); - }); - - it("generates json correctly", () => { - const element = new InputTimeFabric(); - element.parse({ - "type": "Input.Time", - "id": "time", - "min": "09:00", - "max": "17:00", - "value": "15:30", - }); - - const json = element.toJSON(); - expect(json).toBeDefined(); - expect(json.type).toEqual("Input.Time"); - expect(json.value).toEqual("15:30"); - expect(json.max).toEqual("17:00"); - expect(json.min).toEqual("09:00"); - - }); -}); diff --git a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/InputToggleFabric.test.tsx b/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/InputToggleFabric.test.tsx deleted file mode 100644 index d63368fded..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/InputToggleFabric.test.tsx +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import { InputToggleFabric } from "../../../components/inputs/InputToggleFabric"; -import { renderFabricComponent } from "../../TestUtils"; -import { initializeIcons } from "@fluentui/react"; - -initializeIcons(); - -const toggleProps = { - type: "Input.Toggle", - title: "Are you sure?", - value: "yeah", - valueOn: "yeah", - valueOff: "nope", -}; - -describe("InputToggleExtended", () => { - it("should be rendered correctly", () => { - let el = renderFabricComponent(InputToggleFabric, toggleProps); - - expect(el).toMatchSnapshot(); - }); - - it("can set initial value", () => { - let el = renderFabricComponent(InputToggleFabric, toggleProps); - - expect(el.querySelector("button").getAttribute("aria-checked")).toBe("true"); - }); - - it("can get json name", () => { - expect(new InputToggleFabric().getJsonTypeName()).toBe("Input.Toggle"); - }); - - it("generates json correctly", () => { - const element = new InputToggleFabric(); - element.parse(toggleProps); - - const json = element.toJSON(); - expect(json).toBeDefined(); - expect(json.type).toEqual("Input.Toggle"); - expect(json.title).toEqual("Are you sure?"); - expect(json.value).toEqual("yeah"); - expect(json.valueOn).toEqual("yeah"); - expect(json.valueOff).toEqual("nope"); - }); -}); diff --git a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/__snapshots__/InputChoiceSetFabric.test.tsx.snap b/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/__snapshots__/InputChoiceSetFabric.test.tsx.snap deleted file mode 100644 index 6310b526a6..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/__snapshots__/InputChoiceSetFabric.test.tsx.snap +++ /dev/null @@ -1,361 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`InputChoiceSet inputChoiceSetCheckboxMultiSelect should be rendered correctly 1`] = ` -
-
-
-
- - -
-
- - -
-
- - -
-
-
-
-`; - -exports[`InputChoiceSet inputChoiceSetChoiceGroup should be rendered correctly 1`] = ` -
-
-
-
-
-
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
-
-
-`; - -exports[`InputChoiceSet inputChoiceSetComboBox should be rendered correctly 1`] = ` -
-
-
-
-
- - -
-
-
-
-
-
-`; - -exports[`InputChoiceSet inputChoiceSetComboBoxMultiSelect should be rendered correctly 1`] = ` -
-
-
-
-
- - -
-
-
-
-
-
-`; diff --git a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/__snapshots__/InputDateFabric.test.tsx.snap b/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/__snapshots__/InputDateFabric.test.tsx.snap deleted file mode 100644 index a573a0d505..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/__snapshots__/InputDateFabric.test.tsx.snap +++ /dev/null @@ -1,55 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`InputDateExtended renders component correctly 1`] = ` -
-
-
-
-
-
-
-
- - -
-
-
-
-
-
-
-
-`; diff --git a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/__snapshots__/InputTextFabric.test.tsx.snap b/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/__snapshots__/InputTextFabric.test.tsx.snap deleted file mode 100644 index 08c196cfb9..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/__snapshots__/InputTextFabric.test.tsx.snap +++ /dev/null @@ -1,113 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`InputTextExtended renders int text multiline correctly 1`] = ` -
-
-
-
-
-
- -
-
-
-
-
-
-`; - -exports[`InputTextExtended renders int text single line correctly 1`] = ` -
-
-
-
-
-
- -
-
-
-
-
-
-`; - -exports[`InputTextExtended renders text box with inline action correctly 1`] = ` -
-
-
-
-
-
- -
-
-
-
-
-
-`; diff --git a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/__snapshots__/InputTimeFabric.test.tsx.snap b/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/__snapshots__/InputTimeFabric.test.tsx.snap deleted file mode 100644 index abefb6dc8d..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/__snapshots__/InputTimeFabric.test.tsx.snap +++ /dev/null @@ -1,39 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`InputTimeExtended should render input time correctly 1`] = ` -
-
-
-
-
-
- -
-
-
-
-
-
-`; diff --git a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/__snapshots__/InputToggleFabric.test.tsx.snap b/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/__snapshots__/InputToggleFabric.test.tsx.snap deleted file mode 100644 index e21100868f..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/__tests__/Components/Inputs/__snapshots__/InputToggleFabric.test.tsx.snap +++ /dev/null @@ -1,45 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`InputToggleExtended should be rendered correctly 1`] = ` -
-
-
-
- -
- -
-
-
-
-
-`; diff --git a/source/nodejs/adaptivecards-fabric/src/__tests__/TestUtils/index.ts b/source/nodejs/adaptivecards-fabric/src/__tests__/TestUtils/index.ts deleted file mode 100644 index 8ed97d3dbe..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/__tests__/TestUtils/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import { CardElement } from "adaptivecards"; - -export const renderFabricComponent = (type: { new(): T; }, json: any): HTMLElement => { - let el = new type(); - el.parse(json); - return el.render(); -}; diff --git a/source/nodejs/adaptivecards-fabric/src/actions/ActionButton.tsx b/source/nodejs/adaptivecards-fabric/src/actions/ActionButton.tsx deleted file mode 100644 index cfd3866187..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/actions/ActionButton.tsx +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import * as React from "react"; -import { PrimaryButton, CompoundButton } from "@fluentui/react"; -import * as AC from "adaptivecards"; - -export interface ActionButtonProps { - text: string; - className?: string; - iconUrl?: string; - iconPlacement?: AC.ActionIconPlacement; - iconSize?: number; -} - -export const ActionButton = (props: ActionButtonProps) => ( - props.iconUrl ? - -
- {props.text} -
-
: - -); diff --git a/source/nodejs/adaptivecards-fabric/src/actions/Actions.tsx b/source/nodejs/adaptivecards-fabric/src/actions/Actions.tsx deleted file mode 100644 index 0b85d77f94..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/actions/Actions.tsx +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import * as React from "react"; -import * as ReactDOM from "react-dom"; -import * as AC from "adaptivecards"; -import * as Shared from "../utils/shared"; -import { ActionButton } from "./ActionButton"; - -export const createActionDiv = ( - title: string, - iconUrl: string, - baseCssClass: string, - iconPlacement: AC.ActionIconPlacement, - iconSize: number): HTMLDivElement => { - const div = Shared.getDiv(); - ReactDOM.render( - , div); - return div; -}; - -export class OpenUrlActionFabric extends AC.OpenUrlAction { - - renderedElement: HTMLElement; - - public render(baseCssClass?: string) { - let actionsConfig = this.parent.hostConfig.actions; - const div = createActionDiv(this.title, this.iconUrl, baseCssClass, actionsConfig.iconPlacement, actionsConfig.iconSize); - this.renderedElement = div; - } -} - -export class SubmitActionFabric extends AC.SubmitAction { - - renderedElement: HTMLElement; - - public render(baseCssClass?: string): void { - let actionsConfig = this.parent.hostConfig.actions; - const div = createActionDiv(this.title, this.iconUrl, baseCssClass, actionsConfig.iconPlacement, actionsConfig.iconSize); - this.renderedElement = div; - } -} - -export class ShowCardActionFabric extends AC.ShowCardAction { - - renderedElement: HTMLElement; - - public render(baseCssClass?: string): void { - let actionsConfig = this.parent.hostConfig.actions; - const div = createActionDiv(this.title, this.iconUrl, baseCssClass, actionsConfig.iconPlacement, actionsConfig.iconSize); - this.renderedElement = div; - } -} - -export class ToggleVisibilityActionFabric extends AC.ToggleVisibilityAction { - - renderedElement: HTMLElement; - - public render(baseCssClass?: string): void { - const div = Shared.getDiv(); - ReactDOM.render(, div); - this.renderedElement = div; - } -} diff --git a/source/nodejs/adaptivecards-fabric/src/actions/index.ts b/source/nodejs/adaptivecards-fabric/src/actions/index.ts deleted file mode 100644 index 8d67314a35..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/actions/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./Actions"; diff --git a/source/nodejs/adaptivecards-fabric/src/components/Fabric.tsx b/source/nodejs/adaptivecards-fabric/src/components/Fabric.tsx deleted file mode 100644 index 69f92ec445..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/components/Fabric.tsx +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import * as AC from "adaptivecards"; -import { initializeIcons } from "@fluentui/react"; -import * as Components from "."; -import * as Actions from "../actions"; - -let iconsInitialized = false; - -export const useFabricComponents = () => { - if (!iconsInitialized) { - initializeIcons(); - iconsInitialized = true; - } - - // add component extensions - AC.AdaptiveCard.elementTypeRegistry.registerType("Input.Date", () => new Components.InputDateFabric()); - AC.AdaptiveCard.elementTypeRegistry.registerType("Input.Text", () => new Components.InputTextFabric()); - AC.AdaptiveCard.elementTypeRegistry.registerType("Input.Time", () => new Components.InputTimeFabric()); - AC.AdaptiveCard.elementTypeRegistry.registerType("Input.Number", () => new Components.InputNumberFabric()); - AC.AdaptiveCard.elementTypeRegistry.registerType("Input.Toggle", () => new Components.InputToggleFabric()); - AC.AdaptiveCard.elementTypeRegistry.registerType("Input.ChoiceSet", () => new Components.InputChoiceSetFabric()); - - // add actions extensions - AC.AdaptiveCard.actionTypeRegistry.registerType("Action.OpenUrl", () => new Actions.OpenUrlActionFabric()); - AC.AdaptiveCard.actionTypeRegistry.registerType("Action.Submit", () => new Actions.SubmitActionFabric()); - AC.AdaptiveCard.actionTypeRegistry.registerType("Action.ShowCard", () => new Actions.ShowCardActionFabric()); - AC.AdaptiveCard.actionTypeRegistry.registerType("Action.ToggleVisibility", () => new Actions.ToggleVisibilityActionFabric()); -}; diff --git a/source/nodejs/adaptivecards-fabric/src/components/inputs/InputChoiceSetFabric.tsx b/source/nodejs/adaptivecards-fabric/src/components/inputs/InputChoiceSetFabric.tsx deleted file mode 100644 index db07ca9249..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/components/inputs/InputChoiceSetFabric.tsx +++ /dev/null @@ -1,157 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import * as React from "react"; -import * as AC from "adaptivecards"; -import * as FabricUI from "@fluentui/react"; -import * as Shared from "../../utils/shared"; - -export class InputChoiceSetFabric extends Shared.ReactInputElement { - - private isMultiSelect: boolean; - private choices: AC.Choice[]; - private style: string; - private selectedValues: string[] = []; - - public parse = (json: any, errors?: AC.IValidationError[]) => { - super.parse(json, errors); - this.value = this.defaultValue; - this.selectedValues = this.defaultValueToArray(this.value); - this.isMultiSelect = AC.getBoolValue(json.isMultiSelect, false); - this.title = AC.getStringValue(json.title); - this.style = AC.getStringValue(json.style); - this.parseChoises(json); - } - - protected renderReact = (): JSX.Element => ( - this.isCompact() ? - : - this.createExpandedView() - ) - - public getJsonTypeName = (): string => "Input.ChoiceSet"; - - public toJSON = () => { - let result = super.toJSON(); - - if (this.choices.length > 0) { - AC.setProperty(result, "choices", this.choices.map(ch => ch.toJSON())); - } - - if (!this.isCompact()) { - AC.setProperty(result, "style", "expanded", false); - } - - AC.setProperty(result, "isMultiSelect", this.isMultiSelect, false); - - return result; - } - - private parseChoises = (json: any) => { - this.choices = Array.isArray(json.choices) ? - json.choices.map(ch => { - let choice = new AC.Choice(); - choice.parse(ch); - return choice; - }) : - []; - } - - private isCompact = () => this.style === "compact"; - - private ComboBox = (): JSX.Element => ( - - ) - - private createExpandedView = (): JSX.Element => { - return this.isMultiSelect ? - this.inputChoicesToCheckbox() : - this.createChoiceGroup(); - } - - private createChoiceGroup = (): JSX.Element => ( - - ) - - private inputChoicesToCheckbox = (): JSX.Element => ( - - {this.choices.map((c, i) => - { - this.updateMultiselectData(checked, c.value); - ev.stopPropagation(); - ev.preventDefault(); - }} - styles={{ - root: { - paddingTop: i > 0 ? this.hostConfig.spacing.default : 0, - }, - }} - />, - )} - - ) - - private defaultValueToArray = (value: string): string[] => { - if (value) { - return value.split(","); - } - return []; - } - - private inputChoicesToComboBoxOptions = (choices: AC.Choice[]): FabricUI.IComboBoxOption[] => { - return choices.map(c => ({ key: c.value, text: c.title })); - } - - private inputChoicesToChoiceGroupOptions = (choices: AC.Choice[], value: string[]): FabricUI.IChoiceGroupOption[] => { - return choices.map(c => ({ key: c.value, text: c.title, checked: value.includes(c.value) })); - } - - private handleChoiceGroupChange = - (ev?: React.FormEvent, option?: FabricUI.IChoiceGroupOption): void => { - this.value = option.key; - ev.stopPropagation(); - ev.preventDefault(); - } - - private handleComboBoxChange = - (event: React.FormEvent, option?: FabricUI.IComboBoxOption, index?: number, value?: string): void => { - if (this.isMultiSelect) { - this.updateMultiselectData(option.selected, option.key); - } else { - this.value = `${option.key}`; - } - event.stopPropagation(); - event.preventDefault(); - } - - private updateMultiselectData = (selected: boolean, key: any): void => { - this.updateSelectedValues(selected, key); - this.value = this.selectedValues.join(","); - } - - private updateSelectedValues = (selected: boolean, key: any): void => { - selected ? this.selectedValues.push(key) : this.removeItemFromArray(this.selectedValues, key); - } - - private removeItemFromArray = (arr: any[], item: any): void => { - const index = arr.indexOf(item); - arr.splice(index, 1); - } -} diff --git a/source/nodejs/adaptivecards-fabric/src/components/inputs/InputDateFabric.tsx b/source/nodejs/adaptivecards-fabric/src/components/inputs/InputDateFabric.tsx deleted file mode 100644 index 163b47e346..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/components/inputs/InputDateFabric.tsx +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import * as React from "react"; -import * as FabricUI from "@fluentui/react"; -import * as AC from "adaptivecards"; -import * as Shared from "../../utils/shared"; - -export class InputDateFabric extends Shared.ReactInputElement { - - private date: Date; - private placeholder: string; - private minDate: Date; - private maxDate: Date; - - protected renderReact = (): JSX.Element => { - return this.buildDatePicker(); - } - - public getJsonTypeName = (): string => "Input.Date"; - - public parse = (json: any, errors?: AC.IValidationError[]) => { - super.parse(json, errors); - this.placeholder = AC.getStringValue(json.placeholder); - this.parseDates(json, errors); - } - - public toJSON = () => { - let result = super.toJSON(); - - AC.setProperty(result, "min", this.minDate); - AC.setProperty(result, "max", this.maxDate); - AC.setProperty(result, "placeholder", this.placeholder); - - return result; - } - - private parseDates = (json: any, errors?: AC.IValidationError[]) => { - this.value = this.defaultValue; - this.date = this.value ? this.getDate(this.value) : new Date(); - this.minDate = json.min ? this.getDate(AC.getStringValue(json.min)) : undefined; - this.maxDate = json.max ? this.getDate(AC.getStringValue(json.max)) : undefined; - } - - private getDate = (dateString: string, errors?: AC.IValidationError[]): Date => { - try { - return new Date(dateString); - } catch (error) { - Shared.raiseParseError({ - error: AC.ValidationError.InvalidPropertyValue, - message: error, - }, errors); - return undefined; - } - } - - private buildDatePicker = () => { - return (); - } - - private handleSelectDate = (date: Date) => { - this.value = date.toLocaleDateString("en-US"); - } -} diff --git a/source/nodejs/adaptivecards-fabric/src/components/inputs/InputNumberFabric.tsx b/source/nodejs/adaptivecards-fabric/src/components/inputs/InputNumberFabric.tsx deleted file mode 100644 index 21bcdb79b1..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/components/inputs/InputNumberFabric.tsx +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import * as React from "react"; -import * as AC from "adaptivecards"; -import * as FabricUI from "@fluentui/react"; -import * as Shared from "../../utils/shared"; - -export class InputNumberFabric extends Shared.ReactInputElement { - - private max?: number; - private min?: number; - private placeholder: string; - - public parse = (json: any, errors?: AC.IValidationError[]) => { - super.parse(json, errors); - this.value = this.defaultValue; - this.min = Shared.getIntValue(json.min); - this.max = Shared.getIntValue(json.max); - this.placeholder = AC.getStringValue(json.placeholder); - } - - protected renderReact = (): JSX.Element => ( - - ) - - public getJsonTypeName = (): string => "Input.Number"; - - public toJSON = () => { - let result = super.toJSON(); - - AC.setProperty(result, "placeholder", this.placeholder); - AC.setProperty(result, "min", this.min); - AC.setProperty(result, "max", this.max); - - return result; - } -} diff --git a/source/nodejs/adaptivecards-fabric/src/components/inputs/InputTextFabric.tsx b/source/nodejs/adaptivecards-fabric/src/components/inputs/InputTextFabric.tsx deleted file mode 100644 index 8f5f7be8d0..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/components/inputs/InputTextFabric.tsx +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import * as React from "react"; -import { TextField } from "@fluentui/react"; -import * as AC from "adaptivecards"; -import * as Shared from "../../utils/shared"; - -export class InputTextFabric extends Shared.ReactInputElement { - - private isMultiline: boolean; - private maxLength: number; - private placeholder: string; - private label: string; - private style: AC.InputTextStyle = AC.InputTextStyle.Text; - - protected renderReact = (): JSX.Element => { - return this.buildInput(); - } - - public getJsonTypeName = (): string => "Input.Text"; - - public parse = (json: any, errors?: any) => { - super.parse(json, errors); - this.value = this.defaultValue; - this.isMultiline = AC.getBoolValue(json.isMultiline, false); - this.maxLength = Shared.getIntValue(json.maxLength); - this.placeholder = AC.getStringValue(json.placeholder); - this.label = AC.getStringValue(json.label); - this.style = AC.getEnumValue(AC.InputTextStyle, json.style, AC.InputTextStyle.Text); - this.inlineAction = AC.createActionInstance(this, json.inlineAction, [AC.ShowCardAction.JsonTypeName], false, errors); - } - - public toJSON = () => { - let result = super.toJSON(); - - AC.setProperty(result, "placeholder", this.placeholder); - AC.setProperty(result, "maxLength", this.maxLength, 0); - AC.setProperty(result, "isMultiline", this.isMultiline, false); - AC.setEnumProperty(AC.InputTextStyle, result, "style", this.style, AC.InputTextStyle.Text); - if (this.inlineAction) { - AC.setProperty(result, "inlineAction", this.inlineAction.toJSON()); - } - - return result; - } - - private buildInput = (): JSX.Element => { - return ( - - ); - } - - private handleKeyDown = (e: React.KeyboardEvent): void => { - // Enter pressed - if (e.keyCode === 13 && this.inlineAction) { - this.inlineAction.execute(); - } - } -} diff --git a/source/nodejs/adaptivecards-fabric/src/components/inputs/InputTimeFabric.tsx b/source/nodejs/adaptivecards-fabric/src/components/inputs/InputTimeFabric.tsx deleted file mode 100644 index 0bc1c5cfe0..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/components/inputs/InputTimeFabric.tsx +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import * as React from "react"; -import * as AC from "adaptivecards"; -import * as FabricUI from "@fluentui/react"; -import * as Shared from "../../utils/shared"; - -export class InputTimeFabric extends Shared.ReactInputElement { - - private placeholder: string; - private min: string; - private max: string; - - public parse = (json: any, errors?: AC.IValidationError[]) => { - super.parse(json, errors); - this.value = this.defaultValue; - this.placeholder = AC.getStringValue(json.placeholder); - this.min = AC.getStringValue(json.min); - this.max = AC.getStringValue(json.max); - } - - protected renderReact = (): JSX.Element => { - return ( - - ); - } - - public getJsonTypeName = (): string => "Input.Time"; - - public toJSON = () => { - let result = super.toJSON(); - - AC.setProperty(result, "min", this.min); - AC.setProperty(result, "max", this.max); - - return result; - } -} diff --git a/source/nodejs/adaptivecards-fabric/src/components/inputs/InputToggleFabric.tsx b/source/nodejs/adaptivecards-fabric/src/components/inputs/InputToggleFabric.tsx deleted file mode 100644 index 3a6be3f838..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/components/inputs/InputToggleFabric.tsx +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import * as React from "react"; -import * as AC from "adaptivecards"; -import * as FabricUI from "@fluentui/react"; -import * as Shared from "../../utils/shared"; - -export class InputToggleFabric extends Shared.ReactInputElement { - - private valueOn: string; - private valueOff: string; - - public parse = (json: any, errors?: AC.IValidationError[]) => { - super.parse(json, errors); - this.value = this.defaultValue; - this.valueOn = AC.getStringValue(json.valueOn); - this.valueOff = AC.getStringValue(json.valueOff); - this.title = AC.getStringValue(json.title); - } - - protected renderReact = (): JSX.Element => ( - - ) - - public getJsonTypeName = (): string => "Input.Toggle"; - - public toJSON = () => { - let result = super.toJSON(); - - AC.setProperty(result, "valueOn", this.valueOn, "true"); - AC.setProperty(result, "valueOff", this.valueOff, "false"); - - return result; - } - - private handleToggleChange = (event: React.MouseEvent | React.ChangeEvent, checked?: boolean) => { - this.value = checked ? this.valueOn : this.valueOff; - } -} diff --git a/source/nodejs/adaptivecards-fabric/src/components/inputs/index.ts b/source/nodejs/adaptivecards-fabric/src/components/inputs/index.ts deleted file mode 100644 index 0049e469f9..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/components/inputs/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./InputChoiceSetFabric"; -export * from "./InputDateFabric"; -export * from "./InputNumberFabric"; -export * from "./InputTextFabric"; -export * from "./InputTimeFabric"; -export * from "./InputToggleFabric"; diff --git a/source/nodejs/adaptivecards-fabric/src/index.ts b/source/nodejs/adaptivecards-fabric/src/index.ts deleted file mode 100644 index 1ba2603a40..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -export * from "./components"; -export * from "./actions"; -export * from "./utils/shared"; diff --git a/source/nodejs/adaptivecards-fabric/src/utils/shared.tsx b/source/nodejs/adaptivecards-fabric/src/utils/shared.tsx deleted file mode 100644 index fbd8039a9a..0000000000 --- a/source/nodejs/adaptivecards-fabric/src/utils/shared.tsx +++ /dev/null @@ -1,150 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -import * as React from "react"; -import * as ReactDOM from "react-dom"; -import * as AC from "adaptivecards"; -import { Button, IconButton, IconType, PrimaryButton, IStyle } from "@fluentui/react"; - -export const getDiv = (): HTMLDivElement => document.createElement("div"); - -const sharedInternalRender = (renderReact: () => JSX.Element): HTMLElement => { - const div = getDiv(); - ReactDOM.render(renderReact(), div); - return div; -}; - -export abstract class ReactCardElement extends AC.CardElement { - - protected abstract renderReact(): JSX.Element; - - protected internalRender(): HTMLElement { - return sharedInternalRender(this.renderReact); - } -} - -export abstract class ReactCardElementContainer extends AC.Container { - - protected abstract renderReact(): JSX.Element; - - protected internalRender(): HTMLElement { - return sharedInternalRender(this.renderReact); - } -} - -const inlineButtonRootStyle: IStyle = { - marginLeft: 8, -}; - -export abstract class ReactInputElement extends AC.Input { - - private _value: string; - private _inlineAction: AC.Action; - protected abstract renderReact(): JSX.Element; - - protected internalRender(): HTMLElement { - const element = sharedInternalRender(this.renderReact); - element.style.width = "100%"; - return element; - } - - protected overrideInternalRender(): HTMLElement { - let inputControl = super.overrideInternalRender(); - - if (this._inlineAction) { - this.inputControlContainerElement.appendChild(this.buildInlineActionButton()); - } - return inputControl; - } - - protected handleChange = (event: React.FormEvent, newValue?: string) => { - this._value = newValue; - } - - get value(): string { - return this._value; - } - - set value(value: string) { - this._value = value; - } - - get inlineAction(): AC.Action { - return this._inlineAction; - } - - set inlineAction(action: AC.Action) { - this._inlineAction = action; - - if (this._inlineAction) { - this._inlineAction.setParent(this); - } - } - - private buildInlineActionButton = (): HTMLElement => { - return sharedInternalRender( - AC.isNullOrEmpty(this.inlineAction.iconUrl) ? - this.buildTextOnlyInlineActionActionButton : - this.inlineIconActionButton); - } - - private inlineActionClickHandler = (e: React.MouseEvent